在WebGL中使用gl_FragDepth

时间:2014-06-30 21:36:10

标签: opengl-es webgl

我正在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)无论如何都以某种方式启用它,或以任何方式提供我自己的深度数据而不涉及渲染目标的大量操作?

1 个答案:

答案 0 :(得分:4)

EXT_frag_depth extension允许使用gl_FragDepthEXT。您可以检查浏览器是否支持here。目前它只在Firefox中受支持。

可以使用

加载扩展程序
gl.getExtension("EXT_frag_depth");

您可以使用

检查它是否以编程方式可用
gl.getSupportedExtensions().indexOf("EXT_frag_depth") >= 0