在OpenGL中,你可以仅绘制背面多边形、仅绘制正面多边形或两者皆可。如果你渲染一个流形三角网格,然后清除帧缓冲区但不清除深度缓冲区,接着再次仅渲染背面多边形,你期望会看到什么?
我认为下面给我的答案是不正确的:
“你应该可以看到背面的三角形。第一次渲染传递将使深度缓冲区包含只有正面三角形的深度值。第二次渲染传递将呈现只有背面三角形,因此那些具有最大深度值的三角形都会呈现。每个裁剪到的三角形的深度值将与该像素的当前深度值进行比较。由于深度缓冲区已设置为所有最接近的深度值(小值),但在最远的深度值上进行区分(大值),所以背面三角形将被呈现。”
但我认为答案是:
“由于深度缓冲区未被清除,仍然包含正面三角形的深度值,它将排除掉背面三角形,并显示为空白。”
哪个答案是正确的?
我认为下面给我的答案是不正确的:
“你应该可以看到背面的三角形。第一次渲染传递将使深度缓冲区包含只有正面三角形的深度值。第二次渲染传递将呈现只有背面三角形,因此那些具有最大深度值的三角形都会呈现。每个裁剪到的三角形的深度值将与该像素的当前深度值进行比较。由于深度缓冲区已设置为所有最接近的深度值(小值),但在最远的深度值上进行区分(大值),所以背面三角形将被呈现。”
但我认为答案是:
“由于深度缓冲区未被清除,仍然包含正面三角形的深度值,它将排除掉背面三角形,并显示为空白。”
哪个答案是正确的?