5

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?

genpfault
  • 51,148
  • 11
  • 85
  • 139
Mattiemus
  • 353
  • 3
  • 13

2 Answers2

5

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
Patrik Oldsberg
  • 1,540
  • 12
  • 14
1

WebGL2 supports gl_FragDepth as core functionality, and the previously mentioned EXT_frag_depth extension is therefore no longer available for WebGL2.

Robert Monfera
  • 1,980
  • 1
  • 22
  • 16