真实感图形的绘制 (2).ppt

上传人:小飞机 文档编号:6319282 上传时间:2023-10-16 格式:PPT 页数:107 大小:1.08MB
返回 下载 相关 举报
真实感图形的绘制 (2).ppt_第1页
第1页 / 共107页
真实感图形的绘制 (2).ppt_第2页
第2页 / 共107页
真实感图形的绘制 (2).ppt_第3页
第3页 / 共107页
真实感图形的绘制 (2).ppt_第4页
第4页 / 共107页
真实感图形的绘制 (2).ppt_第5页
第5页 / 共107页
点击查看更多>>
资源描述

《真实感图形的绘制 (2).ppt》由会员分享,可在线阅读,更多相关《真实感图形的绘制 (2).ppt(107页珍藏版)》请在三一办公上搜索。

1、第八章 真实感图形的绘制,用计算机在图形设备上生成连续色调的真实感图形必须完成四个基本的任务。第一 用数学方法建立所构造三维场景 的几何描述,并将它们输入至计 算机。(立体或曲面造型系统)第二 将三维几何描述转换为二维透视 图。(透视变换),第三 确定场景中的所有可见面。(消除隐藏面算法)第四 计算场景中可见面的颜色。(基于光学物理的光照模型计算),光照模型并不需要精确地考虑真实世界中光线和表面的性质,而只需要在兼顾精确程度和计算成本的要求下,追求更好的显示效果。通常设计一个光照模型需要考虑的主要问题是照明特性、表面特性和观察角度。,照明特性是指可见表面被照明的情况,主要有光源的数目和性质,环

2、境光及阴影效应等。表面特性主要是指表面对入射光线的反射、折射或透明的不同情形,还有表面的纹理及颜色等。观察角度是指观察景物时观察者相对可见表面所在的位置。不同光照模型的区别主要在于模拟的方法,实现的复杂程度,及取得的显示效果等方面。,一般来说,光照模型可以分解为三个部分,即漫射照明、具体光源的照射及透射效应。具体光源的照明产生的效果又分为漫反射和镜面反射两部分。,简单的光照模型(局部)仅考虑光源照射在物体表面产生的反射光。复杂的光照模型(整体)要考虑周围环境的光对物体表面的影响。,第一节 漫反射及具体 光源的照明,1环境光 在多数实际环境中,存在由于许多物体表面多次反射而产生的均匀的照明光线,

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

4、取值在0到1之间,随物体材料不同而不同。是可见表面法向N和点光源方向L之间的夹角,即入射角,它应该在0到90之间。,为了简化公式中余弦值的实际计算,可以假定向量N和L都已经正规化,即已经是长度为1的单位向量,这样就可以使用向量的数量积或内积。因为这时,于是得:Id=Ip d(L N)将环境光线和漫反射的效果结合起来,计算亮度的公式应该写成:I=Ia a+Ip d(),通常认为具体光源对可见表面产生的照明作用,是随着光源与表面之间距离的增加而下降的。设R是光线从光源发出到达表面再返回的距离,则,I=Ia a+Ip d()/R2,L,N,表面,对于平行投影,光源在无穷远处,故距离R成为无穷大。对于

5、透视投影,1/R2也常常有很大的数值范围而使效果不好。一种比较逼真的效果,可通过用r+k代替R2来获得:,I=Ia a+Ip d()/(r+k)其中r是光源到表面的距离,k是根据经验选取的一个常数。,3.镜面反射与Phong模型 镜面反射是指来自具体光源的光能到达可见表面上的某一点后,主要沿着由射入角等于反射角所决定的方向传播,从而使得观察者从不同角度观察时,这一点呈现的亮度并不相同。在任何有光泽的表面上都可以观察到镜面反射的效果。例如,用很亮的光照射一个红色的苹果,会发现最亮点不是红色的,而是有些呈现白色,这是入射光线的颜色。这个最亮点就是有镜面反射引起的。如果观察者移动位置,会看到最亮点也

6、随之移动。,镜面反射,在镜面反射的示意图中,只有当观察者相对表面的方向V与反射光线的方向R之间的夹角 为零时,才能看到镜面反射引起的反射光线。对于不是非常理想的光泽表面,例如一个苹果,反射光线引起的亮度随着 的增大而迅速下降。,由Phong Bui-Tuong提出的光照明模型,用 来近似反射光线引起的亮度随着 增大而下降的速率。n取值一般在1到2000之间,决定于反射表面的有关性质。对于理想的反射表面,n就是无穷大。这里选用,是以经验观察为基础的。对实际物质来说,被镜面反射的入射光的数量是与入射角 有关的。如果将镜面反射光的百分数记为,那么就可以将计算表面亮度的公式修改而得到:,这里可以假定反

