aboutsummaryrefslogtreecommitdiff
path: root/downloads/RenderPass.js
diff options
context:
space:
mode:
authorAgando <roduccomm@gmail.com>2026-07-09 06:00:32 +0200
committerAgando <roduccomm@gmail.com>2026-07-09 06:00:32 +0200
commitcf7461ffeb4f53f3f50c9c692a2e4fdcecf17e82 (patch)
treee7780cd41271381cf108c9c81d71a3cb65cfd555 /downloads/RenderPass.js
parentea4d09fb5ccba12ed774fcf7c913edfa1e6a851a (diff)
auto: 2026-07-09_06:00 changes
Diffstat (limited to 'downloads/RenderPass.js')
-rw-r--r--downloads/RenderPass.js74
1 files changed, 74 insertions, 0 deletions
diff --git a/downloads/RenderPass.js b/downloads/RenderPass.js
new file mode 100644
index 0000000..b212e77
--- /dev/null
+++ b/downloads/RenderPass.js
@@ -0,0 +1,74 @@
+( function () {
+
+ class RenderPass extends THREE.Pass {
+
+ constructor( scene, camera, overrideMaterial, clearColor, clearAlpha ) {
+
+ super();
+ this.scene = scene;
+ this.camera = camera;
+ this.overrideMaterial = overrideMaterial;
+ this.clearColor = clearColor;
+ this.clearAlpha = clearAlpha !== undefined ? clearAlpha : 0;
+ this.clear = true;
+ this.clearDepth = false;
+ this.needsSwap = false;
+ this._oldClearColor = new THREE.Color();
+
+ }
+
+ render( renderer, writeBuffer, readBuffer
+ /*, deltaTime, maskActive */
+ ) {
+
+ const oldAutoClear = renderer.autoClear;
+ renderer.autoClear = false;
+ let oldClearAlpha, oldOverrideMaterial;
+
+ if ( this.overrideMaterial !== undefined ) {
+
+ oldOverrideMaterial = this.scene.overrideMaterial;
+ this.scene.overrideMaterial = this.overrideMaterial;
+
+ }
+
+ if ( this.clearColor ) {
+
+ renderer.getClearColor( this._oldClearColor );
+ oldClearAlpha = renderer.getClearAlpha();
+ renderer.setClearColor( this.clearColor, this.clearAlpha );
+
+ }
+
+ if ( this.clearDepth ) {
+
+ renderer.clearDepth();
+
+ }
+
+ renderer.setRenderTarget( this.renderToScreen ? null : readBuffer ); // TODO: Avoid using autoClear properties, see https://github.com/mrdoob/three.js/pull/15571#issuecomment-465669600
+
+ if ( this.clear ) renderer.clear( renderer.autoClearColor, renderer.autoClearDepth, renderer.autoClearStencil );
+ renderer.render( this.scene, this.camera );
+
+ if ( this.clearColor ) {
+
+ renderer.setClearColor( this._oldClearColor, oldClearAlpha );
+
+ }
+
+ if ( this.overrideMaterial !== undefined ) {
+
+ this.scene.overrideMaterial = oldOverrideMaterial;
+
+ }
+
+ renderer.autoClear = oldAutoClear;
+
+ }
+
+ }
+
+ THREE.RenderPass = RenderPass;
+
+} )();