import { defineComponent , watch } from 'vue' ; import { FilmPass } from 'three/examples/jsm/postprocessing/FilmPass.js' ; import EffectPass from './EffectPass' ; const props = { noiseIntensity : { type : Number , default : 0.5 } , scanlinesIntensity : { type : Number , default : 0.05 } , scanlinesCount : { type : Number , default : 4096 } , grayscale : { type : Number , default : 0 } , } as const ; export default defineComponent ( { extends : EffectPass , props , created ( ) { const pass = new FilmPass ( this . noiseIntensity , this . scanlinesIntensity , this . scanlinesCount , this . grayscale ) ; Object . keys ( props ) . forEach ( p => { watch ( ( ) => this [ p ] , ( value ) => { pass . uniforms [ p ] . value = value ; } ) ; } ) ; this . initEffectPass ( pass ) ; } , __hmrId : 'FilmPass' , } ) ;