7、射光线的方向向量R和指向观察点的向量V都已经正规化,即已经是长度为1的单位向量,于是可以简单地利用向量内积计算余弦值:。对,通常根据经验选取一个常数 来代替,这样公式可写成下面更容易计算的形式:,对于彩色表面,上述各公式也可以应用,只需分别应用于对各颜色分量的计算。例如,选择通常的红、绿、蓝颜色系统,这时上述公式中有关亮度及反射系数等,就要看做是三元向量。通过分别对各颜色分量进行计算,就可以完成对彩色表面的亮度计算。,4光的衰减 光在传播的过程中,其能量会衰减。光的传播过程分为两个阶段:从光源到物体表面的传播及从物体表面到人眼的传播。光的第一个传播阶段的衰减使物体表面的入射光强度变弱,第二个阶

8、段的衰减使人眼接受到的物体表面的反射光的强度变弱.光在光源到物体表面的过程中的衰减 在同一光源的照射下,距光源近的物体看起来亮,而距光源较远的物体看起来暗。,衰减比例为光的传输距离平方的倒数,若以衰减函数f(d)来表示衰减的比例,则 f(d)=1/d2 其中,d为光的传播距离。这种变化规律对点光源来说是正确的,但真实的世界中物体并不是以点光源照射的。为了弥补点光源的不足,产生真实感更强的图形,一个有效的衰减函数如下所示:f(d)=min(1/(C0+C1d+C2d2),1),考虑f(d),得到光照明计算式,光在物体表面到人眼过程中的衰减 为模拟光在这段传播过程中的衰减,许多系统采用深度暗示技术

9、(Depth Cueing)。深度暗示技术最初用于线框图形的显示,使距视点远的比近的点暗一些。,首先,在投影坐标系(为方便起见,记为xyz,)中定义两个平面Z=Zf,Z=Zb,分别为前参考面与后参考面,并赋予比例因子Sf和Sb(Sf,Sb0,1)。给定物体上一点的深度值Z0,该点对应的比例因子S0这样来确定:当Z0Zf时(Z0较Zf更近),取S0=Sf 当Z0Zb时(Z0较Zf更远),取S0=Sb 当Z0在Zb,Zf时,S0按下式计算,S0=Sb+(Z0-Zb),原亮度I(由光照明模型计算出来的值)按比例S0与亮度Idc混合,目的是获得最终用于显示的亮度I,Idc由用户指定,I=S0I+(1-

10、S0)Idc 特别地,若取Sf=1,Sb=0,Idc=0,则当物体位于前参考面之前(Z0Zf)时,I=I,即亮度没有被衰减。,当物体位于后裁剪面之后(Z0Zb)时,I=Idc=0,即亮度被衰减为0。而当Z0Zb,Zf时,I=S0I,亮度被部分衰减。由此可以产生真实效果较好的图形。,第二节 多边形网的明暗处理,多边形网方法是指用若干多边形表面去拟合任意形状复杂形体的方法。对用多边形网方法表现的任意形体,形成明暗有三种基本的方法,即常数明暗法(均匀着色法)、亮度插值明暗法(Gouraud着色方法)及法向量插值明暗法(Phong着色方法)。,1常数明暗法 常数明暗法又称均匀着色法,就是对每个多边形表

11、面,整个地用一个亮度值(或颜色值)。应用这种方法,应该有以下假设成立:(1)光源在无穷远处。多边形表面上的任意点的NL是常数。(2)观察者在无穷远处。多边形表面上的任意点的RV也是常数。(3)该多边形表面代替了被模拟的真实表面,而并不是对一个曲面的近似。,最后那个假设常常会产生较大误差。这时用来逼近曲面的各多边形表面可能会被分辨出来。由于每个小面与其相邻的小面在亮度上常有差别,所以在显示图形时就能看到这种差别,这种差别由于Mach带效应而得到加强。Mach带效应指的是当亮度发生不连续的突然变化时,看上去会有一种边缘增强的感觉。视觉上会感到边缘的亮侧更亮,暗侧更暗。Mach带效应是一种由人类视觉

