Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
mamayaya1
GitHub Repository: mamayaya1/game
Path: blob/main/projects/HexGL/libs/postprocessing/ShaderPass.js
4627 views
1
/**
2
* @author alteredq / http://alteredqualia.com/
3
*/
4
5
THREE.ShaderPass = function ( shader, textureID ) {
6
7
this.textureID = ( textureID !== undefined ) ? textureID : "tDiffuse";
8
9
this.uniforms = THREE.UniformsUtils.clone( shader.uniforms );
10
11
this.material = new THREE.ShaderMaterial( {
12
13
uniforms: this.uniforms,
14
vertexShader: shader.vertexShader,
15
fragmentShader: shader.fragmentShader
16
17
} );
18
19
this.renderToScreen = false;
20
21
this.enabled = true;
22
this.needsSwap = true;
23
this.clear = false;
24
25
};
26
27
THREE.ShaderPass.prototype = {
28
29
render: function ( renderer, writeBuffer, readBuffer, delta ) {
30
31
if ( this.uniforms[ this.textureID ] ) {
32
33
this.uniforms[ this.textureID ].texture = readBuffer;
34
35
}
36
37
THREE.EffectComposer.quad.material = this.material;
38
39
if ( this.renderToScreen ) {
40
41
renderer.render( THREE.EffectComposer.scene, THREE.EffectComposer.camera );
42
43
} else {
44
45
renderer.render( THREE.EffectComposer.scene, THREE.EffectComposer.camera, writeBuffer, this.clear );
46
47
}
48
49
}
50
51
};
52
53