three.js - 如何仅使用 Three.js 写入 zbuffer

标签 three.js depth-buffer zbuffer

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

  • 将 Material 的 visible 设置为 false,这会停止对象渲染。
  • 将 Material 的不透明度设置为 0.0,这意味着不会渲染任何内容。

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

最佳答案

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

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

三.js r.71

关于three.js - 如何仅使用 Three.js 写入 zbuffer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31515966/

相关文章:

math - 如何计算相机的 z 距离以在 3D 空间中以 100% 的原始比例查看图像

javascript - 三个JS Raycasting - 找到离光标最近的点

android - OpenGL ES 中透明度和深度测试的解决方法?

javascript - 为软件渲染器实现 z 缓冲的最快方法?

opengl - 如何从 Z 缓冲区获取 Z 值

javascript - 相机 child 没有出现

javascript - Three.js 中的复杂十六进制颜色值

c# - 如何禁用深度缓冲区?

javascript - Three.js/WebGL - 透明平面将其他平面隐藏在其后面