使用多边形的中点是否始终适用于Painter的HSR算法?

时间:2013-10-13 05:08:02

标签: algorithm graphics 3d computational-geometry

我指的是这里用于图形的画家算法。我有一些代码,我使用它们的中点从前到后绘制多边形来判断它们离视点有多远。我知道这对于相互交叉的重叠多边形或多边形不起作用,但这会在所有其他情况下起作用吗?这是否适用于多边形相互交叉但仅在一条边(例如立方体的面)上相交的情况?

1 个答案:

答案 0 :(得分:1)

即使您限制自己绘制凸多面体,这也无法正常工作。例如,在2D中,请查看此图表:

counterexample for 2d painter

从眼睛的位置(在图的底部),面部A应该在面部B之前绘制,因为A在B的前面。但是如果你根据面部的y坐标对面部进行排序。中心,然后B出现在A之前。

这是一个2D反例,但反例自然延伸到3D。