opengl-es - 在 WebGL 中使用 gl_FragDepth

标签 opengl-es webgl

我正在用 webgl 编写一个 3D 应用程序,并且需要提供包含在纹理中的我自己的深度数据,我当前的代码执行以下操作:

对比:

    varying vec2 vUv;

    void main() {
        vUv = uv;
    }

金融服务:
    uniform sampler2D depthTex;

    varying vec2 vUv;

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

然而 gl_FragDepth在opengl-es(以及因此webgl)中被禁用,无论如何以某种方式启用它,或者以任何方式提供我自己的深度数据而不涉及渲染目标的大量操作?

最佳答案

EXT_frag_depth extension启用 gl_FragDepthEXT 的使用。您可以检查您的浏览器是否支持它 here .目前它仅在 Firefox 中受支持。

可以使用加载扩展名

gl.getExtension("EXT_frag_depth");

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

关于opengl-es - 在 WebGL 中使用 gl_FragDepth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24499321/

相关文章:

javascript - 如何用 PixiJS 渲染 SVG?

javascript - 将简单的自定义着色器应用于 Three.js 多维数据集

ios - 从 AVFoundation 相机流生成 mipmaped MTLTextures

javascript - Vuforia + Three.js

java - 平稳移动物体,性能差

android - OpenGL ES - 纹理映射一个 8 顶点立方体的所有面?

javascript - 使用 WebGL 上下文阻止 Canvas 中的右键单击

html - WebGL模型简化

ios - 着色器编译产生不同的结果

android - OpenGL es,在生成和渲染 MIP 贴图时控制 VM 使用