真实感图形绘制技术方案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简单光照模型 整体光照模型
光源类型
点光源 无限远点光源 局部光源 环境光
点光源
描述:
光从空间中一点发出
光源在所有方向发出的 能量相同
模型参数:
光源的空间位置 (Lx,Ly,Lz)
光照强度Ip
入射光能量:
It
Ip*
cos
I p s n
在Z缓冲区算法中,屏幕上哪个像素点的颜色先计算, 哪个后计算,其先后顺序是无关紧要的,不影响消隐 结果。因此,该算法不需要预先排队,从而省去了排 序时间。
目前许多图形工作站都配置硬件实现的Z缓冲器算法, 以便于图形的快速生成和实时显示
缺点:
占用的存储容量大
(二)光照模型
18
19
(二)光照模型
(一)消隐技术
BSP算法(Binary Space Partition)
设置视点位置 选取空间中某一平面对场景中的组成平面进行二
值状态分离,根据视点位置,位于分割平面前的 组成面设置状态为前(Front),位于分割平面后 的组成面设置状态为后(Back)。对于与分割面 相交的组成面,将其分成独立的两部分。 继续选取分割平面对之前的分离结果进行更细致 的分离,直至每个子区域只有一个组成面或包含 的组成面容易进行深度比较为止 最终形成一个二值状态的二叉树
sn
Zw
s n P
Yw
Lx
点光源
Lz
Ly
Xw
无限远光源
光源位置处于无限远处
入射光线平行:平面上任意一点的 入射角相同
模型参数:
光强 入射角
点光源
局部光源
用相关角度来模拟定向 光束的光照特征
模型参数:
位置 方向 光强 照射角
只有在光源照射范围之 内的空间点可以被光照 到
理想镜面反射
反射光与入射光位于表面法 向两侧
理想反射面而言:入射角= 反射角
观察者只有在反射方向上才 能看到反射光
反射光
非理想镜面反射
R
对一般的光滑表面,反射光集中在一
入射光 L
N
个范围内,
由反射定律决定的反射方向光强最大。
对于同一点来说,从不同位置所观察 到的镜面反射光强是不同的。
境光反射系数记为Ka 。
光照明方程(仅含环境光):物体表面所呈现的亮度 Ie = KaIa
例如,透过厚厚云层的阳光就可以称为环境光。
Ka = 0.4
Ka = 0.8
反射模型
当光照射到物体表面时,光线可能被吸收、反射和透 射。
被物体吸收的部分转化为热, 反射、透射的光进入视觉系统,使我们能看见物体。 目前虚拟光照的研究主要针对物体对入射光的反射模型进行
角θ 的余弦成正比,即: Id Kd I p cos
其中,Kd 是漫反射系数(0~1之间的常数),与物 体表面性质有关;Ip 是入射光(光源)的光强;θ是入 射光的入射角,即入射光与物体表面法向量之间的夹角。
漫反射(续)
设物体表面在照射点 P 处的单位法向量为N,P 到点光源的单位向量为L,则上式可表达为如下的 向量形式:Id Kd I p ( N L)
速排序
视点1 A
P2
视点3
B P1
D 视点2
C 视点4
P1 Back
Front
P2
P2
Front
Back Front
Back
A
B
D
C
Front
P1 Back
P2
P2
Back
Front Back
Front
A
B
D
C
P1 Back
Front
Back
P2
P2
Front Back
Front
A
B
D
Cຫໍສະໝຸດ Baidu
(一)消隐技术
Weiler-Atherton算法
可见多边形裁剪 以位于最前面的景物表面为裁剪窗口,对后面的景物
进行裁剪,位于裁剪窗口之内的表面或表面的被遮挡 部分可以消去。位于窗口之外的表面组成外裁剪多边 形表,取表中位于最前面的表面为裁剪窗口,继续对 其他表面进行裁剪,直至外裁剪结果多边形表为空为 止。
镜面反射由于表面光滑的物体对入射光的反射形成的
对于理想镜面,反射光集中在一个方向,并遵守反射 定律。
对一般的光滑表面,反射光集中在一个范围内,且由 反射定律决定的反射方向光强最大。因此,对于同一 点来说,从不同位置所观察到的镜面反射光强是不同 的。
高光现象:镜面反射光在反射方向附近形成很亮的光 斑
多边形着色方法
均匀着色(Flat Shading) 光滑着色(Smooth Shading)
I Ie Id Is KaIa f (d )I p[Kd (L N ) Ks (V R)n ]
多个点光源:
m
I Ie Idi Isi i 1
m
KaIa
fi I p[Kd (Li N ) Ks (V Ri )n ]
i 1
Z缓冲区算法又称为深度缓存算法,不仅需要一个帧 缓冲区(Frame Buffer)来存放每个像素的亮度值,而且 还需要有一个Z缓冲区(Z Buffer)来存放每个像素的深 度值,即Z坐标。这正是Z缓冲区算法名称的来历。
Z Buffer的大小由屏幕显示分辨率决定
优点:
Z缓冲区算法排序灵活简单,有利于硬件实现。
从物体表面反射出来的光取决于光的成分、光源的几 何性质、物体表面朝向和表面性质等。由于物体表面 反射性质不同,可以将反射模型分为两类:
漫反射 镜面反射
漫反射
漫反射光可认为是光穿过物体表面 被吸收,然后重新发射出来的光。 漫反射光均匀的漫布在各个方向, 与观察者位置无关,从各个视角观 察都具有相同的亮度。
(一)消隐技术
表优先级算法(画家算 法)
优点:简单、易于实现, 并且可以作为实现更为 复杂算法的基础
缺点:只能处理互不相 交的面,而且深度优先 级表中的顺序可能出错
A
B
边界表示
画家算法之 先A后B
正确投影
画家算法之 先 B后A
只能把有关的面进行分割后再排序。增加了算法的 复杂度,因此,该算法使用具有一定的局限性
光照方程: Is I pKs cosn I pKs (V R)n
Ks是物体表面镜面反射系数,它与入射 角和波长有关; α 是视线与反射方向的夹角; n 为镜面高光系数,用来模拟镜面反射 光在空间中的汇聚程度,它是一个反映 物体表面光泽度的常数;
镜面高光系数 n的影响效果
N 入射光
视点 A
D
P2 B P1
C
Front
P1 Back
A,B
D,C
P1 Front
Back
P2
P2
Front
Back Front
Back
A
B
D
C
(一)消隐技术
BSP算法(Binary Space Partition)
是一种决定场景可见性的有效方法 与画家算法类似,也是从远到近往屏幕覆盖画面元素 适合在场景不变,视点变化的场合中对景物表面做快
(一)消隐技术
表优先级算法(画家算法)
1. 将屏幕置成背景色 2. 构造物体组成面的深度优先级表:把物体的各个面按
其离视点的远近进行排序,离视点远的在表头,离视 点近的在表尾 3. 由远到近进行绘制:从表头至表尾逐个取出多边形, 投影到屏幕上,显示多边形所包含的实心区域。
由后显示的图形取代先显示的画面,而后显示的图形 所代表的面离视点更近,所以,由远及近地绘制各面 就相当于消除隐藏面。这与油画家作画的过程类似, 先画远景,再画中景,最后画近景,因此将这种算法 称为画家算法。
的光反射作用,只用环境光(Ambient Light)来表示
Phong光照模型
由物体表面上点P反射到视点的光强I
=
环境光的反射光强 Ie
+理想漫反射光强Id
+镜面反射光Is
Phong光照模型
光的衰减
从光源到物体表面过程 中的衰减
从物体表面到人眼过程 中的衰减
L
反射光 R
N=10,30,50
n = 15
n=5
n=1
n 常规取值 5~20
光照效果比较
简单光照模型
简单光照模型
简单光照明模型模拟物体表面对光的反射作用。 光源被假定为点光源, 反射作用被细分为镜面反射(Specular Reflection)和
漫反射(Diffuse Reflection)。 模型只考虑物体对直接光照的反射作用,而物体间
(一)消隐技术
对象空间法
对象空间:三维场景的描述空间 对象空间法:在物体描述空间中,根据物体的
几何关系计算物体的哪些部分可见,其目的是 消去那些不可见的面或面的不可见部分 例如:以空间中的三维平面作为分析对象,通 过比较各平面的参数来确定它们的可见性
表优先级算法、BSP算法、Weiler-Atherton算 法
相关因素:
光源强度 物体朝向 物体表面反射系数
光照方程:
Id Kd I pcos
漫反射(Diffuse Reflection)
点光源:向周围所有方向发射等强度的光 漫反射光是由物体表面的粗糙不平引起的,它均匀地向
各个方向传播,与视点无关
漫反射光在空间均匀分布,反射光强 I 与入射光的入射
照射方向
点光源
光源的照射角
环境光
是指光源间接对物体的影响,是在物体和环境之间多 次反射,最终达到平衡时的一种光。
我们近似地认为同一环境下的环境光,其光强分布是 均匀的,它在任何一个方向上的分布都相同,即在任
何位置、任何方向上强度一样,记为Ia
在分布均匀的环境光照射下,不同物体表面所呈现的 亮度未必相同,因为它们的环境光反射系数不同,环
真实感图形绘制技术
主要内容
消隐技术 光照模型 透明处理 阴影绘制 纹理映射
(一)消隐技术
通常,我们看一个3D物体,是不能一眼看到其全 部表面的,只能看到该物体表面上的部分点、线、 面,而其余部分则被这些可见部分遮挡住。
如果观察的是多个3D物体,则物体之间还可能彼 此遮挡而部分不可见。
(一)消隐技术
(一)消隐技术
Z-buffer算法(图像空间法)
算法思想:在图像投影空间中,用近点投影取代远点 投影。即对当前处理空间平面投影区域中的某一像素 点,比较该像素点的深度值与帧缓存中对应的已有像 素点的深度值大小,如果当前像素点的深度值较小, 则将当前像素的颜色值写入帧缓存,它的深度值写入 深度缓存
虚拟场景着色方案:
为物体每个表面赋予固定的颜色,无论怎样观察物体 其颜色保持不变
尽可能模拟光源与彩色表面相互作用的效果
计算机图形学中,采用光照模型来计算景物表面 上任一点投向观察者眼中的光亮度的大小和色彩 组成,生成具有真实感的图像
光照模型:用来计算投射到人眼中光亮度大小的 数学模型。
因此,如果想有真实感地显示3D物体,必须在视 点确定后,将对象表面上不可见的点、线、面消
去。执行这一功能的算法,称为消隐算法。
(一)消隐技术
三维网格模型将三维物体的表面分解为一 组空间多边形,消隐算法就是研究多边形 之间的遮挡关系。
按操作对象的不同,可分为两大类:
对象空间方法(Object Space Methods) 图像空间方法(Image Space Methods)。
如果有多个光源,则可以把各个光 源的漫反射光照效果进行叠加:
m
Id Kd I pi ( N Li ) i 1
环境光与漫反射光结合 方程: I I e I d I a K a I p K d ( L N )
例子:
镜面反射(Specular Reflection)
(一)消隐技术
图像空间法
图像空间:对象投影后所在的二维空间 图像空间法:是将对象投影后分解为像素,按
一定的规律,比较像素之间的深度值,从而确 定其是否可见
Z-buffer算法
几乎所有的消隐算法都涉及到排序问题。消隐算 法的基本思想是将物体上所有的点、线、面,按 照距视点的远近进行排序。一般来说,离视点较 远的物体,就有可能被离视点较近的物体完全或 部分遮盖。消隐算法的效率在很大程度上取决于 排序的效率
Phong模型特点分析
模型简单,便于实时绘制 是一个经验模型,可以达到一定的真实度 还具有以下的一些问题
用Phong模型显示出的物体像塑料,没有质感 环境光是常量,没有考虑物体之间相互的反射光 镜面反射的颜色是光源的颜色,与物体的材料无关 镜面反射的计算在入射角很大时会产生失真
光源类型
点光源 无限远点光源 局部光源 环境光
点光源
描述:
光从空间中一点发出
光源在所有方向发出的 能量相同
模型参数:
光源的空间位置 (Lx,Ly,Lz)
光照强度Ip
入射光能量:
It
Ip*
cos
I p s n
在Z缓冲区算法中,屏幕上哪个像素点的颜色先计算, 哪个后计算,其先后顺序是无关紧要的,不影响消隐 结果。因此,该算法不需要预先排队,从而省去了排 序时间。
目前许多图形工作站都配置硬件实现的Z缓冲器算法, 以便于图形的快速生成和实时显示
缺点:
占用的存储容量大
(二)光照模型
18
19
(二)光照模型
(一)消隐技术
BSP算法(Binary Space Partition)
设置视点位置 选取空间中某一平面对场景中的组成平面进行二
值状态分离,根据视点位置,位于分割平面前的 组成面设置状态为前(Front),位于分割平面后 的组成面设置状态为后(Back)。对于与分割面 相交的组成面,将其分成独立的两部分。 继续选取分割平面对之前的分离结果进行更细致 的分离,直至每个子区域只有一个组成面或包含 的组成面容易进行深度比较为止 最终形成一个二值状态的二叉树
sn
Zw
s n P
Yw
Lx
点光源
Lz
Ly
Xw
无限远光源
光源位置处于无限远处
入射光线平行:平面上任意一点的 入射角相同
模型参数:
光强 入射角
点光源
局部光源
用相关角度来模拟定向 光束的光照特征
模型参数:
位置 方向 光强 照射角
只有在光源照射范围之 内的空间点可以被光照 到
理想镜面反射
反射光与入射光位于表面法 向两侧
理想反射面而言:入射角= 反射角
观察者只有在反射方向上才 能看到反射光
反射光
非理想镜面反射
R
对一般的光滑表面,反射光集中在一
入射光 L
N
个范围内,
由反射定律决定的反射方向光强最大。
对于同一点来说,从不同位置所观察 到的镜面反射光强是不同的。
境光反射系数记为Ka 。
光照明方程(仅含环境光):物体表面所呈现的亮度 Ie = KaIa
例如,透过厚厚云层的阳光就可以称为环境光。
Ka = 0.4
Ka = 0.8
反射模型
当光照射到物体表面时,光线可能被吸收、反射和透 射。
被物体吸收的部分转化为热, 反射、透射的光进入视觉系统,使我们能看见物体。 目前虚拟光照的研究主要针对物体对入射光的反射模型进行
角θ 的余弦成正比,即: Id Kd I p cos
其中,Kd 是漫反射系数(0~1之间的常数),与物 体表面性质有关;Ip 是入射光(光源)的光强;θ是入 射光的入射角,即入射光与物体表面法向量之间的夹角。
漫反射(续)
设物体表面在照射点 P 处的单位法向量为N,P 到点光源的单位向量为L,则上式可表达为如下的 向量形式:Id Kd I p ( N L)
速排序
视点1 A
P2
视点3
B P1
D 视点2
C 视点4
P1 Back
Front
P2
P2
Front
Back Front
Back
A
B
D
C
Front
P1 Back
P2
P2
Back
Front Back
Front
A
B
D
C
P1 Back
Front
Back
P2
P2
Front Back
Front
A
B
D
Cຫໍສະໝຸດ Baidu
(一)消隐技术
Weiler-Atherton算法
可见多边形裁剪 以位于最前面的景物表面为裁剪窗口,对后面的景物
进行裁剪,位于裁剪窗口之内的表面或表面的被遮挡 部分可以消去。位于窗口之外的表面组成外裁剪多边 形表,取表中位于最前面的表面为裁剪窗口,继续对 其他表面进行裁剪,直至外裁剪结果多边形表为空为 止。
镜面反射由于表面光滑的物体对入射光的反射形成的
对于理想镜面,反射光集中在一个方向,并遵守反射 定律。
对一般的光滑表面,反射光集中在一个范围内,且由 反射定律决定的反射方向光强最大。因此,对于同一 点来说,从不同位置所观察到的镜面反射光强是不同 的。
高光现象:镜面反射光在反射方向附近形成很亮的光 斑
多边形着色方法
均匀着色(Flat Shading) 光滑着色(Smooth Shading)
I Ie Id Is KaIa f (d )I p[Kd (L N ) Ks (V R)n ]
多个点光源:
m
I Ie Idi Isi i 1
m
KaIa
fi I p[Kd (Li N ) Ks (V Ri )n ]
i 1
Z缓冲区算法又称为深度缓存算法,不仅需要一个帧 缓冲区(Frame Buffer)来存放每个像素的亮度值,而且 还需要有一个Z缓冲区(Z Buffer)来存放每个像素的深 度值,即Z坐标。这正是Z缓冲区算法名称的来历。
Z Buffer的大小由屏幕显示分辨率决定
优点:
Z缓冲区算法排序灵活简单,有利于硬件实现。
从物体表面反射出来的光取决于光的成分、光源的几 何性质、物体表面朝向和表面性质等。由于物体表面 反射性质不同,可以将反射模型分为两类:
漫反射 镜面反射
漫反射
漫反射光可认为是光穿过物体表面 被吸收,然后重新发射出来的光。 漫反射光均匀的漫布在各个方向, 与观察者位置无关,从各个视角观 察都具有相同的亮度。
(一)消隐技术
表优先级算法(画家算 法)
优点:简单、易于实现, 并且可以作为实现更为 复杂算法的基础
缺点:只能处理互不相 交的面,而且深度优先 级表中的顺序可能出错
A
B
边界表示
画家算法之 先A后B
正确投影
画家算法之 先 B后A
只能把有关的面进行分割后再排序。增加了算法的 复杂度,因此,该算法使用具有一定的局限性
光照方程: Is I pKs cosn I pKs (V R)n
Ks是物体表面镜面反射系数,它与入射 角和波长有关; α 是视线与反射方向的夹角; n 为镜面高光系数,用来模拟镜面反射 光在空间中的汇聚程度,它是一个反映 物体表面光泽度的常数;
镜面高光系数 n的影响效果
N 入射光
视点 A
D
P2 B P1
C
Front
P1 Back
A,B
D,C
P1 Front
Back
P2
P2
Front
Back Front
Back
A
B
D
C
(一)消隐技术
BSP算法(Binary Space Partition)
是一种决定场景可见性的有效方法 与画家算法类似,也是从远到近往屏幕覆盖画面元素 适合在场景不变,视点变化的场合中对景物表面做快
(一)消隐技术
表优先级算法(画家算法)
1. 将屏幕置成背景色 2. 构造物体组成面的深度优先级表:把物体的各个面按
其离视点的远近进行排序,离视点远的在表头,离视 点近的在表尾 3. 由远到近进行绘制:从表头至表尾逐个取出多边形, 投影到屏幕上,显示多边形所包含的实心区域。
由后显示的图形取代先显示的画面,而后显示的图形 所代表的面离视点更近,所以,由远及近地绘制各面 就相当于消除隐藏面。这与油画家作画的过程类似, 先画远景,再画中景,最后画近景,因此将这种算法 称为画家算法。
的光反射作用,只用环境光(Ambient Light)来表示
Phong光照模型
由物体表面上点P反射到视点的光强I
=
环境光的反射光强 Ie
+理想漫反射光强Id
+镜面反射光Is
Phong光照模型
光的衰减
从光源到物体表面过程 中的衰减
从物体表面到人眼过程 中的衰减
L
反射光 R
N=10,30,50
n = 15
n=5
n=1
n 常规取值 5~20
光照效果比较
简单光照模型
简单光照模型
简单光照明模型模拟物体表面对光的反射作用。 光源被假定为点光源, 反射作用被细分为镜面反射(Specular Reflection)和
漫反射(Diffuse Reflection)。 模型只考虑物体对直接光照的反射作用,而物体间
(一)消隐技术
对象空间法
对象空间:三维场景的描述空间 对象空间法:在物体描述空间中,根据物体的
几何关系计算物体的哪些部分可见,其目的是 消去那些不可见的面或面的不可见部分 例如:以空间中的三维平面作为分析对象,通 过比较各平面的参数来确定它们的可见性
表优先级算法、BSP算法、Weiler-Atherton算 法
相关因素:
光源强度 物体朝向 物体表面反射系数
光照方程:
Id Kd I pcos
漫反射(Diffuse Reflection)
点光源:向周围所有方向发射等强度的光 漫反射光是由物体表面的粗糙不平引起的,它均匀地向
各个方向传播,与视点无关
漫反射光在空间均匀分布,反射光强 I 与入射光的入射
照射方向
点光源
光源的照射角
环境光
是指光源间接对物体的影响,是在物体和环境之间多 次反射,最终达到平衡时的一种光。
我们近似地认为同一环境下的环境光,其光强分布是 均匀的,它在任何一个方向上的分布都相同,即在任
何位置、任何方向上强度一样,记为Ia
在分布均匀的环境光照射下,不同物体表面所呈现的 亮度未必相同,因为它们的环境光反射系数不同,环
真实感图形绘制技术
主要内容
消隐技术 光照模型 透明处理 阴影绘制 纹理映射
(一)消隐技术
通常,我们看一个3D物体,是不能一眼看到其全 部表面的,只能看到该物体表面上的部分点、线、 面,而其余部分则被这些可见部分遮挡住。
如果观察的是多个3D物体,则物体之间还可能彼 此遮挡而部分不可见。
(一)消隐技术
(一)消隐技术
Z-buffer算法(图像空间法)
算法思想:在图像投影空间中,用近点投影取代远点 投影。即对当前处理空间平面投影区域中的某一像素 点,比较该像素点的深度值与帧缓存中对应的已有像 素点的深度值大小,如果当前像素点的深度值较小, 则将当前像素的颜色值写入帧缓存,它的深度值写入 深度缓存
虚拟场景着色方案:
为物体每个表面赋予固定的颜色,无论怎样观察物体 其颜色保持不变
尽可能模拟光源与彩色表面相互作用的效果
计算机图形学中,采用光照模型来计算景物表面 上任一点投向观察者眼中的光亮度的大小和色彩 组成,生成具有真实感的图像
光照模型:用来计算投射到人眼中光亮度大小的 数学模型。
因此,如果想有真实感地显示3D物体,必须在视 点确定后,将对象表面上不可见的点、线、面消
去。执行这一功能的算法,称为消隐算法。
(一)消隐技术
三维网格模型将三维物体的表面分解为一 组空间多边形,消隐算法就是研究多边形 之间的遮挡关系。
按操作对象的不同,可分为两大类:
对象空间方法(Object Space Methods) 图像空间方法(Image Space Methods)。
如果有多个光源,则可以把各个光 源的漫反射光照效果进行叠加:
m
Id Kd I pi ( N Li ) i 1
环境光与漫反射光结合 方程: I I e I d I a K a I p K d ( L N )
例子:
镜面反射(Specular Reflection)
(一)消隐技术
图像空间法
图像空间:对象投影后所在的二维空间 图像空间法:是将对象投影后分解为像素,按
一定的规律,比较像素之间的深度值,从而确 定其是否可见
Z-buffer算法
几乎所有的消隐算法都涉及到排序问题。消隐算 法的基本思想是将物体上所有的点、线、面,按 照距视点的远近进行排序。一般来说,离视点较 远的物体,就有可能被离视点较近的物体完全或 部分遮盖。消隐算法的效率在很大程度上取决于 排序的效率
Phong模型特点分析
模型简单,便于实时绘制 是一个经验模型,可以达到一定的真实度 还具有以下的一些问题
用Phong模型显示出的物体像塑料,没有质感 环境光是常量,没有考虑物体之间相互的反射光 镜面反射的颜色是光源的颜色,与物体的材料无关 镜面反射的计算在入射角很大时会产生失真