Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using gl_FragDepth in WebGL

I am writing a 3D application in webgl, and need to provide my own depth data that is contained within a texture, my current code does this:

VS:

    varying vec2 vUv;

    void main() {
        vUv = uv;
    }

FS:

    uniform sampler2D depthTex;

    varying vec2 vUv;

    void main() {
        gl_FragDepth = texture2D(depthTex, vUv).r;
    }

however gl_FragDepth is disabled in opengl-es (and therefor webgl) is there anyway to somehow enable it, or any way to provide my own depth data that doesnt involve heavy manipulation of render targets?

like image 367
Mattiemus Avatar asked Jun 30 '14 21:06

Mattiemus


1 Answers

The EXT_frag_depth extension enables the use of gl_FragDepthEXT. You can check if your browser supports it here. At the moment it's only supported in Firefox.

The extension can be loaded using

gl.getExtension("EXT_frag_depth");

And you can check if it is available programatically using

gl.getSupportedExtensions().indexOf("EXT_frag_depth") >= 0
like image 66
Patrik Oldsberg Avatar answered Nov 04 '22 18:11

Patrik Oldsberg