试验2:表面S相对于观察位置完全在重叠表面的后面。
S1完全在重叠曲面S2的后面/内部

如何检查这些情况?
( i)设置S2的平面方程(Ax+ By + Cz +D= 0),使表面S2朝向观察位置。
(2)将S1(x',y',z')的所有顶点的坐标替换为S2的平面方程,并检查符号。
(3)如果S1的所有顶点都在S2内,则S1在S2后面。(图1)
即Ax‘+ By’+ Cz‘+D<0,x',y',z’是S1顶点。
(4)如果S1的所有顶点都在S2外,则S1在S2前面。
我的第一个问题是,为什么一个多边形( S1 )的所有顶点都在另一个多边形( S2 )的平面上替换,值小于0,那么我们说S1在S2后面?我不明白当一个多边形的顶点值小于0的时候,我们说一个在另一个后面?
我的第二个问题是,当测试#2通过时(即S1完全在重叠曲面S2中),为什么我们首先在S2之前着色S1。没有必要使用S1,因为S1被S2完全遮蔽了。那我们为什么给S2上色呢?
发布于 2021-11-27 05:59:01
首先,重要的是要认识到“背后”在这里意味着什么,这可能会让人感到困惑。在这种情况下,"S1在S2后面“的用法并不意味着S1在摄像机位置上被S2完全遮挡了。相反,这意味着S1在包含S2的飞机后面。这意味着S1的任何部分都不可能掩盖任何S2,因此在画家的算法中,S1应该在S2之前绘制。
为什么一个多边形( S1 )的所有顶点都在另一个多边形( S2 )的平面上替换,值小于0,那么我们说S1在S2后面?我不明白当一个多边形的顶点值小于0的时候,我们说一个在另一个后面?
这就是平面方程的工作原理。方程Ax + By + Cz + D = 0定义了平面上的点,但实际上它更进一步:如果你计算给定点的左手边,你会得到一个数字,它告诉你这个点离飞机有多远,符号告诉你它在飞机的哪一边。
在右手法则下,建立平面方程,使得多边形的正面(可见边)是在平面方程中得到正值的边。所以,多边形后面的所有点都会得到负值。因此,如果你检查多边形S1的所有点,你就会知道S1完全在S2平面的后面,如果它的所有顶点都被替换成S2's平面方程时得到了负值。
https://computergraphics.stackexchange.com/questions/12359
复制相似问题