12、系统加工处理而产生的一种感受现象。,2Gouraud方法 亮度(或颜色)插值明暗法 通常被称为Gouraud着色方法。增加逼近空间形体的多边形表面的数目,Mach带效应可以随之减弱。亮度(或颜色)插值明暗法处理过程有以下四个步骤:(1)计算各多边形表面的法向量。(2)计算各顶点的法向量。这里顶点的法向,指共享该顶点的所有多边形表面法向的平均值。,如果有一条边是作为边界准备显示出来的,可以对这条边的每个顶点,计算两个法向量,每个是一侧各边形表面法向量的平均值。,计算各顶点的亮度。因为各顶点的法向已经求得,所以已经可以利用上节讨论的计算亮度的公式进行计算。计算各多边形表面上任意点处的亮度值,实行对

13、多边形表面的明暗处理。做法是先利用顶点的亮度值,在边上做线性插值,求得边上的亮度值。再用之在扫描线上做线性插值,从而求得多边形面内任意点处的亮度值。,a,p,3 Phong方法 法向量插值明暗法是越南人Bui-Tuong Phong提出来的,通常称为Phong氏形成明暗法。这个方法是对法向量进行插值,而不是对亮度进行插值。在求得各顶点法向后,求多边形边上各点及多边形面内任意点处法向所用的插值方法,与亮度插值明暗法中进行插值计算的方法相同。因此这个插值也可以很好地应用前面提到的扫描线算法。,求得扫描线上每点的法向量后,在每点处实际计算亮度,可以应用任何一种光照明模型。如果应用镜面反射,比起亮度插

14、值法会得到明显的改进,因为强光能更加真实地得到反映。即使不应用镜面反射,法向插值的结果也比亮度插值的结果好。这是因为对每一点都使用法向量的近似值,使得可以减少Mach带效应引起的问题。但另一方面,对每一点都要计算亮度,使得计算量大为增加.,绘制多边形的步骤:(1)计算多边形的单位法矢量。(2)计算多边形顶点的单位法向量。(3)在扫描线消隐算法中,对多边形顶点的法向量进行双线性插值,计算出多边形内部(扫描线上位于多边形内部)各点的法向量。双线性插值的方法如图所示,NA由N1,N2线性插值得到:,(4)利用光照明模型计算P点的颜色。,当扫描线y递增一个单位变为y+1时,NA,NB的增量分别为NA,

15、NB,即,当x递增一个单位(P点沿扫描右移一个单位)时,NP增量为NP即,Phong着色方法中,多边形上每一点需要计算一次光照明模型,因而计算量远大于Gouraud着色方法。但是Phong着色方法绘制的图形更加真实,特别体现在如下两个场合(考虑要绘制一个三角形)。如果镜面反射指数n较大,三角形左下角的顶点a(R与V的夹角)很小,而另两个顶点的a很大,以光照明模型计算的结果是左下角顶点的亮度非常大(高光点),另两个顶点的亮度小。若采用Gouraud方法绘制,由于它是对顶点的亮度进行插值,导致高光区域不正常地扩散成很大一块区域。,而根据n的意义,当n较大时,高光区域实际应该较集中。采用Phong方

16、法绘制的结果更符合实际情况。当实际的高光区域位于三角形中间时,采用Phong方法能产生正确的结果,而若采用Gouraud方法,由于按照光照明模型计算出来的三个顶点处的亮度都较小,线性插值的结果是三角形中间不会产生高光区域。,对于隐藏面消除算法,是从观察点看,确定哪些表面是可见的。而对于阴影发现算法,是从点光源“看”,确定哪些表面是可见的。从观察点和从点光源都能看见的表面,就是可见的表面。从观察点可见,而从点光源不可见的表面,就在阴影之中。应当注意,这种简便方法不能构造出来自分布光源的阴影。如果要把分布光源造成的阴影也考虑进去,则必须计算阴影的本影和半影。,第三节 阴 影,不透明体遮住光源时,如

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

18、用遮挡光线多边形的投影,相对多边形表面,用对多边形进行剪裁的算法进行剪裁.下图示意说明了这种情况.图中在立方体和光源之间有一个不透明的三角形面,立方体有两个面产生了阴影,在那两个面上附加上了细碎多边形.,从观察点看是可见的,并且被细碎多边形覆盖的部分,要进行全部的明暗处理,即要同时计算漫射照明及具体光源照明等结合起来的效果.从观察点看是可见的,但没有被细碎多边形覆盖的部分.实际上是在阴影之中,应该只计算漫射照明引起的效果。,光源在无穷远处,投射阴影的多边形,细碎多边形,位于立方体顶面的阴影,位于多边形前面的阴影,完全位于阴影中的面,因而并不加上细碎多边形,第四节 纹 理,纹理(texture)

