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