THREEJS:用不同的颜色清除RT和默认的FBO

时间:2018-09-01 12:17:55

标签: three.js

我一次将场景渲染到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

1 个答案:

答案 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