第八章真实感图形的绘制ppt课件_第1页
第八章真实感图形的绘制ppt课件_第2页
第八章真实感图形的绘制ppt课件_第3页
第八章真实感图形的绘制ppt课件_第4页
第八章真实感图形的绘制ppt课件_第5页
已阅读5页,还剩102页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第八章第八章 真实感图形的绘制真实感图形的绘制 用计算机在图形设备上生成连续色调的真实感图形必须完成四个基本的任务。 第一 用数学方法建立所构造三维场景 的几何描述,并将它们输入至计 算机。(立体或曲面造型系统) 第二 将三维几何描述转换为二维透视 图。(透视变换) 第三第三 确定场景中的所有可见面。确定场景中的所有可见面。 (消除隐藏面算法)(消除隐藏面算法)第四第四 计算场景中可见面的颜色。计算场景中可见面的颜色。 (基于光学物理的光照模型计算)(基于光学物理的光照模型计算) 光照模型并不需要精确地考虑真光照模型并不需要精确地考虑真实世界中光线和表面的性质,而只需实世界中光线和表面的性质,

2、而只需要在兼顾精确程度和计算成本的要求要在兼顾精确程度和计算成本的要求下,追求更好的显示效果。下,追求更好的显示效果。 通常设计一个光照模型需要考虑的通常设计一个光照模型需要考虑的主要问题是照明特性、表面特性和观主要问题是照明特性、表面特性和观察角度。察角度。 照明特性是指可见表面被照明的情况,主要有光源的数目和性质,环境光及阴影效应等。 表面特性主要是指表面对入射光线的反射、折射或透明的不同情形,还有表面的纹理及颜色等。 观察角度是指观察景物时观察者相对可见表面所在的位置。 不同光照模型的区别主要在于模拟的方法,实现的复杂程度,及取得的显示效果等方面。 一般来说,光照模型可以分解为三个部分,

3、即漫射照明、具体光源的照射及透射效应。具体光源的照明产生的效果又分为漫反射和镜面反射两部分。 简单的光照模型部分仅考虑光源照简单的光照模型部分仅考虑光源照射在物体表面产生的反射光。射在物体表面产生的反射光。 复杂的光照模型复杂的光照模型( (整体整体) ) 要考虑周围环境要考虑周围环境的光对物体表面的影响。的光对物体表面的影响。第一节第一节 漫反射及具体漫反射及具体 光源的照明光源的照明 1 1环境光环境光 在多数实际环境中,存在由于许在多数实际环境中,存在由于许多物体表面多次反射而产生的均匀的多物体表面多次反射而产生的均匀的照明光线,这就是环境光线。环境光照明光线,这就是环境光线。环境光线的

4、存在使物体得到漫射照明线的存在使物体得到漫射照明. . 亮度计算如下:亮度计算如下: I=Ia a I=Ia a 其中I是可见表面的亮度,Ia是环境光线的总亮度,a是物体表面对环境光线的反射系数,它在0到1之间.2漫反射 具体光源在物体表面可以引起漫反射和镜面反射。漫反射是指来自具体光源的能量到达表面上的某一点后,就均匀地向各个方向散射出去,使得观察者从不同角度观察时,这一点呈现的亮度是相同的。 通常不光滑的粗糙表面总是呈现出漫反射的效果 Lambert Lambert定律指出,漫反射的效果与定律指出,漫反射的效果与表面相对于光源的取向有关,即:表面相对于光源的取向有关,即: Id=Ip d

5、COSId=Ip d COS 其中其中IdId是漫反射引起的可见是漫反射引起的可见表面上一点的亮度。表面上一点的亮度。IpIp是点光源发出的是点光源发出的入射光线引起的亮度。入射光线引起的亮度。dd是漫反射系是漫反射系数,它的取值在数,它的取值在0 0到到1 1之间,随物体材料之间,随物体材料不同而不同。不同而不同。 是可见表面法向是可见表面法向N N和点和点光源方向光源方向L L之间的夹角,即入射角,它之间的夹角,即入射角,它应该在应该在0 0到到9090之间。之间。 为了简化公式中余弦值的实际计算,可以假定向量N和L都已经正规化,即已经是长度为1的单位向量,这样就可以使用向量的数量积或内积

6、。 因为这时 ,于是得: Id=Ip d (L N) 将环境光线和漫反射的效果结合起来,计算亮度的公式应该写成: I=Ia a + Ip d ( ) NLcosNL 通常认为具体光源对可见表面产生通常认为具体光源对可见表面产生的照明作用,是随着光源与表面之间距的照明作用,是随着光源与表面之间距离的增加而下降的。设离的增加而下降的。设R R是光线从光源是光线从光源发出到达表面再返回的距离,那么发出到达表面再返回的距离,那么 I=Ia a + Ip d ( ) /R2 NLLN外表外表 对于平行投影,光源在无穷远处,故距离R成为无穷大。对于透视投影,1/R2也常常有很大的数值范围而使效果不好。一种

7、比较逼真的效果,可通过用r+k代替R2来获得: I=Ia a + Ip d ( ) /(r+k) 其中其中r是光源到表面的距离,是光源到表面的距离,k是是根据经验选取的一个常数。根据经验选取的一个常数。 NL3.3.镜面反射与镜面反射与PhongPhong模型模型 镜面反射是指来自具体光源的镜面反射是指来自具体光源的光能到达可见表面上的某一点后,主要沿光能到达可见表面上的某一点后,主要沿着由射入角等于反射角所决定的方向传播,着由射入角等于反射角所决定的方向传播,从而使得观察者从不同角度观察时,这一从而使得观察者从不同角度观察时,这一点呈现的亮度并不相同。点呈现的亮度并不相同。 在任何有光泽的表

