表面图案与纹理和颜色
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8.5 表面图案与纹理
8.5.1 表面图案的描绘
表面图案(Surface Patterns)的描绘,是指将一张平面图案(pattern)描绘到物体表面上去并进行三维明暗真实感显示的过程。
物体表面有图案,意味着物体表面的各点呈现不同的色彩和不同的亮度,而这是由物体表面的反射或透射系数决定的。因此,在物体表面绘上图案,也就是改变物体表面有关部分的反射或透射系数。
设平面图案中的任意点P¢(x¢ ,y¢)的色彩为C¢ ,C¢由三个分量组成;
C(x¢ ,y¢)=(R¢ (x¢ ,y¢ ),G¢ (x¢ ,y¢ ),B¢ (x¢ ,y¢ ) )
物体表面与P¢相对应的位置点为P(x,y,z).P点的反射系数R(x,y,z)=(R r(x,y,z),R g(x,y,z),R b(x,y,z).将图案从P¢描绘到P上去,就是令P的反射系数为P¢色彩的函数,并通常取为线性函数:
R r(x,y,z)=K× R¢ (x¢ ,y¢ )
R g((x,y,z)=K× G¢ (x¢ ,y¢ )
R b(x,y,z)=K× B¢ (x¢ ,y¢ ) (8-5-1)
其中K是协调R与R¢、G¢、B¢之间数值大小的一个系数,它将基色的变化域映射为反射系数的变化域。得到反射系数后,物体表面各点的色彩明暗就可以用光照模型算出。
综上所述,将一幅平面图案描绘到物体表面上去的过程为:
1.将平面图案上的各点(x¢ ,y¢)映射到物体表面上的各点
(x,y,z).
2.根据式8-5-1求出(x,y,z)处新的反射系数。
3.用光照模型计算物体表面(x,y,z)的色彩明暗。
为了完成上述过程的步骤1,我们先研究平面四边形之间的映射,并先限于凸四边形的映射。
设源凸四边形为A¢B¢C¢D¢,目的凸四边形为ABCD(图8.5.1(a)、(b))。令f¢为A¢ D¢与B¢ C¢延长线之交点;f为AD与BC延长线之交点;E¢为A¢ B¢与C¢ D¢延长线之交点;E为AB与CD延长线之交点。对于S内的任一点P,与在S¢内的对应点P¢的映射关系为:
其中,f1、f2是线PF与AB边交点P1分AB的两部分长度;
f¢1、f¢2是线P¢ F¢与A¢ B¢边交点P¢1分A¢ B¢的两部分长度;e1、e2是线PE与BC边交点P2分BC的两部分长度;
e¢1、e¢2是线P¢ E¢与B¢ C¢边交点P¢2分B¢ C¢的两部分长度。
图8.5.1 两个凸多边形中点的映射
这样,两个凸四边形S和S¢之间的位置映射算法为:
1.求S边之交点F、E;及S¢边之交点F¢、E¢的位置。
2.对于目的多边形S中的每一个元素P,寻找S¢中对应位置P¢;
1.求PF与AB交点P1,由P1得f1/f2,
求PE与BC交点P2,由P2得e1/e2。
2.由f¢1/f¢2=f1/f2得P¢1的位置,
由e¢1/e¢2=e1/e2得P¢2的位置。
3.求P¢1 F¢1与P¢2 E¢的交点,即为P¢的位置。
3.取P¢的色彩,用式(5.19)求得P点新的反射系数。
图8.5.2 凹多边形划分为多个凸四边形分别进行映射三角形可视为一种特殊的四边形。两个三角形之间的位置映射可以直接使用上述算法。
对于边数大于4的凸多边形或凹多边形,可以用网格的办法将目的多边形S和源多边形S¢相对应地划分为凸四边形网格。(图8.5.2(a)、(b)。)对于网格中的每个四边形实行上述变换。
当S¢比S的面积大很多倍时,S中的一个象素P映射到S¢中实际上对应于一小块面积。这时,就不应只取S¢中对应点P¢的色彩,而应取P¢周围,大小为面积中所含各点色彩之平均值A¢。用A¢之色彩去求得P点新的反射系数。
8.5.2 表面纹理的描绘
和表面图案不同,表面纹理(Texture)的描绘用于表示细微的凹凸不平的物体表面,如布纹、植物和水果的表皮等等。由于将这种细微的表面凹凸表达为数据结构既很困难,又无必要(通常只是为了逼真的视觉效果),因此通常用一种特殊的算法来模拟它,将纹理逼真地显示出来,满足感官的需要。
Blinn在1978年提出用扰动物体表面法线方向的方法以模拟表面凹凸纹理的真实感显示效果。该方法是对原表面上的法线方向,附加一个扰动函数。该函数使得原来法线方向的光滑而缓慢的变化方式变得剧烈而短促,通过光照与显示形成了表面的凹凸粗糙的显示效果。
令物体原表面为Q( u,v),Q u和Q v分别是Q沿u,v方向的偏导量,扰动函数为P(u,v),扰动后,物体的新表面S(u, v)定义为:
S(u,v)=Q(u,v)+P(u,v) (8-5-2)
其中N是Q(u, v)的法向量,也是u, v的函数。
式(8-5-2)对u, v分别求偏导,得:
(8-5-3)
(8-5-4)
其中S u,S v,P u,P v,,分别表示S(u,v),P(u,v),对u,v 求偏导。由于扰动函数P很小,式(8-5-3)、(8-5-4)中第三项皆可忽略,即得:
(8-5-5)
(8-5-6)
记N s为S(u, v)的法向量。法向量可以表示为两个偏导向量S u和S v的叉积,即:
N s=S u´S v
= (8-5-7)
式(8-5-7)中的后两项为原表面法矢量N的扰动因子。使用N s代替N 通过光照模型计算,就能在光滑的表面上显示出凹凸不平的纹理来。
任何有偏导数的函数都可以用作纹理扰动函数P。不同的扰动函数控制产生出不同的纹理
8.6 颜色空间
8.6.1 颜色的基本概念
要生成具有高度真实感的图形,就必须考虑被显示物体的颜色。对颜色的研究非常复杂,涉及到物理学、心理学、美学等领域。描述颜色最简单的方法是用颜色名词,给每种颜色一个固定的名称,并冠以适当的形容词,如大红、血红、铁锈红、浅黄、柠檬黄等等。于是人们可以用颜色名词来交流色知觉信息。但是这种方式不能定量表示色知觉量。在计算机图形学中,我们需要对颜色进行定量的讨论。
物体的颜色与物体本身,光源,周围环境的颜色,以及观察者的视觉系统都有关系。有些物体(如粉笔、纸张)只反射光线,另外有些物体(如玻璃、水)既反射光,又透射光,而且不同的物体反射和透射光的程度也不同。一个只反射纯红色的物体用纯绿色照明时,呈黑色。类似地,从一块只透红光的玻璃后面观察一道蓝光,也是呈黑色。正常人可以看到彩色,全色盲患者则只能看到黑、白、灰色。
按照1854年发表的格拉斯曼(H.Grassmann)定律,从视觉的角度,颜色包含三个要素:色调(hue)、饱和度(saturation )和亮度(lightness)。色调也称色彩,就是我们通常所说的红、蓝、紫等,是使一种颜色区别于另一种颜色的要素。饱和度就是颜色的纯度。在某种颜色中添加白色