我无法真正弄清楚是什么原因导致一个表面与另一个表面重叠。在我创建的3D引擎中,我的技术在极端情况下失败了。
我的方法是从最远到最近对要绘制的表面进行排序。为了确定紧密度,我在比较平均z值。但是,有时重叠的表面的平均z值比重叠的表面高。因此,距离较远的表面会被绘制在距离较近的表面上-产生如下奇怪的渲染:
只能看到立方体的紫色前表面,而红色的侧面涂在紫色的表面上。紫色表面的平均z值较高,因此“更远”。所以我对此技术是否正确存有疑问。
我还尝试过获取相机(即原点)到曲面的距离,但随后我需要一个点。我选择了每个表面的中间,但这似乎并不总是可行,因为并非所有表面都一样大。
因此,确定表面到原点的紧密程度的可靠方法是什么?