8、面上都可以在任何有光泽的表面上都可以观察到镜面反射的效果。例如,用很亮的观察到镜面反射的效果。例如,用很亮的光照射一个红色的苹果,会发现最亮点不光照射一个红色的苹果,会发现最亮点不是红色的,而是有些呈现白色,这是入射是红色的,而是有些呈现白色,这是入射光线的颜色。这个最亮点就是有镜面反射光线的颜色。这个最亮点就是有镜面反射引起的。如果观察者移动位置,会看到最引起的。如果观察者移动位置,会看到最亮点也随之移动。亮点也随之移动。指向点光源指向点光源反射方向反射方向指向观察点指向观察点镜镜面面反反射射 在镜面反射的示意图中,只有当观察者相对在镜面反射的示意图中,只有当观察者相对表面的方向表面的方向V

9、 V与反射光线的方向与反射光线的方向R R之间的夹角之间的夹角 为为零时,才能看到镜面反射引起的反射光线。对于零时,才能看到镜面反射引起的反射光线。对于不是非常理想的光泽表面,例如一个苹果,反射不是非常理想的光泽表面,例如一个苹果,反射光线引起的亮度随着光线引起的亮度随着 的增大而迅速下降。的增大而迅速下降。 由Phong Bui-Tuong提出的光照明模型,用 来近似反射光线引起的亮度随着 增大而下降的速率。n取值一般在1到2000之间,决定于反射表面的有关性质。对于理想的反射表面,n就是无穷大。这里选用 ,是以经验观察为基础的。 对实际物质来说,被镜面反射的入射光的数量是与入射角 有关的。

10、如果将镜面反射光的百分数记为 ,那么就可以将计算表面亮度的公式修改而得到: cosn Wcosn 这里可以假定反射光线的方向向量R和指向观察点的向量V都已经正规化,即已经是长度为1的单位向量,于是可以简单地利用向量内积计算余弦值: 。对 ,通常根据经验选取一个常数 来代替,这样公式可写成下面更容易计算的形式: .W.coskkrI.kIIcosndpaaVRcos Wks 对于彩色表面,上述各公式也可以应用,只需分别应用于对各颜色分量的计算。例如,选择通常的红、绿、蓝颜色系统,这时上述公式中有关亮度及反射系数等,就要看做是三元向量。通过分别对各颜色分量进行计算,就可以完成对彩色表面的亮度计算。

11、 VRnSdpaakNLkkrI.kII 4光的衰减 光在传播的过程中,其能量会衰减。光的传播过程分为两个阶段:从光源到物体表面的传播及从物体表面到人眼的传播。光的第一个传播阶段的衰减使物体表面的入射光强度变弱,第二个阶段的衰减使人眼接受到的物体表面的反射光的强度变弱. 光在光源到物体表面的过程中的衰减 在同一光源的照射下,距光源近的物体看起来亮,而距光源较远的物体看起来暗。 衰减比例为光的传输距离平方的衰减比例为光的传输距离平方的倒数,若以衰减函数倒数,若以衰减函数f(d)f(d)来表示衰减来表示衰减的比例,那么的比例,那么 f(d)=1/d2f(d)=1/d2 其中,其中,d d为光的传播

12、距离。为光的传播距离。 这种变化规律对点光源来这种变化规律对点光源来说是正确的,但真实的世界中物体并说是正确的,但真实的世界中物体并不是以点光源照射的。为了弥补点光不是以点光源照射的。为了弥补点光源的不足,产生真实感更强的图形,源的不足,产生真实感更强的图形,一个有效的衰减函数如下所示:一个有效的衰减函数如下所示: f(d)=min(1/(C0+C1d+C2d2),1)f(d)=min(1/(C0+C1d+C2d2),1)考虑考虑f(d),得到光照明计算式,得到光照明计算式 光在物体表面到人眼过程中的衰减光在物体表面到人眼过程中的衰减 为模拟光在这段传播过程中的衰减,许为模拟光在这段传播过程中

13、的衰减,许多系统采用深度暗示技术多系统采用深度暗示技术Depth Cueing)。)。深度暗示技术最初用于线框图形的显示,使深度暗示技术最初用于线框图形的显示,使距视点远的比近的点暗一些。距视点远的比近的点暗一些。VRnSdpaakNLkIf(d)kII 首先,在投影坐标系为方便起见,记为xyz,)中定义两个平面Z=Zf,Z=Zb,分别为前参考面与 后 参 考 面 , 并 赋 予 比 例 因 子 S f 和Sb(Sf,Sb0,1)。给定物体上一点的深度值Z0,该点对应的比例因子S0这样来确定: 当Z0Zf时Z0较Zf更近),取S0=Sf 当Z0ZfZ0Zf时,时,I I=I=I,即亮度没有被衰

14、减。,即亮度没有被衰减。 当物体位于后裁剪面之后当物体位于后裁剪面之后Z0Z0ZbZb时,时,I I=Idc=0,=Idc=0,即亮度被衰减为即亮度被衰减为0 0。而当。而当Z0ZbZ0Zb,ZfZf时,时,I I= S0I= S0I,亮度被部分,亮度被部分衰减。由此可以产生真实效果较好的图形衰减。由此可以产生真实效果较好的图形。第二节第二节 多边形网的明暗处理多边形网的明暗处理 多边形网方法是指用若干多边形表面去拟合任意形状复杂形体的方法。 对用多边形网方法表现的任意形体,形成明暗有三种基本的方法,即常数明暗法均匀着色法)、亮度插值明暗法Gouraud着色方法及法向量插值明暗法Phong着色

