画家算法测试2

Painters algorithm test 2

测试 #2: Surface S完全落后于 相对于观察的重叠表面 位置。

S1完全是behind/inside重叠面S2

如何检查这些条件?

i) 设S2的平面方程(Ax + By + Cz + D = 0),使S2面朝向观察位置

ii) 代入S1(x', y',z') 的所有顶点坐标代入S2 的平面方程并检查符号。

iii) 如果 S1 的所有顶点都在 S2 内部,则 S1 在 S2 之后。 (图1).

我。 e. Ax' + By' + Cz' + D < 0 ,x', y', z' 是 S1 顶点。

iv) 如果S1的所有顶点都在S2之外,那么S1在S2之前。

我的第一个问题是为什么一个多边形(S1)的所有顶点都在另一个(S2)的平面中替换并且值小于0然后我们说S1在S2后面?我不明白当一个多边形的顶点值小于 0 时,我们说一个在另一个后面?

我的第二个问题是当测试 #2 通过时(即 S1 完全 behind/inside 重叠表面 S2)为什么我们先给 S1 上色然后再给 S2 上色。 S1 没有必要,因为 S1 完全被遮挡 通过 S2。那为什么我们给 S2 上色?

  • 如果考虑一个平面的隐式方程f(x,y,z)=ax+by+cz+d=0,应该清楚使f( x, y, z) 正 [或负] 在平面的同一侧。因此符号测试。

  • 如果S1没有被S2完全隐藏,先画S1就可以了。所以你不需要测试“完全”条件。