我有一个3D建模应用程序。目前,我正在双面绘制网格,但是当物体关闭时,我想切换到单面绘制。
如果多边形网格是闭合的(没有边界边缘/完全周期),似乎我应该总能确定对象当前是否翻转,并自动更正。
翻转意味着我的法线指向物体内部而不是外部。翻转是由于我的绕组规则与当前的正面设置不匹配引起的,但我直接从几何计算法线,因此查看法线是检测它的简单方法。
我想到的一件事是取包围盒,找到最高点,并查看其法线指向上还是下 - 如果向下,则对象被翻转了。
但是这种解决方案似乎可能会在退化几何或浮点错误方面存在误差,因为我只会查看一个点。我想我可以获得所有6个轴对齐的范围,但这似乎是一个稍微好一点的权宜之计,而不是一个正确的解决方案。
有没有一种强大而简单的方法来解决这个问题?强大而困难的方法也可以.. :)