我正在webgl中编写一个3D应用程序,并且需要提供我自己的纹理中包含的深度数据,我当前的代码是这样做的:
VS
varying vec2 vUv;
void main() {
vUv = uv;
}
FS
uniform sampler2D depthTex;
varying vec2 vUv;
void main() {
gl_FragDepth = texture2D(depthTex, vUv).r;
}
然而在opengl-es中禁用gl_FragDepth
(因此webgl)无论如何都以某种方式启用它,或以任何方式提供我自己的深度数据而不涉及渲染目标的大量操作?
答案 0 :(得分:4)
EXT_frag_depth extension允许使用gl_FragDepthEXT。您可以检查浏览器是否支持here。目前它只在Firefox中受支持。
可以使用
加载扩展程序gl.getExtension("EXT_frag_depth");
您可以使用
检查它是否以编程方式可用gl.getSupportedExtensions().indexOf("EXT_frag_depth") >= 0