真实感图形生成
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
景物空间消隐算法 直接在景物(观察坐标系)中确定视点不可见的表面 区域,并将它们表达成同原表面一致的数据结构。如 BSP算法、多边形区域排序算法等。
介于二者之间的算法,如深度排序算法、区域细分 算法、光线投射算法等。
真实感图形生成
基本的原则
排序:各景物表面按照距离视点远近排序,排 序结果用于确定消隐对象之间的遮挡关系。
连贯性:连贯性是指所考察的物体或视区内的 图像局部保持不变的一种性质,用于提高排序 效率。
真实感图形生成
9.1 深度缓存器算法( Z-buffer)
基本原理
帧缓存:保存各像素点的颜色。 Z缓存:保存屏幕坐标系上各像素点所对应的深
度值。
真实感图形生成
深度缓存器算法( Z-buffer)
R y
计算采样点(x,y)的深度z(x,y); 如z(x,y)大于Z缓存中在(x,y)处的值,则把z(x,y)
存入Z缓存中的(x,y)处,再把多边形在z(x,y)处的 颜色值存入帧缓存的(x,y)地址中。
真实感图形生成
深度缓存器算法( Z-buffer)
如何计算采样点(x,y)的深度z(x,y)。
真实感图形生成
9.3 深度排序算法(画家算法)
算法原理:算法约定距视点近的优先级高, 距视点远的优先级低。生成图像时,优先级 低的多边形先画,优先级高的多边形后画。 这样,后画的多边形就会将先画的多边形遮 挡住,从而达到消隐的效果。
算法的关键是多边形排序。
真实感图形生成
9.4 区域细分算法
算法原理:考察投影平面上的一块区域,如 果可以很“容易”地判断覆盖该区域中的哪 个或哪些多边形是可见的,则可按这些多边 形的光照属性和几何位置计算确定子区域内 各像素的显示颜色;否则就将这块区域细分 为若干较小的区域,并把上述推断原则递归 地应用到每个较小的区域中去。
1) k
B( y
1)
D
C
AB
z( x
y,min, y)
k C
扫描线深度缓存器算法:增加多边形表
真实感图形生成
深度缓存器算法( Z-buffer)
优点
简单 便于硬件实现
缺点
占用太多的存储单元 在实现反走样、透明和半透明等效果方面有困
难
真实感图形生成
9.2 区间扫描线算法
避免对被遮挡区域的采样是进一步提高扫描
线算法计算效率的关键。
y
A1
B1
B2
A
B
C1
扫描线1
扫描线2
扫描线3
A2
A3
B3
C2
B4 C
C4
C3
O
z
图9.3 区间扫描线算法原理
真实感图形生成
区间扫描线算法
算法
三张表:边表、多边形表、有效边表。 分割子区间,确定子区间上的唯一可见面。
12 3
45
12 3
45
z
xz
x
(a)
(b)
1
2
3 45
计算机图形学高级话题--
真实感图形生成
真实感图形生成
讲授主要内容:
引言 消隐 真实感图形的绘制 实时真实感图形学技术 总结
真实感图形生成
引言
对于场景中的物体、要得到它的真实感 图形,就要对它进行透视投影,并消除隐藏 面,然后计算可见面的光照明暗效果,最后 在计算机中绘制出让观察者有身临其境感觉 的图形.
假定多边形的平面方程为:Ax+By+Cz+D=0。
z(x,y)AxB yD C
真实感图形生成
深度缓存器算法( Z-buffer)
y 多边形
y
y-1
扫描线
O
x x+1
x
图9.2 利用扫描线的连贯性加快深度的计算
真实感图形生成
深度缓存器算法( Z-buffer)
扫描线上所有后继点的深度值:
z (x 1 ,y ) A (x 1 ) B D y z (x ,y ) A
要消除二义性,就必须在绘制时消除被遮挡的 不可见的线或面,习惯上称作消除隐藏线和隐 藏面,或简称为消隐。
消隐实例
真实感图形生成
消隐实例
物体的线框图
经消隐处理后的图形
真实感图形生成
消隐算法分类
按其实现方式分为:
图像空间消隐算法 图像空间(屏幕坐标系)消隐算法以屏幕像素为采样 单位,确定投影于每一个像素的可见景物表面区域, 并将其颜色作为该像素的显示颜色。如深度缓冲器算 法、A缓冲器算法、区间扫描线算法等。
真实感图形生成
真实感图形的绘制步骤
1.场景造型
采用数学方法建立三维场景的几何描述并输入到计算机。
2.视域裁剪、消除隐藏面
确定景物中的所有可见面,将视域之外或其它景物遮挡的 不可见面消除。
3.取景变换、透视投影
将三维几何描述转换为二维透视图的内容。
4.绘制真实感图形
根据一定的光照模型和光强度计算,将其转换为适合图形 设备的颜色值,生成投影画面上每个像素的光强度,让观 察者产生身临其境的感觉。
C
C
当处理下一条扫描线y=y-1时,该扫描线上与多
边形相交的最左边(x最小)交点的x值可以利
用上一条扫描线上的最左边的x值计算:
xy1,minxy,min1k
真实感图形生成
ቤተ መጻሕፍቲ ባይዱ
深度缓存器算法( Z-buffer)
z(x
, y 1,m in
y
1)
Ax
y 1,m in
B(y C
1)
D
A( x
y ,m in
真实感图形生成
消隐
消隐的概念 消隐算法分类 消隐算法
深度缓存器算法 区间扫描线算法 深度排序算法 区域细分算法 光线投射算法 BSP树算法 多边形区域排序算法
真实感图形生成
消隐的概念
用计算机生成三维物体的真实图形,在用显示 设备描述物体的图形时,必须把三维信息经过 某种投影变换,在二维的显示表面上绘制出来。 由于投影变换失去了深度信息,往往导致图形 的二义性。
P2
P1
(x,y)
屏幕
O
x
z
观察方向:Z轴负向
图9.1 深度缓存器算法的原理
真实感图形生成
深度缓存器算法( Z-buffer)
算法步骤
初始化:把Z缓存中各(x,y)单元置为z的最小值, 而帧缓存各(x,y)单元置为背景色。
在把物体表面相应的多边形扫描转换成帧缓存 中的信息时,对于多边形内的每一采样点(x,y) 进行处理:
真实感图形生成
区域细分算法
z
x
(c)
图9.4 扫描线子区间
真实感图形生成
区间扫描线算法
特殊情形
贯穿情形:为了使算法能处理互相贯穿的多边形, 扫描线上的分割点不仅应包含各多边形的边与扫描线 的交点,而且应包含这些贯穿边界与扫描线的交点。 循环遮挡:将多边形进行划分以消除循环遮挡。
(a)贯穿
(b)循环遮挡
图9.5 多边形贯穿和循环遮挡的情形
介于二者之间的算法,如深度排序算法、区域细分 算法、光线投射算法等。
真实感图形生成
基本的原则
排序:各景物表面按照距离视点远近排序,排 序结果用于确定消隐对象之间的遮挡关系。
连贯性:连贯性是指所考察的物体或视区内的 图像局部保持不变的一种性质,用于提高排序 效率。
真实感图形生成
9.1 深度缓存器算法( Z-buffer)
基本原理
帧缓存:保存各像素点的颜色。 Z缓存:保存屏幕坐标系上各像素点所对应的深
度值。
真实感图形生成
深度缓存器算法( Z-buffer)
R y
计算采样点(x,y)的深度z(x,y); 如z(x,y)大于Z缓存中在(x,y)处的值,则把z(x,y)
存入Z缓存中的(x,y)处,再把多边形在z(x,y)处的 颜色值存入帧缓存的(x,y)地址中。
真实感图形生成
深度缓存器算法( Z-buffer)
如何计算采样点(x,y)的深度z(x,y)。
真实感图形生成
9.3 深度排序算法(画家算法)
算法原理:算法约定距视点近的优先级高, 距视点远的优先级低。生成图像时,优先级 低的多边形先画,优先级高的多边形后画。 这样,后画的多边形就会将先画的多边形遮 挡住,从而达到消隐的效果。
算法的关键是多边形排序。
真实感图形生成
9.4 区域细分算法
算法原理:考察投影平面上的一块区域,如 果可以很“容易”地判断覆盖该区域中的哪 个或哪些多边形是可见的,则可按这些多边 形的光照属性和几何位置计算确定子区域内 各像素的显示颜色;否则就将这块区域细分 为若干较小的区域,并把上述推断原则递归 地应用到每个较小的区域中去。
1) k
B( y
1)
D
C
AB
z( x
y,min, y)
k C
扫描线深度缓存器算法:增加多边形表
真实感图形生成
深度缓存器算法( Z-buffer)
优点
简单 便于硬件实现
缺点
占用太多的存储单元 在实现反走样、透明和半透明等效果方面有困
难
真实感图形生成
9.2 区间扫描线算法
避免对被遮挡区域的采样是进一步提高扫描
线算法计算效率的关键。
y
A1
B1
B2
A
B
C1
扫描线1
扫描线2
扫描线3
A2
A3
B3
C2
B4 C
C4
C3
O
z
图9.3 区间扫描线算法原理
真实感图形生成
区间扫描线算法
算法
三张表:边表、多边形表、有效边表。 分割子区间,确定子区间上的唯一可见面。
12 3
45
12 3
45
z
xz
x
(a)
(b)
1
2
3 45
计算机图形学高级话题--
真实感图形生成
真实感图形生成
讲授主要内容:
引言 消隐 真实感图形的绘制 实时真实感图形学技术 总结
真实感图形生成
引言
对于场景中的物体、要得到它的真实感 图形,就要对它进行透视投影,并消除隐藏 面,然后计算可见面的光照明暗效果,最后 在计算机中绘制出让观察者有身临其境感觉 的图形.
假定多边形的平面方程为:Ax+By+Cz+D=0。
z(x,y)AxB yD C
真实感图形生成
深度缓存器算法( Z-buffer)
y 多边形
y
y-1
扫描线
O
x x+1
x
图9.2 利用扫描线的连贯性加快深度的计算
真实感图形生成
深度缓存器算法( Z-buffer)
扫描线上所有后继点的深度值:
z (x 1 ,y ) A (x 1 ) B D y z (x ,y ) A
要消除二义性,就必须在绘制时消除被遮挡的 不可见的线或面,习惯上称作消除隐藏线和隐 藏面,或简称为消隐。
消隐实例
真实感图形生成
消隐实例
物体的线框图
经消隐处理后的图形
真实感图形生成
消隐算法分类
按其实现方式分为:
图像空间消隐算法 图像空间(屏幕坐标系)消隐算法以屏幕像素为采样 单位,确定投影于每一个像素的可见景物表面区域, 并将其颜色作为该像素的显示颜色。如深度缓冲器算 法、A缓冲器算法、区间扫描线算法等。
真实感图形生成
真实感图形的绘制步骤
1.场景造型
采用数学方法建立三维场景的几何描述并输入到计算机。
2.视域裁剪、消除隐藏面
确定景物中的所有可见面,将视域之外或其它景物遮挡的 不可见面消除。
3.取景变换、透视投影
将三维几何描述转换为二维透视图的内容。
4.绘制真实感图形
根据一定的光照模型和光强度计算,将其转换为适合图形 设备的颜色值,生成投影画面上每个像素的光强度,让观 察者产生身临其境的感觉。
C
C
当处理下一条扫描线y=y-1时,该扫描线上与多
边形相交的最左边(x最小)交点的x值可以利
用上一条扫描线上的最左边的x值计算:
xy1,minxy,min1k
真实感图形生成
ቤተ መጻሕፍቲ ባይዱ
深度缓存器算法( Z-buffer)
z(x
, y 1,m in
y
1)
Ax
y 1,m in
B(y C
1)
D
A( x
y ,m in
真实感图形生成
消隐
消隐的概念 消隐算法分类 消隐算法
深度缓存器算法 区间扫描线算法 深度排序算法 区域细分算法 光线投射算法 BSP树算法 多边形区域排序算法
真实感图形生成
消隐的概念
用计算机生成三维物体的真实图形,在用显示 设备描述物体的图形时,必须把三维信息经过 某种投影变换,在二维的显示表面上绘制出来。 由于投影变换失去了深度信息,往往导致图形 的二义性。
P2
P1
(x,y)
屏幕
O
x
z
观察方向:Z轴负向
图9.1 深度缓存器算法的原理
真实感图形生成
深度缓存器算法( Z-buffer)
算法步骤
初始化:把Z缓存中各(x,y)单元置为z的最小值, 而帧缓存各(x,y)单元置为背景色。
在把物体表面相应的多边形扫描转换成帧缓存 中的信息时,对于多边形内的每一采样点(x,y) 进行处理:
真实感图形生成
区域细分算法
z
x
(c)
图9.4 扫描线子区间
真实感图形生成
区间扫描线算法
特殊情形
贯穿情形:为了使算法能处理互相贯穿的多边形, 扫描线上的分割点不仅应包含各多边形的边与扫描线 的交点,而且应包含这些贯穿边界与扫描线的交点。 循环遮挡:将多边形进行划分以消除循环遮挡。
(a)贯穿
(b)循环遮挡
图9.5 多边形贯穿和循环遮挡的情形