我正在用 webgl 编写一个 3D 应用程序,并且需要提供包含在纹理中的我自己的深度数据,我当前的代码执行以下操作:
对比:
varying vec2 vUv;
void main() {
vUv = uv;
}
金融服务:
uniform sampler2D depthTex;
varying vec2 vUv;
void main() {
gl_FragDepth = texture2D(depthTex, vUv).r;
}
然而
gl_FragDepth
在opengl-es(以及因此webgl)中被禁用,无论如何以某种方式启用它,或者以任何方式提供我自己的深度数据而不涉及渲染目标的大量操作?
最佳答案
EXT_frag_depth extension启用 gl_FragDepthEXT 的使用。您可以检查您的浏览器是否支持它 here .目前它仅在 Firefox 中受支持。
可以使用加载扩展名
gl.getExtension("EXT_frag_depth");
您可以使用编程方式检查它是否可用
gl.getSupportedExtensions().indexOf("EXT_frag_depth") >= 0
关于opengl-es - 在 WebGL 中使用 gl_FragDepth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24499321/