一、模拟物体表面细节
纹理映射的引入?光照明模型只能生成光滑的物体表面。纹理映射用来模拟物体表面细节,使生成的图形更加自然、逼真。
物体表面细节分为两类:1.表面的颜色纹理 如桌上的木纹,墙上贴的图画 。颜色纹理取决于物体表面的光学属性(折射率,反色率)2.表面的几何纹理,如凹凸不平的树皮,几何纹理由物体表面的微观几何形状决定。
二、摸拟物体表面细节的方法
1.表面细节多边形:对于简单的规则的颜色纹理,如墙上的门,窗、平面文字等,可以用表面细节多边形来模拟。
首先将待生成的颜色纹理构造细节多边形,然后将细节多变形覆盖到物体表面上。
2.纹理映射 将任意一幅平面图形映射到物体表面上,产生物体表面所需要的细节。 待映射的平面图形称为纹理,它对应纹理坐标空间中的一块矩形区域。构成纹理的元素称为纹素,它的位置由其纹理坐标(s,t)标识。
来源:(1)数字图像,通常由二维数组表示。
(2)数学公式定义的纹理函数。
在对物体表面上一点进行颜色计算时,以其对应的纹素的纹理值代替物体表面在该点的漫反射系数参与光照明模型进行计算。
计算:
(1)当物体表面是多边形的时,直接给出多边形各顶点的纹理坐标
映射步骤:纹理映射涉及纹理坐标空间、景物坐标空间及屏幕坐标空间之间的映射。
(1)将屏幕坐标的四个角点映射到景物坐标空间中可见的物体表面。由三维物体显示到屏幕上的流程可知,该过程是其逆过程。记从景物坐标空间到屏幕坐标空间经过的变换矩阵为M,则这里的变换为M-1。 (x0,y0,z)= M-1(hx,hy,h)。
(2)将景物坐标空间映射到纹理坐标空间,求出像素四个角点所对应的纹理坐标。
(3)将像素所对应的纹理坐标空间中的四边形内的所有纹素的值做加权平均(以四边形的面积为权),结果作为物体表面的漫反射系数参与颜色计算,计算出来的颜色用以表示该像素。
特殊类别纹理映射:
(1)环境映射
(2)过程纹理
(3)3D体纹理
纹理反走样:
3.法相扰动
法相扰动主要用于产生几何纹理,模拟凹凸不平的物体表面,如自然界中植物的表皮等。它采用一个扰动函数对物体表面的围观形状进行扰动,由于扰动函数的幅度比较小,所以不影响物体表面的整体形状。扰动函数既可以用离散的数组来表示,也可以定义为连续的函数。
计算:
物体参数曲面P(u,v) = [x(u,v),y(u,v),z(u,v)];
物体表面每一点P(u,v)都沿该点处的法向量方向位移F(u,v)个单位,得到新表面
P'(u,v) = P(u,v) + F(u,v)*N(u,v)
通过对两个偏导求叉积得到
p'(u,v)对u求偏导 叉乘 p'(u,v)对v求偏导
得N' = Pu ✖️ Pv + Fu(N✖️Pv) + Fv(Pu✖️N) + FuFv(N✖️N)
扰动后的法向量单位化,用于计算曲面的明暗度,产生凹凸不平的几何纹理。
几何纹理函数定义可以用统一的图案纹理记录:图案中较暗的颜色对应较小F值,较亮的颜色对应较大F值,把各像素的值用一个二维数组记录下来,就是几何纹理统一表示。