Opengl es glsl es 2.0丢弃和深度缓冲区

Opengl es glsl es 2.0丢弃和深度缓冲区,opengl-es,depth-buffer,Opengl Es,Depth Buffer,OpenGL ES 2.0无法写入深度缓冲区,因为它没有gl_FragDepth,但如果我放弃它会影响深度缓冲区吗(我的意思是,不要用当前gl_FragCoord.z覆盖它,而是保持原样) 大概是这样的: void main() { if (sin(x) > 0.5 ){ discard; } else { gl_FragColor = (1.0, 1.0, 1.0, 1.0); } } 我希望在深度缓冲区中有漏洞,在丢弃的情况下。你说的“Ope

OpenGL ES 2.0无法写入深度缓冲区,因为它没有
gl_FragDepth
,但如果我放弃
它会影响深度缓冲区吗(我的意思是,不要用当前
gl_FragCoord.z
覆盖它,而是保持原样)

大概是这样的:

void main() {
   if (sin(x) > 0.5 ){
      discard;
   } else {
      gl_FragColor = (1.0, 1.0, 1.0, 1.0);
   }
}
我希望在深度缓冲区中有漏洞,在
丢弃
的情况下。

你说的“OpenGL ES 2.0不能写入深度缓冲区”有点误导。它将写入深度缓冲区,只要当前帧缓冲区中存在深度缓冲区,并且启用深度缓冲区写入

片段着色器中没有可写的
gl_FragDepth
变量意味着您无法修改片段着色器中的深度值。写入深度缓冲区的始终是传入的深度值

如果
放弃
片段,则不会写入颜色或深度值。因此,是的,如果丢弃一个片段,深度缓冲区将不会为该片段修改