0
林試圖呈現相同的畫布渲染多個場景。一切都按預期工作,直到我將FXAA着色器添加到我的作曲家之一併且不呈現。three.js所FXAA着色器不工作CopyShader - 呈現空白
這作曲是我的第二個場景,從0
呈現1080pts什麼我周圍的作曲/渲染器的代碼看起來像繼承人的基本知識:
this.renderer = new THREE.WebGLRenderer({
antialias: true,
alpha: true
});
this.renderer.autoClear = false;
this.renderer.setSize(RENDER_WIDTH * 3, RENDER_HEIGHT);
let renderPass = new THREE.RenderPass(this.scene, this.camera);
let effectFXAA = new THREE.ShaderPass(THREE.FXAAShader);
effectFXAA.uniforms['resolution'].value.set(1/RENDER_WIDTH, 1/RENDER_HEIGHT);
effectFXAA.renderToScreen = true;
let effectCopy = new THREE.ShaderPass(THREE.CopyShader);
effectCopy.renderToScreen = true;
let rtParameters = {
minFilter: THREE.LinearFilter,
magFilter: THREE.LinearFilter,
format: THREE.RGBAFormat,
stencilBuffer: true
};
this.composer = new THREE.EffectComposer(this.renderer,
new THREE.WebGLRenderTarget(RENDER_WIDTH, RENDER_HEIGHT, rtParameters));
this.composer.addPass(renderPass);
this.composer.addPass(effectFXAA);
this.composer.addPass(effectCopy);
然後我有一些其他場景/作曲家,所有的工作很好,並有THREE.HueSaturationShader但沒有FXAA着色器。
運行期間我設置了渲染視口的位置和渲染作曲家:
this.renderer.setViewport(RENDER_WIDTH, 0, RENDER_WIDTH, RENDER_HEIGHT);
this.composer.render();
this.renderer.setViewport(RENDER_WIDTH * 2, 0, RENDER_WIDTH, RENDER_HEIGHT);
this.composer2.update();
...
編輯
- 它使得罰款,如果我刪除FXAA着色器。
- 如果我不偏移它它使得罰款(渲染爲0,0),並刪除複製着色器,但保持FXAA着色器
- 它只是呈現的最後一個像素(伸),如果我把它抵消,保持FXAA着色器,但刪除CopyShader。