【发布时间】:2019-12-02 01:25:36
【问题描述】:
我看到很多项目在后处理链的末端使用CopyShader。我在 Three.js 上找不到它的任何文档。它究竟是做什么的?另外,这里为什么需要setRenderTarget?如果移除,则不会应用效果。但如果包含它,那么它将“冻结”a-scene,停止所有动画。我可以使用tick 和setInterval 来恢复动画,但是性能受到了很大的影响。
例如:
var composer = new THREE.EffectComposer( renderer );
renderer.setRenderTarget( composer.readBuffer );
var renderPass = new THREE.RenderPass( scene, camera );
var copyPass = new THREE.ShaderPass( CopyShader );
composer.addPass( renderPass );
var vignettePass = new ShaderPass( VignetteShader );
vignettePass.uniforms[ "darkness" ].value = 1.0;
composer.addPass( vignettePass );
composer.addPass( copyPass );
composer.render();
this.composer = composer; // To run as composer.render()
【问题讨论】: