第四讲、隐藏线消除
1.定义:在二维设备上绘制三维物体的投影图时,消除在给定视点下实际不可见的线(或面)。
2.意义:
消除二维图形表示三维物体时产生的二义性。
增强图形的真实感
3.对造型的要求:在线框显示模型中,用边界线表示有界平面,用边界线及若干等参线来表
示参数曲面,即所有待显示的实体是线。但线不可能对线有遮挡关系,只有面或体才能对线
形成遮挡。因此,消隐算法要求造型系统中有面的信息;最好有体的信息,正则形体的消隐
可利用其法向量,这样比一般情况快得多。
4.坐标变换:为运算方便,一般应通过平移、旋转、透视等各种坐标变换,将视点变到 Z 轴
的负无穷大处,将视线方向变为 Z 的正方向。通过这些变换之后,坐标 Z 值就反映了相应点
到视点的距离,Z 值越大离视点越远,因而变换后的 Z 值可作为判断遮挡的依据。(对视锥以
外的物体应先行滤掉)
5.最基本的运算:判断面对线的遮挡关系。体也要先分解为面,再判断与线的遮挡关系。在
遮挡判断中,要反复地进行线线和线面之间的求交运算。
平面对直线段的遮挡判断算法如下(考虑内部相交)
1. 若线段的两端点及视点在给定平面的同侧,线段不被给定平面遮挡,转 7.
2. 若线段的投影与平面投影的包围盒无交,线段不被给定平面遮挡,转 7.
3. 求直线与相应无穷平面的交,若交点在线段内部,交点将线段分成两段,与视点同侧
的一段不被遮挡,另一段需继续判断。
4. 求所剩线段的投影与平面边界投影的所有交点,并用插值法求出各交点的深度
5. 以上所求得的各交点将线段的投影分成若干段,求出每一段的中点
6. 判各段中点是否在平面的投影内,若是,则相应的段被遮挡,否则不被遮挡。
7. 结束
由于线段分割后的被遮挡段总是交替出现的,因此算法中第 6.步只需判第一段即可,其
它段可依次交替取值。
判点在多边形内外可用射线法,但一定要考虑好射线通过端点及与某边界线重合的情况。
评论0