15、方法)。 1 1常数明暗法常数明暗法 常数明暗法又称均匀着色法,就是对常数明暗法又称均匀着色法,就是对每个多边形表面,整个地用一个亮度值每个多边形表面,整个地用一个亮度值或颜色值)。应用这种方法,应该有或颜色值)。应用这种方法,应该有以下假设成立:以下假设成立:(1) (1) 光源在无穷远处。多边形表面上的任光源在无穷远处。多边形表面上的任意点的意点的NLNL是常数。是常数。(2) (2) 观察者在无穷远处。多边形表面上的观察者在无穷远处。多边形表面上的任意点的任意点的RVRV也是常数。也是常数。(3) (3) 该多边形表面代替了被模拟的真实表该多边形表面代替了被模拟的真实表面,而并不是对一个

16、曲面的近似。面,而并不是对一个曲面的近似。 最后那个假设常常会产生较大误差。这时用来逼近曲面的各多边形表面可能会被分辨出来。由于每个小面与其相邻的小面在亮度上常有差别,所以在显示图形时就能看到这种差别,这种差别由于Mach带效应而得到加强。Mach带效应指的是当亮度发生不连续的突然变化时,看上去会有一种边缘增强的感觉。视觉上会感到边缘的亮侧更亮,暗侧更暗。Mach带效应是一种由人类视觉系统加工处理而产生的一种感受现象。2Gouraud方法方法 亮度或颜色插值明暗法亮度或颜色插值明暗法 通常被通常被称为称为Gouraud着色方法。增加逼近空间着色方法。增加逼近空间形体的多边形表面的数目,形体的多

17、边形表面的数目,Mach带效应带效应可以随之减弱。可以随之减弱。 亮度或颜色插值明暗法处理过程亮度或颜色插值明暗法处理过程有以下四个步骤:有以下四个步骤:(1) 计算各多边形表面的法向量。计算各多边形表面的法向量。(2) 计算各顶点的法向量。这里顶点的法计算各顶点的法向量。这里顶点的法向,指共享该顶点的所有多边形表面法向,指共享该顶点的所有多边形表面法向的平均值。向的平均值。 如果有一条边是作为边界准如果有一条边是作为边界准备显示出来的,可以对这条边的备显示出来的,可以对这条边的每个顶点,计算两个法向量,每每个顶点,计算两个法向量,每个是一侧各边形表面法向量的平个是一侧各边形表面法向量的平均值

18、。均值。4/N4N3N2N1N 计算各顶点的亮度。因为各顶点的计算各顶点的亮度。因为各顶点的法向已经求得,所以已经可以利用上法向已经求得,所以已经可以利用上节讨论的计算亮度的公式进行计算。节讨论的计算亮度的公式进行计算。 计算各多边形表面上任意点处的计算各多边形表面上任意点处的亮度值,实行对多边形表面的明暗处亮度值,实行对多边形表面的明暗处理。做法是先利用顶点的亮度值,在理。做法是先利用顶点的亮度值,在边上做线性插值,求得边上的亮度值。边上做线性插值,求得边上的亮度值。再用之在扫描线上做线性插值,从而再用之在扫描线上做线性插值,从而求得多边形面内任意点处的亮度值。求得多边形面内任意点处的亮度值

19、。 y yy yy yy y. .I Iy yy yy yy y. .I II I2 21 1s s1 12 22 21 12 2s s1 1a ay yy yy yy y. .I Iy yy yy yy y. .I II I3 31 1s s1 13 33 31 13 3s s1 1b bx xx xx xx x. .I Ix xx xx xx xI II Ia ab ba ap pb ba ab bP Pb ba ap pap3 Phong方法方法 法向量插值明暗法是越南人法向量插值明暗法是越南人Bui-Tuong Phong提出来的,通常称为提出来的,通常称为Phong氏形成氏形成明暗法

20、。明暗法。 这个方法是对法向量进行插值,而这个方法是对法向量进行插值,而不是对亮度进行插值。在求得各顶点法不是对亮度进行插值。在求得各顶点法向后,求多边形边上各点及多边形面内向后,求多边形边上各点及多边形面内任意点处法向所用的插值方法,与亮度任意点处法向所用的插值方法,与亮度插值明暗法中进行插值计算的方法相同。插值明暗法中进行插值计算的方法相同。因此这个插值也可以很好地应用前面提因此这个插值也可以很好地应用前面提到的扫描线算法。到的扫描线算法。 求得扫描线上每点的法向量后,在每点处实际计算亮度,可以应用任何一种光照明模型。 如果应用镜面反射,比起亮度插值法会得到明显的改进,因为强光能更加真实地

21、得到反映。即使不应用镜面反射,法向插值的结果也比亮度插值的结果好。这是因为对每一点都使用法向量的近似值,使得可以减少Mach带效应引起的问题。但另一方面,对每一点都要计算亮度,使得计算量大为增加. 绘制多边形的步骤: (1) 计算多边形的单位法矢量。 (2) 计算多边形顶点的单位法向量。 (3) 在扫描线消隐算法中,对多边形顶点的法向量进行双线性插值,计算出多边形内部扫描线上位于多边形内部各点的法向量。 双线性插值的方法如图所示,NA由N1,N2线性插值得到: 2 22 21 1A A1 11 12 21 12 2A AA AN Ny yy yy yy yN Ny yy yy yy yN N3

