物体表面的细节主要分为两类.一类是物体表面的颜色和明暗变化表现出来的细节,主要取决于物体的材质属性,另一类是物体表面的不规则凹凸表现得的细节,取决于物体的几何形状.直接利用计算机描述物体的材料属性和几何形状是比较难的.如果只追求物体看起来像的话,就可以利用纹理映射生成物体表面的几何形状.
1 纹理映射:
纹理映射分为颜色纹理映射和几何纹理映射.不增加场景复杂度,也不显著增加计算量,但是却能很好的提高真实感.
1.1 颜色纹理映射:
颜色纹理映射通过建立物体表面每一点和纹理图像像素点的对应关系,再将纹理图像上的颜色值赋给物体表面上对应点的颜色值(图一、二).点的坐标采用参数化表示,物体表面的参数化表示为f(u,v).纹理图像参数化表示为T(s,t)(图三)[像贴画一样,将纹理图贴到物体表面]
图一:颜色纹理映射用来在光滑表面上产生花纹图案的效果,虽然有真实感,但是没有凹凸细节
图二:先将左上三维物体的表面展开为二维(左下),利用右上和左下的映射,将右上粘到左上,得到右下.
图三:参数化表示得到映射.
纹理图像和对应关系是怎么得到的?
不用管,有个专门的方向叫参数化方向
1.2 几何纹理映射:
效果上,就像gouroud和phong明暗处理的逆向.明暗处理希望得到光滑的物体表面,而几何纹理映射希望从光滑变成凹凸.
1.2.1 法向映射:
先计算高精度模型法向,将其保存到法向纹理中,再建立法向纹理与低精度模型的映射,利用高精度模型的法向纹理对低精度模型进行光照计算.
既然有高精度模型了,为什么不直接应用高精度模型?
高精度模型计算量大,将高精度模型的法向量应用到低精度模型上可以取得和高精度模型差不多的效果.这样,计算量小,效果也好.
1.2.2 位移映射:
依据表面上点对应的纹理值,将点沿法线方向偏移
1.2.3 凹凸映射
在三维以顶点或者面皮为单位,通过对法线方向叠加一个扰动( 粗糙表面的法向不连续),使得法向变化不连续,并且法线对光照有影响,物体表面也就有了明暗变化.
凹凸映射只动法向,不动物体的几何特征.
1.3 纹理映射的走样:
纹理图和物体表面大小不一致问题
欠采样:纹理图的像素点与物体表面的采样点个数不一致