首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >油漆机算法测试2和测试3?

油漆机算法测试2和测试3?
EN

Computer Graphics用户
提问于 2021-11-22 21:44:17
回答 1查看 189关注 0票数 2

试验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上色呢?

EN

回答 1

Computer Graphics用户

回答已采纳

发布于 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平面方程时得到了负值。

票数 1
EN
页面原文内容由Computer Graphics提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://computergraphics.stackexchange.com/questions/12359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档