22、 33 31 1B B1 11 13 31 13 3B BB BN Ny yy yy yy yN Ny yy yy yy yN NB BA AB BA AA AA AB BB BP PN Nx xx xx xx xN Nx xx xx xx xN N(4) (4) 利用光照明模型计算利用光照明模型计算P P点的颜色。点的颜色。 当扫描线当扫描线y y递增一个单位变为递增一个单位变为y+1y+1时,时,NA,NBNA,NB的增量分别为的增量分别为NANA,NBNB,即,即 A Ay yA A1 1y yA AN NN NN NB By yB B1 1y yB BN NN NN N) )N N(

23、(N Ny yy y1 1N N2 21 12 21 1A A) )N N( (N Ny yy y1 1N N3 31 13 31 1B Bp px xP P, ,1 1x xP P, ,N NN NN N) )N N( (N Nx xx x1 1N NA AB BA AB BP P 当当x x递增一个单位递增一个单位P P点沿扫描右移一个点沿扫描右移一个单位时,单位时,NPNP增量为增量为NPNP即即 Phong Phong着色方法中,多边形上每一点需要着色方法中,多边形上每一点需要计算一次光照明模型,因而计算量远大于计算一次光照明模型,因而计算量远大于GouraudGouraud着色方法。

24、但是着色方法。但是PhongPhong着色方法绘制着色方法绘制的图形更加真实,特别体现在如下两个场合的图形更加真实,特别体现在如下两个场合考虑要绘制一个三角形)。考虑要绘制一个三角形)。 如果镜面反射指数如果镜面反射指数n n较大,三角形左下较大,三角形左下角的顶点角的顶点a aR R与与V V的夹角很小,而另两个顶的夹角很小,而另两个顶点的点的a a很大,以光照明模型计算的结果是左下很大,以光照明模型计算的结果是左下角顶点的亮度非常大高光点),另两个顶角顶点的亮度非常大高光点),另两个顶点的亮度小。若采用点的亮度小。若采用GouraudGouraud方法绘制,由于方法绘制,由于它是对顶点的亮

25、度进行插值,导致高光区域它是对顶点的亮度进行插值,导致高光区域不正常地扩散成很大一块区域。不正常地扩散成很大一块区域。 而根据而根据n n的意义,当的意义,当n n较大时,高较大时,高光区域实际应该较集中。采用光区域实际应该较集中。采用PhongPhong方方法绘制的结果更符合实际情况。法绘制的结果更符合实际情况。 当实际的高光区域位于三当实际的高光区域位于三角形中间时,采用角形中间时,采用PhongPhong方法能产生正方法能产生正确的结果,而若采用确的结果,而若采用GouraudGouraud方法,由方法,由于按照光照明模型计算出来的三个顶于按照光照明模型计算出来的三个顶点处的亮度都较小,

26、线性插值的结果点处的亮度都较小,线性插值的结果是三角形中间不会产生高光区域。是三角形中间不会产生高光区域。 对于隐藏面消除算法,是从观察点看,确定哪些表面是可见的。而对于阴影发现算法,是从点光源“看”,确定哪些表面是可见的。从观察点和从点光源都能看见的表面,就是可见的表面。从观察点可见,而从点光源不可见的表面,就在阴影之中。 应当注意,这种简便方法不能构造出来自分布光源的阴影。如果要把分布光源造成的阴影也考虑进去,则必须计算阴影的本影和半影。 第三节第三节 阴阴 影影 不透明体遮住光源时,如果光源是比不透明体遮住光源时,如果光源是比较大的发光体,所产生的影子就有两部分,较大的发光体,所产生的影

27、子就有两部分,完全暗的部分叫本影,半明半暗的部分叫完全暗的部分叫本影,半明半暗的部分叫半影。半影。 当要显示一个客体时,可以分别对观察点及各点光源实施同样的消除隐藏面的算法,分别对观察点及各点光源确定出相应的可见部分和不可见部分,然后把所得结果进行整理,通过正确形成明暗而表现出来。 当要对同一物体从许多不同观察点进行观察时,对所看到的一系列情形,可以只做一次发现阴影的计算,因为当点光源相对物体是固定时.阴影实际上和观察点的位置无关。 计算阴影还有许多其他的方法。对由多计算阴影还有许多其他的方法。对由多边形表面组成的客体边形表面组成的客体, , 是对从光源来说是完是对从光源来说是完全可见或者部分

28、可见的多边形全可见或者部分可见的多边形, ,都附加上另一都附加上另一个与之共面的多边形个与之共面的多边形, ,称为细碎多边形称为细碎多边形. . 计算细碎多边形的方法计算细碎多边形的方法, ,是用遮挡光线多是用遮挡光线多边形的投影边形的投影, ,相对多边形表面相对多边形表面, ,用对多边形进用对多边形进行剪裁的算法进行剪裁行剪裁的算法进行剪裁. . 下图示意说明了这种情况下图示意说明了这种情况. .图中在立方体图中在立方体和光源之间有一个不透明的三角形面和光源之间有一个不透明的三角形面, ,立方体立方体有两个面产生了阴影有两个面产生了阴影, ,在那两个面上附加上了在那两个面上附加上了细碎多边形

29、细碎多边形. . 从观察点看是可见的从观察点看是可见的, ,并且被细并且被细碎多边形覆盖的部分碎多边形覆盖的部分, ,要进行全部的要进行全部的明暗处理明暗处理, ,即要同时计算漫射照明及即要同时计算漫射照明及具体光源照明等结合起来的效果具体光源照明等结合起来的效果. .从从观察点看是可见的观察点看是可见的, ,但没有被细碎多但没有被细碎多边形覆盖的部分边形覆盖的部分. .实际上是在阴影之实际上是在阴影之中中, ,应该只计算漫射照明引起的效果。应该只计算漫射照明引起的效果。 光源在无穷远处光源在无穷远处投射阴影的多边形投射阴影的多边形细碎多边形细碎多边形位于立方体位于立方体顶面的阴影顶面的阴影位

30、于多边位于多边形前面的形前面的阴影阴影完全位于阴影中的完全位于阴影中的面,因而并不加上面,因而并不加上细碎多边形细碎多边形第四节第四节 纹纹 理理 纹理纹理(texture) (texture) 物体的表面细节物体的表面细节 光滑表面上额外地增加图案光滑表面上额外地增加图案, ,当图当图案加上后案加上后, ,表面仍然保持光滑表面仍然保持光滑, ,这一过这一过程基本上可用一个映射函数描述程基本上可用一个映射函数描述; ; 表面呈现出凸凹不平的形状表面呈现出凸凹不平的形状, ,这一这一过程可用一个扰动函数来描述过程可用一个扰动函数来描述. . 光滑表面上描绘花纹是花纹图案在客体表面上的映射,即可以

