如何在godot片段着色器中将值写入深度缓冲区



例如,如果要渲染球体的纹理,而该纹理也会影响摄影机z方向上的去相位缓冲区,如何在片段着色器中指定深度值?

在OpenGL中,可以使用gl_FragDepth。godot中是否有类似的内置变量?

编辑:在发布问题后,我发现有一个变量DEPTH似乎被合并了。。我还没来得及试一下。如果你有任何成功使用的经验,我会接受这个答案。

是的,可以从空间材质着色器的片段缓冲区写入DEPTH

当然,Godot也会默认绘制深度。您可以使用渲染模式depth_draw_*来控制它,请参见深度绘制模式。

如果你想深入阅读,你可以使用DEPTH_TEXTURE。文章Screen Reading Shaders有一个例子。

有关空间着色器中可用变量和选项的列表,请参见空间着色器。

最新更新