给定深度预渲染渲染器,我有给定片段可能包含的最小深度值-因此,考虑任何比指示更远的片段是没有意义的。现在,我有一个写入gl_FragDepth的着色器,但保证写入的值大于或等于其多边形面的深度值。我如何仍然执行深度预测试(即,如果片段深度比缓冲区值更远,则在不执行着色器的情况下丢弃),但允许我写入一个不同于(大于)插值面深度的值(如果它通过了预测试)测试? 最佳答案 从OpenGL4.2(GLSL4.20)开始,您正在寻找的功能可作为gl_FragDepth上的布局限定符使用。它允许您指定您将如何修改片段着色器中的深度输出的意图。例