31、表示为由一个坐标系至另一个坐标系的变换. 在纹理空间的正交坐标系(u,w)中定义一个纹理图案,而在另一个正交坐标系(s,t)中定义了一个表面,那么,通过一个函数变换,即一个映射函数来把花纹绘制到表面上去. s=(u ,w) t=g(u ,w)或 u=h(s ,t) w=k(s,t) 最简单的映射最简单的映射, ,可以是一个线性可以是一个线性函数函数. .如如 s=Au+B , t=Cw+Ds=Au+B , t=Cw+D 纹理的定义可能不是由数纹理的定义可能不是由数学函数给出的学函数给出的, ,这样的纹理包括一般这样的纹理包括一般绘制的图案及照片等其它形式的图案绘制的图案及照片等其它形式的图案.

32、 .这多用一个二维数组定义这多用一个二维数组定义, ,数组代表数组代表一个用于光栅图形显示的位图一个用于光栅图形显示的位图. . 显示纹理图案涉及从物体空间到图象空间,以及从纹理空间到物体空间的变换,此外还要进行适当的视图变换. 我们可以用Catmull的分割算法来实现纹理的显示,在这个算法中,曲面片不断地被分割,直至每一个子曲面片仅包含一个象素中心为止,然后,将子曲面片中心的参数值映射到纹理空间中,根据纹理空间中相交点处的花纹图象值决定该像素处的光强. 对于具有不同粗糙程度的物体表面纹理的实现,可以通过对表面法向量进行扰动,来产生凹凸不平的视觉效果. Blinn通过在原始表面上增加一个干扰函

33、数 T(u,v),来定义一个具有粗糙纹理效果的新表面. 设设O(u,v)O(u,v)是一个表面是一个表面, ,用用(u,v)(u,v)来表示该表面上的一点来表示该表面上的一点. . 表示此点的法向量表示此点的法向量 新表面上对应点的位量矢量新表面上对应点的位量矢量为为: :V VO Ou uO ON NN NN Nv v) )T T( (u u, ,v v) )O O( (u u, ,v v) )( (u u, ,O O 新的表面的法向量为 v vO O u uO O N N ) )N NN N( (u uv)v)T(u,T(u,N NN Nu uT Tu uO Ou uOO) )N NN N

34、( (v vv)v)T(u,T(u,N NN Nv vT Tv vO Ov vOO 当当T(u,v)T(u,v)很小时很小时, ,上式中的最后上式中的最后一项可以忽略一项可以忽略, ,则有则有: : N NN Nu uT Tu uO Ou uO O N NN Nv vT Tv vO Ov vO O 2 2N NN N) )T Tu uT Tv v( (N NN NO Ou u) )T Tv v( (N NN NO Ov v) )T Tu u( (N Nv vO Ou uO OV VO O u uO O N N N NOu)Ou)Tv(NTv(NN NOv)Ov)Tu(NTu(NN NNN 或或

35、N=N+D,DN=N+D,D为一个干扰向量为一个干扰向量, ,在这里在这里为上式后两项的和为上式后两项的和. . 第五节第五节 整体光照明模型整体光照明模型 局部光照明模型不考虑周围环境对当前景物表面的光照明影响,忽略了光能在环境景物之间的传递,因此很难生成表现自然界杂场景的高质量真实感图形。为了增加图形的真实感,必须考虑环境的漫射、镜面反射和规则透射对景物表面产生的整体照明效果。 表现场景整体照明效果的一个重要方面是透明现象的模拟。 透过透明性能很好的透明体,如玻璃窗,观察到的景物不会产生变形。但透过另一些透明物体,如透明球等进行观察时,位于其后的景物呈现严重的变形。这种变形是由于光线穿过透

36、明介质时发生折射而引起的,因而是一种几何变形。有些透明物体的透明性更差,观察者通过它们看到的只是背后景物朦胧的轮廓。 这种模糊变形是由于透明体这种模糊变形是由于透明体表面粗糙或透明物体材料掺有杂表面粗糙或透明物体材料掺有杂质以至于从某方向来的透射光宏质以至于从某方向来的透射光宏观上不遵从折射定律而向各个方观上不遵从折射定律而向各个方向散射。此外,透明材料的滤光向散射。此外,透明材料的滤光特性也影响透明性能。特性也影响透明性能。 整体光照明模型还要模拟光整体光照明模型还要模拟光在景物之间的多重反射在景物之间的多重反射 . . 一般来说,物体表面入射光除来自光源外,还来自四面八方不同景物表面的反射

37、。局部光照明模型简单地将周围环境对景物表面光亮度的贡献概括成一均匀入射的环境分量并用一常数表示,忽略了来自环境的镜面反射光和漫射光,使图形真实性受到影响。1 1、透射光亮度的简单模拟、透射光亮度的简单模拟 I=(1-tt)Ic+ttIt, I=(1-tt)Ic+ttIt, 0tt1 0tt1 在玻璃杯的边缘处,由于介质的厚度增加,因而使透明度降低。这时可取下式来表现这种效果: tt = tmin + (tmax tmin)1-(1- )2、Whitted光照明模型 Whitted在Phong模型中增加了环境镜面反射光亮度Is和环境规则透射光亮度It,以模拟周围环境的光投射在景物表面上产生的理想

38、镜面反射和规则透射现象。 d dz zN N Whitted模型基于下列假设:景物表模型基于下列假设:景物表面向空间某方向面向空间某方向V辐射的光亮度辐射的光亮度I由三部由三部分组成,一是由光源直接照射引起的反分组成,一是由光源直接照射引起的反射光亮度射光亮度Ic,另一是沿,另一是沿V的规则透射方向的规则透射方向r来的环境光来的环境光Is投射在光滑表面上产生的投射在光滑表面上产生的镜面反射光,最后是沿镜面反射光,最后是沿V的规则投射方的规则投射方向向t来的环境光来的环境光It 通过透射在透明体表面通过透射在透明体表面上产生的规则透射光,上产生的规则透射光,Is和和It分别表示了分别表示了环境在

39、该物体表面上的镜面映像和透射环境在该物体表面上的镜面映像和透射映像映像 WhittedWhitted模型可用以下公式求出:模型可用以下公式求出: I=Ic+ksIs+ ktIt I=Ic+ksIs+ ktIt 其中其中ksks和和ktkt为反射系数和透射系数,为反射系数和透射系数,它们均在它们均在0 0至至1 1之间取值。之间取值。 在在WhittedWhitted模型中,模型中,IcIc的计算可的计算可采用采用PhongPhong模型,因此,求解模型模型,因此,求解模型的关键是的关键是IsIs和和ItIt计算。由于计算。由于IsIs和和ItIt是来自是来自V V的镜面反射方向的镜面反射方向r

40、 r和规则和规则透射方向透射方向t t的环境光亮度,因而首的环境光亮度,因而首先必须确定先必须确定r r和和t t。为此可应用几何光学中的反射定律和为此可应用几何光学中的反射定律和折射定律。设折射定律。设1 1是是V V方向空间媒质的方向空间媒质的折射率,折射率,2 2是物体的折射率,那么是物体的折射率,那么向量向量r r和和t t可由下列公式得到可由下列公式得到 V V) )( (N NV VN NV V2 2 1 1/ /2 22 2 2 2 2 21 1f f f fV VN NV V) )/ /( (N Nk kN N) )V V( (N Nk kt tV V2 2N Nr r第六节第

41、六节 光线跟踪光线跟踪 光线跟踪技术是从光线投射光线跟踪技术是从光线投射ray castingray casting技术发展而来的。光线投射的基本原理很简单,技术发展而来的。光线投射的基本原理很简单,假设从视点假设从视点V V通过屏幕象素通过屏幕象素e e向场景投射一光线交向场景投射一光线交场院景中的景物于场院景中的景物于P1P1,P2P2,PmPm点点, ,那么离视那么离视点最近的点最近的P1P1点就是画面在象素点就是画面在象素e e处的可见点处的可见点, ,象素象素e e的光亮度应由的光亮度应由P1P1点向点向P1VP1V方向辐射的光亮度决定。方向辐射的光亮度决定。如果通过如果通过V V点

42、向屏幕上的每一象素都投射光线以点向屏幕上的每一象素都投射光线以求得每一投射光线与场景的第一个交点可见求得每一投射光线与场景的第一个交点可见点),并置相应象素的光亮度为交点处的光亮度,点),并置相应象素的光亮度为交点处的光亮度,那第我们就得到一幅完整的真实感图形。那第我们就得到一幅完整的真实感图形。 光线投射算法只能实现局部光照明效果。这光线投射算法只能实现局部光照明效果。这种方法的突出优点是不必再单独消隐,算法种方法的突出优点是不必再单独消隐,算法简单。简单。 虽然光线在景物间的反射和折射可以无限进虽然光线在景物间的反射和折射可以无限进行下去,但在计算机中不可能做无休无止的光线行下去,但在计算

