如何仅使用 Three.js 写入 zbuffer

Chr*_*ris 2 zbuffer depth-buffer three.js

我尝试使用 thee.js 仅更新 zbuffer(我使用preserveDrawingBuffer 来创建跟踪效果)。然而,我找不到任何方法只用标准材料写入 zbuffer,到目前为止我已经尝试过:

  • 将材质设置visible为 false,这会停止对象渲染。
  • 将材质设置opacity为 0.0,这意味着不会渲染任何内容。

是否有“标准”方法可以做到这一点,或者我是否需要使用自定义片段着色器?

Wes*_*ley 6

您只能使用以下模式渲染到深度缓冲区。

renderer.context.colorMask( false, false, false, false ); // don't update color buffer
renderer.render( scene1, camera ); // first scene

renderer.context.colorMask( true, true, true, true );
renderer.render( scene2, camera ); // second scene
Run Code Online (Sandbox Code Playgroud)

三.js r.71