[我想通过使用glDepthFunc(GL_EQUAL)
并写入每个具有1.0
深度(最高和默认值)的像素,在写入深度缓冲区的所有内容后面绘制一些基元
但是,要使其正常工作,我必须忽略在原始图元上计算出的Z深度,迫使它们对所有原始图元进行测试,好像它们都是1.0
。
不管在顶点着色器中计算出的实际z深度如何,强制在特定图形中将所有片段测试为具有1.0
的z深度的最简单方法是什么?
gl_Position.xyz / gl_Position.w
)。在设置剪辑坐标之后,将gl_Position.z
设为gl_Position.w
等于gl_Position.z / gl_Position.w
:
gl_Position.z = gl_Position.w;
但是请注意,也可以通过为gl_FragDepth
分配值,在片段着色器中设置片段的深度:(当然,这阻止了gl_FragDepth
的发生)