19、物体的表面细节 光滑表面上额外地增加图案,当图案加上后,表面仍然保持光滑,这一过程基本上可用一个映射函数描述;表面呈现出凸凹不平的形状,这一过程可用一个扰动函数来描述.,光滑表面上描绘花纹是花纹图案在客体表面上的映射,即可以表示为由一个坐标系至另一个坐标系的变换.在纹理空间的正交坐标系(u,w)中定义一个纹理图案,而在另一个正交坐标系(s,t)中定义了一个表面,那么,通过一个函数变换,即一个映射函数来把花纹绘制到表面上去.s=(u,w)t=g(u,w)或 u=h(s,t)w=k(s,t),最简单的映射,可以是一个线性函数.如 s=Au+B,t=Cw+D 纹理的定义可能不是由数学函数给出的,这样

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

21、一个具有粗糙纹理效果的新表面.,设O(u,v)是一个表面,用(u,v)来表示该表面上的一点.表示此点的法向量 新表面上对应点的位量矢量为:,新的表面的法向量为,当T(u,v)很小时,上式中的最后一项可以忽略,则有:,或N=N+D,D为一个干扰向量,在这里为上式后两项的和.,第五节 整体光照明模型,局部光照明模型不考虑周围环境对当前景物表面的光照明影响,忽略了光能在环境景物之间的传递,因此很难生成表现自然界杂场景的高质量真实感图形。为了增加图形的真实感,必须考虑环境的漫射、镜面反射和规则透射对景物表面产生的整体照明效果。,表现场景整体照明效果的一个重要方面是透明现象的模拟。透过透明性能很好的透明

22、体,如玻璃窗,观察到的景物不会产生变形。但透过另一些透明物体,如透明球等进行观察时,位于其后的景物呈现严重的变形。这种变形是由于光线穿过透明介质时发生折射而引起的,因而是一种几何变形。有些透明物体的透明性更差,观察者通过它们看到的只是背后景物朦胧的轮廓。,这种模糊变形是由于透明体表面粗糙或透明物体材料掺有杂质以至于从某方向来的透射光宏观上不遵从折射定律而向各个方向散射。此外,透明材料的滤光特性也影响透明性能。,整体光照明模型还要模拟光在景物之间的多重反射.,一般来说,物体表面入射光除来自光源外,还来自四面八方不同景物表面的反射。局部光照明模型简单地将周围环境对景物表面光亮度的贡献概括成一均匀入

23、射的环境分量并用一常数表示,忽略了来自环境的镜面反射光和漫射光,使图形真实性受到影响。,1、透射光亮度的简单模拟 I=(1-tt)Ic+ttIt,0tt1,在玻璃杯的边缘处,由于介质的厚度增加,因而使透明度降低。这时可取下式来表现这种效果:tt=tmin+(tmax tmin)1-(1-)2、Whitted光照明模型 Whitted在Phong模型中增加了环境镜面反射光亮度Is和环境规则透射光亮度It,以模拟周围环境的光投射在景物表面上产生的理想镜面反射和规则透射现象。,Whitted模型基于下列假设:景物表面向空间某方向V辐射的光亮度I由三部分组成,一是由光源直接照射引起的反射光亮度Ic,另

24、一是沿V的规则透射方向r来的环境光Is投射在光滑表面上产生的镜面反射光,最后是沿V的规则投射方向t来的环境光It 通过透射在透明体表面上产生的规则透射光,Is和It分别表示了环境在该物体表面上的镜面映像和透射映像,Whitted模型可用以下公式求出:I=Ic+ksIs+ktIt 其中ks和kt为反射系数和透射系数,它们均在0至1之间取值。在Whitted模型中,Ic的计算可采用Phong模型,因此,求解模型的关键是Is和It计算。由于Is和It是来自V的镜面反射方向r和规则透射方向t的环境光亮度,因而首先必须确定r和t。,为此可应用几何光学中的反射定律和折射定律。设1是V方向空间媒质的折射率,

