2014-06-30 56 views
3

我寫在WebGL的3D應用程序,並需要提供包含紋理中我自己的深度數據使用gl_FragDepth,我當前的代碼做到這一點:在WebGL的

VS:

varying vec2 vUv; 

    void main() { 
     vUv = uv; 
    } 

FS:

uniform sampler2D depthTex; 

    varying vec2 vUv; 

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

然而gl_FragDepth在OpenGL-ES(和WebGL的爲此)有被禁用反正以某種方式啓用它,或以任何方式提供不介入HEA我自己的深度數據通過渲染目標的操縱?

+0

看看這個:http://stackoverflow.com/questions/24101017/webgl的-替代對寫入到GL-fragdepth –

回答

3

EXT_frag_depth extension可以使用gl_FragDepthEXT。你可以檢查你的瀏覽器是否支持它here。目前它只支持Firefox。

的擴展名可以用

gl.getExtension("EXT_frag_depth"); 

被加載並您可以檢查是否可用編程方式使用

gl.getSupportedExtensions().indexOf("EXT_frag_depth") >= 0