我一次将场景渲染到WebGLRenderTarget
中,然后渲染到默认的帧缓冲区中,如下所示:
//want the BG of RT to be green
renderer.setClearColor(0x00ff00,1);
renderer.clearTarget(renderTargetTex, true,true);
renderer.render(this._scene, cam,renderTargetTex, true);
//now render same scene into default FBO:
//set red BG
renderer.setClearColor(0xff0000,1);
renderer.clear();
renderer.render(this._scene,cam);
结果始终是黑色背景。但是如果我不打电话
renderer.clearTarget(renderTargetTex, true,true);
renderer.render(this._scene, cam,renderTargetTex, true);
渲染器autoClear
设置为false
然后,我将后缓冲区清除为红色。如何清除每个RT的颜色?我正在使用93.dev版本的THREE.js
答案 0 :(得分:0)
renderer.clear()
将清除当前渲染目标。
如果要清除与当前目标不同的目标,则必须先设置所需的目标。
您可以改用以下模式:
renderer.setRenderTarget( renderTarget );
renderer.setClearColor( color1, alpha1 );
renderer.clear();
renderer.render( scene, camera, renderTarget, true );
renderer.setRenderTarget( null );
renderer.setClearColor( color2, alpha2 );
renderer.clear();
renderer.render( scene, camera );
three.js r.97