43、机中不可能做无休无止的光线跟踪,需要给出光线跟踪的结束条件。当被跟踪跟踪,需要给出光线跟踪的结束条件。当被跟踪的光线射出画面或跟踪深度达到给定层次时,应的光线射出画面或跟踪深度达到给定层次时,应停止跟踪过程。考虑到被跟踪光线经多次反射和停止跟踪过程。考虑到被跟踪光线经多次反射和透射后会衰减由于透射后会衰减由于ksks和和ktkt的作用),也可通过的作用),也可通过判别跟踪光线对显示象素光亮度判别跟踪光线对显示象素光亮度I I的贡献是否小于的贡献是否小于一阈值来动态控制跟踪深度。设颜色灰度等级为一阈值来动态控制跟踪深度。设颜色灰度等级为G G通常为通常为255255),),k k为所取阈值,那么

44、凡是对显示为所取阈值,那么凡是对显示象素光亮度象素光亮度I I的贡献小于的贡献小于k k个灰度级,或者说其贡个灰度级,或者说其贡献系数小于献系数小于k/Gk/G的反射、透射光亮度都没有必要再的反射、透射光亮度都没有必要再计算下去。计算下去。 begin for 需要计算光亮度的每一象素需要计算光亮度的每一象素e do begin 确定通过视点确定通过视点V和象素和象素e的光线的光线R; ray-tracing(R,I,1); 置置e的光亮度为的光亮度为I end end; procedure ray-tracing(R,I,A);/*R为当前跟踪光线,为当前跟踪光线,I为当前跟踪光线的光亮度,

45、为当前跟踪光线的光亮度,A为为I对总光亮度的贡献系数对总光亮度的贡献系数*/begin ifAk/G then I=0else begin R与景物求交,返回可见点与景物求交,返回可见点P1; 计算计算P1点的局部照明光亮度点的局部照明光亮度Ic; 若若P1所在表面为光滑镜面,确定所在表面为光滑镜面,确定P1的镜面的镜面反射光线反射光线Rr; ray-tracing(Rr,Is,ksA); 若若P1所在表面为透明面,确定所在表面为透明面,确定P1的规则透的规则透射光线射光线Rt; ray-tracing(Rr,It,ktA); I=Ic+ksIs+ktIt End End 光线跟踪技术存在两个

