画家算法(Painter's theorem)平面方程符号测试内外判定矛盾疑问
画家算法平面测试符号相反的核心原因
两种判定逻辑看起来存在冲突,本质是两份资料对平面方程的法向量朝向、内外侧定义的约定不同,底层判定逻辑是一致的:
- 平面方程
Ax + By + Cz + D = 0的计算结果符号由法向量方向决定:代入任意点得到正号,说明该点处于法向量指向的一侧;得到负号则说明该点处于法向量背向的一侧。 - Hearn和Baker教材的约定:曲面S'的平面法向量朝向观察者(相机前方向),法向量背向的一侧就是远离观察者的后方。因此S所有顶点代入S'平面方程结果都<0时,说明S整体在S'法向量的背侧,也就是位于S'后方。
- 另一参考资料的约定:曲面S'的平面法向量朝向平面自身的外侧(背向物体内部),若S'是面向观察者的曲面,外侧自然朝向观察者方向。因此S所有顶点代入S'平面方程结果都>0时,说明S整体在S'法向量的背侧,也就是位于S'后方。
补充说明:只要整套深度判定流程中法向量定义、符号规则保持统一,两种判定方式都可以正确完成画家算法的深度排序,不会出现遮挡关系错误。
内容的提问来源于stack exchange,提问作者S. M.
相关产品推荐
相关产品推荐

