文档介绍:第九章消隐
消隐的分类
消除隐藏线
消除隐藏面
基本概念
提高消隐算法效率的常见方法
画家算法
Z缓冲区(Z-Buffer)算法
扫描线Z-buffer算法
扫描线算法
区域子分割算法
光线投射算法
浙江大学信息学院计算机图形学
投影变换失去了深度信息,往往导致图形的二义性
要消除二义性,就必须在绘制时消除被遮挡的不可见的线或面,习惯上称作消除隐藏线和隐藏面,简称为消隐。
经过消隐得到的投影图称为物体的真实图形。
长方体线框投影图的二义性
浙江大学信息学院计算机图形学
基本概念
消隐的对象是三维物体。三维体的表示主要有边界表示和CSG表示等。
消隐结果与观察物体有关,也与视点有关。
线框图消隐图真实感图形
浙江大学信息学院计算机图形学
消隐的分类
按消隐对象分类
线消隐
消隐对象是物体上的边,消除的是物体上不可见的边。
面消隐
消隐对象是物体上的面,消除的是物体上不可见的面。
浙江大学信息学院计算机图形学
消除隐藏线
对造型的要求
在线框显示模型中,要求造型系统中有面的信息,最好有体的信息。
坐标变换
将视点变换到Z轴的正无穷大处,视线方向变为Z轴的负方向。
最基本的运算
、线面之间的求交运算
浙江大学信息学院计算机图形学
面消隐
面消隐算法的分类
提高消隐算法效率的常见方法
画家算法
Z缓冲器算法
扫描线Z缓冲器算法
区域子分算法
光线投射算法
浙江大学信息学院计算机图形学
面消隐算法的分类
消隐算法的分类
第一类(图像空间的消隐算法):以窗口内的每个像素为处理单元;如Z-buffer、扫描线、Warnock算法
for (窗口内的每一个像素)
{ 确定距视点最近的物体,以该物体表面的颜色来显示像素}
第二类(物体空间的消隐算法):以场景中的物体为处理单元;如光线投射算法
for (场景中的每一个物体)
{ 将其与场景中的其它物体比较,确定其表面的可见部分;
显示该物体表面的可见部分;
}
浙江大学信息学院计算机图形学
第一类(图像空间的消隐算法):以窗口内的每个像素为处理单元;
for (窗口内的每一个像素)
{ 确定距视点最近的物体,以该物体表面的颜色来显示像素}
假设:场景中有k个物体,平均每个物体表面由h个多边形构成,显示区域中有m x n个像素,则:
算法的复杂度为:O(mnkh)
浙江大学信息学院计算机图形学
面消隐算法的分类
第二类(物体空间的消隐算法):以场景中的物体为处理单元;
for (场景中的每一个物体)
{ 将其与场景中的其它物体比较,确定其表面的可见部分;
显示该物体表面的可见部分;
}
假设场景中有k个物体,平均每个物体表面由h个多边形构成,显示区域中有m x n个像素,则:
算法的复杂度为:O((kh)*(kh))
浙江大学信息学院计算机图形学
提高消隐算法效率的常见方法
利用连贯性
将透视投影转换成平行投影
包围盒技术
背面剔除
空间分割技术
物体分层表示
浙江大学信息学院计算机图形学