@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
71 lines (66 loc) • 2.2 kB
text/typescript
// /**
// * Adds a film effect
// *
// *
// */
// import {TypedPostNode, TypedPostNodeContext, PostParamOptions} from './_Base';
// import {FilmPass} from 'three/examples/jsm/postprocessing/FilmPass';
// import {IUniformN} from '../utils/code/gl/Uniforms';
// interface FilmPassWithUniforms extends FilmPass {
// uniforms: {
// time: IUniformN;
// nIntensity: IUniformN;
// sIntensity: IUniformN;
// sCount: IUniformN;
// grayscale: IUniformN;
// };
// }
// import {NodeParamsConfig, ParamConfig} from '../utils/params/ParamsConfig';
// import {isBooleanTrue} from '../../../core/BooleanValue';
// class FilmPostParamsConfig extends NodeParamsConfig {
// /** @param noise intensity */
// noiseIntensity = ParamConfig.FLOAT(0.5, {
// range: [0, 1],
// rangeLocked: [false, false],
// ...PostParamOptions,
// });
// /** @param scanlines intensity */
// scanlinesIntensity = ParamConfig.FLOAT(0.05, {
// range: [0, 1],
// rangeLocked: [true, false],
// ...PostParamOptions,
// });
// /** @param scanlines count */
// scanlinesCount = ParamConfig.FLOAT(4096, {
// range: [0, 4096],
// rangeLocked: [true, false],
// ...PostParamOptions,
// });
// /** @param toggle on to be grayscale */
// grayscale = ParamConfig.BOOLEAN(1, {
// ...PostParamOptions,
// });
// }
// const ParamsConfig = new FilmPostParamsConfig();
// export class FilmPostNode extends TypedPostNode<FilmPass, FilmPostParamsConfig> {
// override paramsConfig = ParamsConfig;
// static override type() {
// return 'film';
// }
// protected override _createPass(context: TypedPostNodeContext) {
// const pass = new FilmPass(
// this.pv.noiseIntensity,
// this.pv.scanlinesIntensity,
// this.pv.scanlinesCount,
// isBooleanTrue(this.pv.grayscale) ? 1 : 0
// ) as FilmPassWithUniforms;
// this.updatePass(pass);
// return pass;
// }
// override updatePass(pass: FilmPassWithUniforms) {
// pass.uniforms.nIntensity.value = this.pv.noiseIntensity;
// pass.uniforms.sIntensity.value = this.pv.scanlinesIntensity;
// pass.uniforms.sCount.value = this.pv.scanlinesCount;
// pass.uniforms.grayscale.value = isBooleanTrue(this.pv.grayscale) ? 1 : 0;
// }
// }