25、2是物体的折射率,那么向量r和t可由下列公式得到,第六节 光线跟踪,光线跟踪技术是从光线投射(ray casting)技术发展而来的。光线投射的基本原理很简单,假设从视点V通过屏幕象素e向场景投射一光线交场院景中的景物于P1,P2,Pm点,那么离视点最近的P1点就是画面在象素e处的可见点,象素e的光亮度应由P1点向P1V方向辐射的光亮度决定。如果通过V点向屏幕上的每一象素都投射光线以求得每一投射光线与场景的第一个交点(可见点),并置相应象素的光亮度为交点处的光亮度,那第我们就得到一幅完整的真实感图形。,光线投射算法只能实现局部光照明效果。这种方法的突出优点是不必再单独消隐,算法简单。,虽然光线

26、在景物间的反射和折射可以无限进行下去,但在计算机中不可能做无休无止的光线跟踪,需要给出光线跟踪的结束条件。当被跟踪的光线射出画面或跟踪深度达到给定层次时,应停止跟踪过程。考虑到被跟踪光线经多次反射和透射后会衰减(由于ks和kt的作用),也可通过判别跟踪光线对显示象素光亮度I的贡献是否小于一阈值来动态控制跟踪深度。设颜色灰度等级为G(通常为255),k为所取阈值,那么凡是对显示象素光亮度I的贡献小于k个灰度级,或者说其贡献系数小于k/G的反射、透射光亮度都没有必要再计算下去。,begin for 需要计算光亮度的每一象素e do begin 确定通过视点V和象素e的光线R;ray-tracing

27、(R,I,1);置e的光亮度为I end end;procedure ray-tracing(R,I,A);/*R为当前跟踪光线,I为当前跟踪光线的光亮度,A为I对总光亮度的贡献系数*/begin ifAk/G then I=0,else 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,光线跟踪技术存在两个主要缺点,即耗时多和

28、容易引起图形走样.耗时多是因为它在计算每个象素光亮度时都要生成一庞大的光线树,建立光线树以及计算每一结点的光亮度要进行大量的直线和曲面求交计算,从而引起了总计算量的快速上升.图形走样来源光线跟踪算法对画面的点采样,算法只对穿过屏幕象素中心的光线进行跟踪,忽略了穿过象素内其它各点投向眼睛的大量光线。图形走样使画面不能清晰地显示图形细节,甚至造成细节丢失,此外景物边缘处呈现阶梯形。,第七节 辐射度方法,光线跟踪方法对于非常光滑的表面比较实用,但当表面比较粗糙时,效果并不好。尤其是无法模拟彩色渗透现象。所谓彩色渗透现象就是指环境中景物的颜色相互作用而使物体表面的颜色发生变化。这是由于光照模型没有考虑

29、一般物体表面之间的漫反射,以及由漫反射所产生的颜色渗透现象。为了能正确地模拟这种现象们,1984年,Goral等人首先提出了使用热辐射工程中的辐射度方法来解决上述问题。,这一方法描述了一个封闭环境中能量交换的关系,把整个场景作为一个封闭的系统,场景中的每一个曲面作系统的一个组成部分,且假设曲面均为漫反射表面。然后根据能量平衡原理计算每一个曲面上的能量,从而求出被观察点的光亮度。一个曲面片的光亮度包括自发光射光以及可能有的透射光。那么,表示成公式为:,其中EAi为i个面上单位面积直接发射出的能量。Ai(i=1,n)为第i个小曲面的面积,Ai 为第i个小曲面的单位面积辐射度,Ai为第i个小曲面的反

30、射率,FAj-Ai为形状因子,它定义为从第i个面出发的辐射能中,可以到达的j个面的部分。当所有的面都是具有理想漫反射性质时,形状因子是纯几何量,仅与形状、大小、位置及朝向有关。因为,则,把它带入公式中,则有,上式简记为:,公式实际上是含有N个未知数Bi(i=1,n)的N个方程组成的线性方程组。这里,Ei,Ai及Fij被视为已知。Ei表示环境中的光源,如果所有的Ei都为0,那么,就意味着环境中没有任何照明,这时,所有的Bi也为0;当 Ei非0时,则可能代表漫反射面光源,也可能代表直接反射某个有向光源的漫反射面,正式这些面,为封闭环境提供照明,即非0的Ei项代表了外部光源。辐射度方法的含义是:离开

