计算机图形学(十):真实感图形(平面外法线法消除隐藏线)

目录

消隐算法的概念与分类

平面外法线法消除隐藏线

线消隐算法的基本概念

消隐基本原则

凸多面体的消隐算法

消隐算法的概念与分类

消隐:消除形体视图中隐藏线(面)的处理过程。

1) 根据消隐对象:

①线消隐:消除物体上不可见的轮廓线。

②面消隐:消除物体上不可见的表面。

2) 根据消隐算法空间:

①物体空间消隐算法,也称对象空间消隐算法:物体空间是指规范化的投影空间,即用户域。该算法通过分析物体之间的空间几何关系,来确定物体的可见性。

②图像空间消隐算法:图像空间是指物体投影后的二维空间,即屏幕域。该算法是将物体的投影分解为像素,通过分析像素的可见性,来确定物体的可见性。

3.物体空间常用的消隐算法

算法分三类:

1)外法线消隐算法:用于平面立体消隐处理;

2)浮动水平线算法:用于标准曲面立体消隐处理;

3)离散消隐算法:用于构造曲面立体消隐处理。

平面外法线法消除隐藏线

线消隐算法的基本概念

隐藏线(面):根据投影几何的理论,形体上的看不见的图线或(平面)。

由于投影变换失去了深度信息,往往导致图形的二义性。要消除二义性,就必须在绘制时消除被遮挡的不可见的线或面,习惯上称作消除隐藏线和隐藏面(或可见线判定、可见面判定),或简称为消隐。经过消隐得到的投影图称为物体的真实感图形。

消隐基本原则

1 排序

判别消隐对象与观察点之间的距离远近;对其按x、y、z三个坐标方向进行排序;确定对象之间的遮挡关系。

2 连贯性

从一个对象到另一个对象,其属性值是或连续的。

连贯性:

1)实体对象的连贯性;

2)实体属性的连贯性;

3)扫描线的连贯性;

4)深度的连贯性。

凸多面体的消隐算法

平面立体=凸多面体+凹多面体

1 凸多边形判定:

多边形任意两点连线均位于多边形内部。

2 凸多面体特点:

①由多个平面凸多边形组成;

②在投影关系上,体的表面要么完全可见,要么完全不可见;

③各朝前表面不发生相互重叠现象。

3 凸多面体隐藏线的相关概念:

形体表面的外法线方向:由形体内部指向外部,或由形体表面指向外部空间。

表面外法线的方向角:据投影几何的规定,视方向一般取v={0,1,0},该方向和Y轴的负方向相同。用表面外法线在Y轴上的分量的值,作为判断表面可见性的标准。设表面的外法线分量围为:N=Ai+Bj+Ck,与坐标轴的方向角分别为α、β和γ,方向余弦为cosα、cosβ和cosγ。

显然|NI恒为正值,cosβ的值由B值来决定。

形体表面的外法线方向:由形体内部指向外部,或由形体表面指向外部空间。

4 凸多面体隐藏线的消隐算法:

1) 表面外法线与可见性

①当0≤α≤90°时,表示表面法线朝前(即朝前面),该表面可见;

②当90°<α≤180°时,表示表面法线向后,(即背向面)该表面不可见;

③当α=90°时,表面法线和视方向垂直,该表面积聚为一条线。

2) 表面外法线的表示
N=ABXBC或N=ACXBD

外法线N的代数形式:
AB={(xB-xA)(yB-yA)(zB-zA)}
BC={(xC-xB)(yC-yB)(zC-zB)}

若N在X、Y、Z方向的单位矢量用i、j、k表示,则有:

其中

注:

①面的外环应按逆时针排序,以保证表面的外法线方向指向表面的外部。

②顶点的选择按顺序选择就能确保外法线的方向,与选择的具体位置无关。

5 算法实现的一般步骤:

①根据表面的数据结构,取顶点数据,计算表面的外法线矢量;

②计算外法线在投影方向上的分量的值;

③根据分量的值判断表面的可见性;

④当B>0时,90°≤β≤180°,表面面向观察者可见。

⑤若表面可见画出该表面,否则处理下一个表面。

平面立体消隐算法的数据结构

1)采用三表结构,即点面表、棱边表和顶点表。

2)面表第一列为该表面的棱边总数;

3)面表第二列为该表面中内环数目,无内环时取为0;

4)棱边表中记录表面点环的顶点编号,内环顺时针排序,而外环则按逆时针排序;

5)不论内环还是外环,其都是封闭的;

6)内外环的分隔符通常采用0。

猜你喜欢

转载自blog.csdn.net/qq_41112170/article/details/127050035