diff --git a/src/postprocessing/EffectComposer.ts b/src/postprocessing/EffectComposer.ts index 99bdda8f..42c21ea0 100644 --- a/src/postprocessing/EffectComposer.ts +++ b/src/postprocessing/EffectComposer.ts @@ -1,4 +1,4 @@ -import { Clock, LinearFilter, RGBAFormat, Vector2, WebGLRenderer, WebGLRenderTarget } from 'three' +import { Clock, LinearFilter, RGBAFormat, NoBlending, Vector2, WebGLRenderer, WebGLRenderTarget } from 'three' import { CopyShader } from '../shaders/CopyShader' import { ShaderPass } from './ShaderPass' import { MaskPass, ClearMaskPass } from './MaskPass' @@ -65,6 +65,8 @@ class EffectComposer= 0 && this.accumulateIndex < jitterOffsets.length) { @@ -74,11 +78,16 @@ class TAARenderPass extends SSAARenderPass { } renderer.setRenderTarget(writeBuffer) + renderer.setClearColor(this.clearColor, this.clearAlpha) renderer.clear() renderer.render(this.scene, this.camera) renderer.setRenderTarget(this.sampleRenderTarget) - if (this.accumulateIndex === 0) renderer.clear() + if (this.accumulateIndex === 0) { + renderer.setClearColor(0x000000, 0.0) + renderer.clear() + } + this.fsQuad.render(renderer) this.accumulateIndex++ @@ -89,6 +98,7 @@ class TAARenderPass extends SSAARenderPass { if (this.camera.clearViewOffset) this.camera.clearViewOffset() } + renderer.setClearColor(this.clearColor, this.clearAlpha) const accumulationWeight = this.accumulateIndex * sampleWeight if (accumulationWeight > 0) { @@ -103,11 +113,11 @@ class TAARenderPass extends SSAARenderPass { this.copyUniforms['opacity'].value = 1.0 - accumulationWeight this.copyUniforms['tDiffuse'].value = this.holdRenderTarget.texture renderer.setRenderTarget(writeBuffer) - if (accumulationWeight === 0) renderer.clear() this.fsQuad.render(renderer) } renderer.autoClear = autoClear + renderer.setClearColor(this._oldClearColor, oldClearAlpha) } dispose() { diff --git a/src/postprocessing/TexturePass.js b/src/postprocessing/TexturePass.js index 5c1a4ecb..af776f0f 100644 --- a/src/postprocessing/TexturePass.js +++ b/src/postprocessing/TexturePass.js @@ -19,6 +19,7 @@ class TexturePass extends Pass { fragmentShader: shader.fragmentShader, depthTest: false, depthWrite: false, + premultipliedAlpha: true, }) this.needsSwap = false