31、一个特定的面的光能等于它所发出的光和反射光能之和。当然,反射光等于离开其它各个面的光亮度乘以形状因子,再乘以该面的反射率。,把辐射度公式写成矩阵乘积的形式为:,对于平面或凸面,Fii=0,由于系统是封闭的,根据能量守恒,每一个面的形状因子之和为单位常数,即:,在不存在遮挡关系的环境中,在二个微分面之间,从一个微分面元到另一个微分面元的形状因子为:,它表示从dAi发出的光能中,可以到达dAj的部分。那么,两个面片之间的形状因子为:,当环境中有遮挡关系存在时,应在上面的积分式中加入一个系数ij,它的取值为0或者1,取1时,表示第i个面的位置可以看见第j个面的相应位置,取0时,则不可见。为了方便的计

32、算形状因子,我们可以采用hemicube方法.即在受光的面片中心周围构造一个半正方体。使受光面中心成为新坐标系中心,面片的法向方向为z轴方向。把此半正方体分成一些网格,每个网格对应一个形状因子。要计算一个面片的形状因子,则可把该面片投影到半正方体上。投影所覆盖网格的小形状因子之和,就是面片的形状因子。,如果若干个面片投影到半立方体的同一个网格上,则可以通过比较这些面到受光面片的距离,来确定哪一个面片离受光面片更近。现在来看面片的形状因子的计算,因为,其中,Fq是第q个具有投影的小网格的形状因子。现在的任务是如何来求Fq。对于顶面上的网格,其小形状因子值为:,其中,Aq为网格面积,(x,y,1)

33、网格中心坐标。这是因为:,类似地,对于x方向侧面上的网格,其小形状因子为:,使用半立方体计算形状因子Fji(i=1,N)的算法如下:Begin以曲面片Sj的中心面元dSj为原点,dSj的法向量为z轴建立坐标系和半立方体,并把所有曲面变换之该坐标系:将半立方体每一象素e的曲面片号置为0;将dSj对每一曲面片Si的形状因子Fji置为0;for 每一曲面片Sj dobegin将Si投影至半立方体表面,其投影区域为Si;,for Si覆盖的每一象素e do if e保存的曲面片好k0 then沿e所在投影方向比较曲面片Sk和Si到dSj的距离,若Si离dSj的距离近,则置e的曲面片号为 i。Else置

34、e的曲面片号为I;end;for 半立方体表面上曲面片号非0的一要素e dobegin设e的曲面片号为I;计算dSj对象素e的小形状因子Fji;Fji:=Fji+Fjiendend,第八节 色彩模型,颜色既是一种心理生理现象,也是一种心理物理现象。在心理生物学上,颜色由其色彩色饱和度和明度决定。色彩即颜色的色彩,它是某种颜色据以定义的名称。色饱和度是单色光中掺入白光的度量。单色光的色饱和度为100,白光加入后,其色饱和度下降。非彩色光的色饱和度为0。明度为非彩色光的光强值。在心理物理学上,与色彩色饱和度和明度相对应的是主波长色纯度和亮度。,光是波长为400-700mu的电磁波,这些电磁波被我们

35、视觉系统感知为紫青蓝绿黄橙红等颜色。我们可以用主波长纯度和亮度三元组来描述任何光谱分析的视觉效果。,一CIE色度图 人类对颜色的感知是以三刺激理论为基础的。三刺激理论假设人类眼睛的视网膜中有三种锥状视觉细胞,分别为红绿蓝。因此人们把这三种颜色定义为三基色。,1931年,国际照明委员会(简称CIE)规定了三种基色(XYZ),适当的混合在此三基色即可规定出我们眼睛所能看到的所有光感。我们对色度值写出如下定义:,这时x+y+z=1,即获得颜色C的亮度(x,y,z)。通过对所有可见颜色画出x和y,我们可以画出图8.13的CIE色度图。该马蹄形区域的内部和边界表示所有可见的色度。,边界弯曲部分的每一点,

36、都对应在光谱中纯度为百分之百的纯度的色光,图中线上标明的数字为该位置所对应色光的主波长,图中央一点C对应于用来近似太阳光的标准白色光,它被定义为一种标准光源C,C点接近于图中的那一点的位置。,利用的CIE色度图,可以把三个CIE原色混合在一起以匹配某一种颜色,从而使人们能够实际测量任何一种颜色的主波长和纯度。对于图8.13(2)中的某一点M,可以把颜色M看作是C点和N点上纯净谱光的一种混合体。这样,N就规定了主波长。MC长度与NC长度的比值就是M点的纯度Q,即Q=MC/NC,M越靠近C,M含有的白光就越多,因而其纯度就越低。,如果某点于C的连线交于底边紫色线上,则在可见光谱中找不到此颜色相应的

