| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | /** * @author alteredq / http://alteredqualia.com/ */THREE.FilmPass = function ( noiseIntensity, scanlinesIntensity, scanlinesCount, grayscale ) {	THREE.Pass.call( this );	if ( THREE.FilmShader === undefined )		console.error( "THREE.FilmPass relies on THREE.FilmShader" );	var shader = THREE.FilmShader;	this.uniforms = THREE.UniformsUtils.clone( shader.uniforms );	this.material = new THREE.ShaderMaterial( {		uniforms: this.uniforms,		vertexShader: shader.vertexShader,		fragmentShader: shader.fragmentShader	} );	if ( grayscale !== undefined )	this.uniforms.grayscale.value = grayscale;	if ( noiseIntensity !== undefined ) this.uniforms.nIntensity.value = noiseIntensity;	if ( scanlinesIntensity !== undefined ) this.uniforms.sIntensity.value = scanlinesIntensity;	if ( scanlinesCount !== undefined ) this.uniforms.sCount.value = scanlinesCount;	this.camera = new THREE.OrthographicCamera( - 1, 1, 1, - 1, 0, 1 );	this.scene  = new THREE.Scene();	this.quad = new THREE.Mesh( new THREE.PlaneBufferGeometry( 2, 2 ), null );	this.scene.add( this.quad );};THREE.FilmPass.prototype = Object.assign( Object.create( THREE.Pass.prototype ), {	constructor: THREE.FilmPass,	render: function ( renderer, writeBuffer, readBuffer, delta, maskActive ) {		this.uniforms[ "tDiffuse" ].value = readBuffer.texture;		this.uniforms[ "time" ].value += delta;		this.quad.material = this.material;		if ( this.renderToScreen ) {			renderer.render( this.scene, this.camera );		} else {			renderer.render( this.scene, this.camera, writeBuffer, this.clear );		}	}} );
 |