46、主要缺点光线跟踪技术存在两个主要缺点, ,即即耗时多和容易引起图形走样耗时多和容易引起图形走样. .耗时多是因耗时多是因为它在计算每个象素光亮度时都要生成一为它在计算每个象素光亮度时都要生成一庞大的光线树庞大的光线树, ,建立光线树以及计算每一建立光线树以及计算每一结点的光亮度要进行大量的直线和曲面求结点的光亮度要进行大量的直线和曲面求交计算交计算, ,从而引起了总计算量的快速上升从而引起了总计算量的快速上升. .图形走样来源光线跟踪算法对画面的点采图形走样来源光线跟踪算法对画面的点采样样, ,算法只对穿过屏幕象素中心的光线进算法只对穿过屏幕象素中心的光线进行跟踪行跟踪, ,忽略了穿过象素内其

47、它各点投向忽略了穿过象素内其它各点投向眼睛的大量光线。图形走样使画面不能清眼睛的大量光线。图形走样使画面不能清晰地显示图形细节晰地显示图形细节, ,甚至造成细节丢失甚至造成细节丢失, ,此此外景物边缘处呈现阶梯形。外景物边缘处呈现阶梯形。 第七节第七节 辐射度方法辐射度方法 光线跟踪方法对于非常光滑的表面比较实用光线跟踪方法对于非常光滑的表面比较实用,但当表面比较粗糙时,效果并不好。尤其是无法,但当表面比较粗糙时,效果并不好。尤其是无法模拟彩色渗透现象。模拟彩色渗透现象。 所谓彩色渗透现象就是指环境中景物的颜色相互所谓彩色渗透现象就是指环境中景物的颜色相互作用而使物体表面的颜色发生变化。这是由

48、于光照作用而使物体表面的颜色发生变化。这是由于光照模型没有考虑一般物体表面之间的漫反射,以及由模型没有考虑一般物体表面之间的漫反射,以及由漫反射所产生的颜色渗透现象。为了能正确地模拟漫反射所产生的颜色渗透现象。为了能正确地模拟这种现象们,这种现象们,1984年,年,Goral等人首先提出了使用等人首先提出了使用热辐射工程中的辐射度方法来解决上述问题。热辐射工程中的辐射度方法来解决上述问题。 这一方法描述了一个封闭环境中能量交换的这一方法描述了一个封闭环境中能量交换的关系,把整个场景作为一个封闭的系统,场景中关系,把整个场景作为一个封闭的系统,场景中的每一个曲面作系统的一个组成部分,且假设曲的每

49、一个曲面作系统的一个组成部分,且假设曲面均为漫反射表面。然后根据能量平衡原理计算面均为漫反射表面。然后根据能量平衡原理计算每一个曲面上的能量,从而求出被观察点的光亮每一个曲面上的能量,从而求出被观察点的光亮度。一个曲面片的光亮度包括自发光射光以及度。一个曲面片的光亮度包括自发光射光以及可能有的透射光。那么,表示成公式为:可能有的透射光。那么,表示成公式为: 其中其中EAiEAi为为i i个面上单位面积直接发射出的个面上单位面积直接发射出的能量。能量。Ai(i=1,n)Ai(i=1,n)为第为第i i个小曲面的面积,个小曲面的面积,Ai Ai 为第为第i i个小曲面的单位面积辐射度,个小曲面的单

50、位面积辐射度,AiAi为第为第i i个小曲面的反射率,个小曲面的反射率,FAj-AiFAj-Ai为形状因子,为形状因子,它定义为从第它定义为从第i i个面出发的辐射能中,可以到个面出发的辐射能中,可以到达的达的j j个面的部分。当所有的面都是具有理想个面的部分。当所有的面都是具有理想漫反射性质时,形状因子是纯几何量,仅与形漫反射性质时,形状因子是纯几何量,仅与形状、大小、位置及朝向有关。状、大小、位置及朝向有关。 由于由于那么那么 把它带入公式中,则有把它带入公式中,则有 上式简记为:上式简记为: 公式实际上是含有公式实际上是含有N N个未知数个未知数Bi(i=1,n)Bi(i=1,n)的的N

51、 N个方程组成的线性方程组。这里,个方程组成的线性方程组。这里,Ei, Ei, AiAi及及FijFij被视为已知。被视为已知。EiEi表示环境中的光源,表示环境中的光源,如果所有的如果所有的EiEi都为都为0 0,那么,就意味着环境中,那么,就意味着环境中没有任何照明,这时,所有的没有任何照明,这时,所有的BiBi也为也为0;0;当当 EiEi非非0 0时,则可能代表漫反射面光源,也可能代时,则可能代表漫反射面光源,也可能代表直接反射某个有向光源的漫反射面,正式这表直接反射某个有向光源的漫反射面,正式这些面,为封闭环境提供照明,即非些面,为封闭环境提供照明,即非0 0的的EiEi项代项代表了

52、外部光源。表了外部光源。 辐射度方法的含义是:离开一个特定的面辐射度方法的含义是:离开一个特定的面的光能等于它所发出的光和反射光能之和。当的光能等于它所发出的光和反射光能之和。当然,反射光等于离开其它各个面的光亮度乘以然,反射光等于离开其它各个面的光亮度乘以形状因子,再乘以该面的反射率。形状因子,再乘以该面的反射率。把辐射度公式写成矩阵乘积的形式为:把辐射度公式写成矩阵乘积的形式为: 对于平面或凸面,对于平面或凸面,Fii=0Fii=0,由于系统是封,由于系统是封闭的,根据能量守恒,每一个面的形状因子闭的,根据能量守恒,每一个面的形状因子之和为单位常数,即:之和为单位常数,即: 在不存在遮挡关

