'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?
Solution 1:[1]
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
Solution 2:[2]
WebGL2 supports gl_FragDepth as core functionality, and the previously mentioned EXT_frag_depth extension is therefore no longer available for WebGL2.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Patrik Oldsberg |
| Solution 2 |
