Shader WebGL2:将碎片深度写入深度纹理

Shader WebGL2:将碎片深度写入深度纹理,shader,fragment-shader,webgl2,Shader,Fragment Shader,Webgl2,我在WebGL2中使用了一个简单的片段着色器,它将不同的颜色输出到两个不同的纹理目标中。如何将gl_fragDepth值的写入指定给第三个(深度)纹理目标(位置=2) 事实证明,这很简单 layout (location = 2) out float fragDepth; ... fragDepth = gl_FragCoord.z; 事实证明,这很简单 layout (location = 2) out float fragDepth; ... fragDepth = gl_Fr

我在WebGL2中使用了一个简单的片段着色器,它将不同的颜色输出到两个不同的纹理目标中。如何将gl_fragDepth值的写入指定给第三个(深度)纹理目标(位置=2)


事实证明,这很简单

 layout (location = 2) out float fragDepth;
 ...
 fragDepth = gl_FragCoord.z;

事实证明,这很简单

 layout (location = 2) out float fragDepth;
 ...
 fragDepth = gl_FragCoord.z;

每个片段只能输出一个真实深度值,但听起来好像您还没有这样做,所以您需要做的就是将一个depth_附件附加到帧缓冲区,并在片段着色器中写入gl_FragDepth。

每个片段只能输出一个真实深度值,但听起来好像您还没有这样做,因此,您需要做的就是将一个DEPTH_附件附加到帧缓冲区,并在片段着色器中写入gl_FragDepth