53、系的环境中,在二个微在不存在遮挡关系的环境中,在二个微分面之间,从一个微分面元到另一个微分面分面之间,从一个微分面元到另一个微分面元的形状因子为元的形状因子为: : 它表示从它表示从dAidAi发出的光能中,可以到达发出的光能中,可以到达dAjdAj的部分。那么,两个面片之间的形状因子为:的部分。那么,两个面片之间的形状因子为: 当环境中有遮挡关系存在时,应在上面的积当环境中有遮挡关系存在时,应在上面的积分式中加入一个系数分式中加入一个系数ijij,它的取值为,它的取值为0 0或者或者1 1,取取1 1时,表示第时,表示第i i个面的位置可以看见第个面的位置可以看见第j j个面的相个面的相应位

54、置,取应位置,取0 0时,则不可见。时,则不可见。 为了方便的计算形状因子,我们可以采用为了方便的计算形状因子,我们可以采用hemicubehemicube方法方法. .即在受光的面片中心周围构造一个即在受光的面片中心周围构造一个半正方体。使受光面中心成为新坐标系中心,面半正方体。使受光面中心成为新坐标系中心,面片的法向方向为片的法向方向为z z轴方向。把此半正方体分成一些轴方向。把此半正方体分成一些网格,每个网格对应一个形状因子。要计算一个网格,每个网格对应一个形状因子。要计算一个面片的形状因子,则可把该面片投影到半正方体面片的形状因子,则可把该面片投影到半正方体上。投影所覆盖网格的小形状因

55、子之和,就是面上。投影所覆盖网格的小形状因子之和,就是面片的形状因子。片的形状因子。 如果若干个面片投影到半立方体的同一个如果若干个面片投影到半立方体的同一个网格上,则可以通过比较这些面到受光面片的网格上,则可以通过比较这些面到受光面片的距离,来确定哪一个面片离受光面片更近。距离,来确定哪一个面片离受光面片更近。 现在来看面片的形状因子的计算,由于现在来看面片的形状因子的计算,由于 其中,其中,FqFq是第是第q q个具有投影的小网格的个具有投影的小网格的形状因子。现在的任务是如何来求形状因子。现在的任务是如何来求FqFq。对于顶面上的网格,其小形状因子值为:对于顶面上的网格,其小形状因子值为

56、: 其中,其中,AqAq为网格面积,(为网格面积,(x x,y y,1 1网格中心坐标。这是因为:网格中心坐标。这是因为: 类似地,对于类似地,对于x x方向侧面上的网格,其小方向侧面上的网格,其小形状因子为:形状因子为: 使用半立方体计算形状因子使用半立方体计算形状因子Fji(i=1,N)Fji(i=1,N)的的算法如下算法如下: :BeginBegin以曲面片以曲面片SjSj的中心面元的中心面元dSjdSj为原点,为原点,dSjdSj的法向的法向量为量为z z轴建立坐标系和半立方体,并把所有曲面轴建立坐标系和半立方体,并把所有曲面变换之该坐标系:变换之该坐标系:将半立方体每一象素将半立方体

57、每一象素e e的曲面片号置为的曲面片号置为0 0;将将dSjdSj对每一曲面片对每一曲面片SiSi的形状因子的形状因子FjiFji置为置为0 0;for for 每一曲面片每一曲面片Sj doSj dobeginbegin将将SiSi投影至半立方体表面,其投影区域为投影至半立方体表面,其投影区域为Si;Si;for Sifor Si覆盖的每一象素覆盖的每一象素e do e do if eif e保存的曲面片好保存的曲面片好k0 thenk0 then沿沿e e所在投影方向比较曲面片所在投影方向比较曲面片SkSk和和SiSi到到dSjdSj的距离,的距离,若若SiSi离离dSjdSj的距离近,的

58、距离近, 则置则置e e的曲面片号为的曲面片号为 i i。ElseElse置置e e的曲面片号为的曲面片号为I;I;end;end;for for 半立方体表面上曲面片号非半立方体表面上曲面片号非0 0的一要素的一要素e doe dobeginbegin设设e e的曲面片号为的曲面片号为I;I;计算计算dSjdSj对象素对象素e e的小形状因子的小形状因子Fji; Fji; Fji:=Fji+Fji:=Fji+FjiFjiendendendend第八节第八节 色彩模型色彩模型 颜色既是一种心理生理现象,也是一种颜色既是一种心理生理现象,也是一种心理物理现象。在心理生物学上,颜色由其心理物理现象

59、。在心理生物学上,颜色由其色彩色饱和度和明度决定。色彩即颜色的色彩色饱和度和明度决定。色彩即颜色的 颜色颜色 ,它是某种颜色据以定义的名称。色饱,它是某种颜色据以定义的名称。色饱和度是单色光中掺入白光的度量。单色光的和度是单色光中掺入白光的度量。单色光的色饱和度为色饱和度为100100,白光加入后,其色饱和度,白光加入后,其色饱和度下降。非彩色光的色饱和度为下降。非彩色光的色饱和度为0 0。明度为非彩。明度为非彩色光的光强值。在心理物理学上,与色彩色光的光强值。在心理物理学上,与色彩色饱和度和明度相对应的是主波长色纯度色饱和度和明度相对应的是主波长色纯度和亮度。和亮度。 光是波长为光是波长为4

60、00-700mu400-700mu的电磁波,这些电的电磁波,这些电磁波被我们视觉系统感知为紫青蓝绿磁波被我们视觉系统感知为紫青蓝绿黄橙红等颜色。我们可以用主波长纯度黄橙红等颜色。我们可以用主波长纯度和亮度三元组来描述任何光谱分析的视觉效果。和亮度三元组来描述任何光谱分析的视觉效果。一一CIECIE色度图色度图 人类对颜色的感知是以三刺激理论为基础人类对颜色的感知是以三刺激理论为基础的。三刺激理论假设人类眼睛的视网膜中有三的。三刺激理论假设人类眼睛的视网膜中有三种锥状视觉细胞,分别为红绿蓝。因此人种锥状视觉细胞,分别为红绿蓝。因此人们把这三种颜色定义为三基色。们把这三种颜色定义为三基色。 193

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论