在WebGL中,是否可以写入片段的深度值或以其他方式控制片段的深度值?
据我所知,gl_FragDepth 不存在于 webgl 1.x 中,但我想知道是否有其他方法(扩展、浏览器特定支持等)来做到这一点。
我想要归档的是让光线追踪对象与使用常用模型、 View 、投影绘制的其他元素一起播放。
最佳答案
有扩展名 EXT_frag_depth
由于它是一个扩展程序,因此可能并非在所有地方都可用,因此您需要检查它是否存在。
var isFragDepthAvailable = gl.getExtension("EXT_frag_depth");
如果 isFragDepthAvailable
不是 false,那么您可以在着色器中启用它
#extension GL_EXT_frag_depth : enable
否则,您可以在顶点着色器中操作gl_Position.z
,尽管我怀疑这对于大多数需求来说并不是一个真正可行的解决方案。
关于glsl - Webgl:写入 gl_FragDepth 的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24101017/