ShaderPass.js 887 字节
Newer Older
A
alteredq 已提交
1 2 3 4
/**
 * @author alteredq / http://alteredqualia.com/
 */

5
THREE.ShaderPass = function( shader, textureID ) {
A
alteredq 已提交
6

7
	this.textureID = ( textureID !== undefined ) ? textureID : "tDiffuse";
A
alteredq 已提交
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

	this.uniforms = THREE.UniformsUtils.clone( shader.uniforms );

	this.material = new THREE.MeshShaderMaterial( {

		uniforms: this.uniforms,
		vertexShader: shader.vertexShader,
		fragmentShader: shader.fragmentShader

	} );

	this.renderToScreen = false;

};

23
THREE.ShaderPass.prototype = {
A
alteredq 已提交
24 25 26

	render: function ( renderer, renderTarget, delta ) {

27
		this.uniforms[ this.textureID ].texture = renderTarget;
A
alteredq 已提交
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43

		THREE.EffectComposer.quad.materials[ 0 ] = this.material;

		if ( this.renderToScreen ) {

			renderer.render( THREE.EffectComposer.scene, THREE.EffectComposer.camera );

		} else {

			renderer.render( THREE.EffectComposer.scene, THREE.EffectComposer.camera, renderTarget, false );

		}

	}

};