37、主波长,这时其主波长可用其补色的光谱值附以后缀C表示,这一光谱值可以通过反向延伸直线与对测光谱边界线相交而得。如图8.13(2)中A3的主波长为500cnm.欲得到一种光谱色的补色,只需从这一点通过C点作一条直线求出其与对测光谱边界线的交点,即可求得补色的波长。例如,红橙色A1(=610nm)的补色为蓝绿色A(=491nm)这两种补色按一定比例相加得白色。,二 几种常用的颜色模型 在计算机图形学中有两种重要的原色混合系统:红绿蓝(RGB)加色系统和青品红黄(CMY)减色系统。如图8.14所示,这两种系统中的颜色互为补色。青色是红色的补色,品红是绿色的补色,黄色是蓝色的补色。所谓某颜色的补色是从

38、白色中减去这种颜色后所得的颜色。,彩色印刷胶卷中等非发光显示体中采用CMY减色系统。对于发光体如彩色CRT显示成彩色灯光,常采用RGB加色系统。,在RGB系统中,颜色是由三个分量的不同数值的组合来决定的。RGB彩色空间可以被表示成一个立方体空间,如图8.15(1)所示。从黑点到白点的连线,是彩色空间中灰色的分布。这个彩色空间表示了显示器中的所有颜色。在硬拷贝设备中,使用的是CMY模型。图8.15(2)是这个模型的图示。,两个系统的关系可以由下式给出,图8-15,RGB和CMY颜色模型是面向硬件的,而HSV(Hue,Saturation,Value)模型是面向用户的,它对应于三体维空间中的一个正

39、六面锥体(图8.16)。这个六面锥体的顶面与V=1相对应,包含着具有最大亮度值的各种颜色。色彩H由绕V轴的旋转角给定的。红色对应于角度0,绿色对应于角度120,蓝色对应于角度240,每一种颜色和它的补色相差180,饱和度S取值为01。饱和度是相对于模型所表示的颜色范围来量度的,并非相对于CIE色度图来量度的,因而与纯度不相同。,六面锥体顶点位于原点,V=0时,代表黑色,V=1,S=0的点为白色。S=0而V值为中间值时都是灰色,S=0时,H值是无意义的。当S0时,H是有意义的。HSV模型与画家配色的方式相对应。纯色颜料对应V=1,S=1,添加白色获得的色泽相当于减少S,不同的色深可由减少V值即添

40、加黑色实现。形成不同的色调需同时减少 S和V值。RGB颜色空间与HSV颜色空间是可以相互转化的。,下面我们给出RGB模型与HSV模型之间的转换算法。RGB-TO-HSV算法:算法的输入是RGB模型中的颜色(rI,gI,bI)值,rI,gI,bI0,1。S1:初始化 V Max(rI,gI,bI),Temp Min(rI,gI,bI).S2:计算S 如果 V=0,则S 0;否则 S(V-Temp)/V.S3:计算cr,cg,cb cr(V-rl)/(V-Temp),cg(V-gl)/(V-Temp),cb(V-bl)/(V-Temp),S4:H 如果 rl=V,则 H cb-cg。(这个颜色是在

41、yellow与magenta之间)如果 gl=V,则 H2+cr-cb。(这个颜色是在cyan与yellow之间)如果 bl=V,则 H4+cg-cr。(这个颜色是在magenta与cyan之间)H60*H.如果 H0,则 HH+360,结束。,HSV-TO-RGB算法输入为HSV模型中的H(0360),S(0 1),V(0 1)。S1:当S=0时 若H无定义,则(r,g,b)(V,V,V);否则,报告出错,结束。S2:当S=0时S2.1 如果H=360,则H0。HH/60.0,Iint(H),fH-I。MV*(1-S),NV*(1-S*f),KV*(1-S(1-f),S2.2 如果 I=0,则(r,g,b)(V,K,M)。如果 I=1,则(r,g,b)(N,V,M)。如果 I=2,则(r,g,b)(M,V,K)。如果 I=3,则(r,g,b)(M,N,V)。,如果 I=4,则(r,g,b)(K,M,V)。如果 I=5,则(r,g,b)(V,M,N)。S2.3 输出(r,g,b),结束。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号