作为纹理
法线贴图作为一种纹理,可以表现物体表面细小结构。
纹理可以分为颜色纹理和几何纹理,颜色纹理指光滑的物体表面的花纹,图案,几何纹理指物体表面的微观几何,包括各种不规则的细小凹凸。
法线贴图可以令模型产生凹凸不平的观感,所以应属于几何纹理。
法线贴图如何欺骗视觉?
人的视觉系统通过多种线索判断物体的各种可见属性,例如大小,凹凸,前后关系。而法线贴图就是利用人眼通过物体表面的明暗关系来判断物体表面细节凹凸情况这一特性来欺骗视觉,以达到表现更多细节的效果。
一般,在渲染的光照模型中,一个面片的亮度主要由其的法向量方向与外部光照条件决定。而法线贴图通过修改模型表面的面片的法向量,来影响面片对光的反射,从而改变面片亮度,营造立体感。
某种程度上,可以说法线贴图中记录了模型上像素的高度。
法线贴图的价值
在游戏中,表现某一拥有大量表面高精度细节的物体,最直接的方法就是制作高精度的拥有大量面片的模型(即高模),然后放到游戏中。这样的做法的缺点也十分明显,那就是如此拥有大量面片的模型会给游戏的即时渲染带来极大的压力。
而运营法线贴图则可以使面片较少的模型(低模),在一定程度上拥有高模的表现力,并仍然保持较低的渲染压力。从而在保持画面质量的同时,提高游戏兼容性,降低游戏硬件要求。
法线贴图为什么看起来是这样的?
我们一般看到的法线贴图都是一张偏蓝紫色的图片。
法线贴图通过RGB颜色通道来记录每一点上的法线方向,而B(蓝色)就用于指示法线向量在切线空间中Z方向上的分量,而法线往往指向表面外侧,靠近切线空间的Z方向,所以Z方向上分量较多,体现在法线贴图的颜色上就是蓝色为主。
(切线空间中,x方向对应纹理空间中的u方向,y方向对应v方向)
法线贴图的缺陷
纵使法线贴图再强大,它也只不过是修改了模型表面的光照条件而已,而不是像真正的高模那样,拥有真正可以与光线互动的实体凹凸细节。这就导致贴有法线贴图的低模无法表现表面细节间的遮挡关系。毕竟,一个平面贴了张图仍然是平面。
还有就是,当光线与模型表面法向量间夹角过大时,法线贴图的模型会表现得过暗,无法看出立体感。这一特性,限制了对于法线贴图模型的观察角度。一般在只有在某一特定角度内观察模型才能得到最佳立体效果。
如何产生法线贴图?
法线贴图的产生也非常直接。简单来说就是,先制作拥有凹凸细节的高模,即先通过人工制作真的凹凸细节,再提取出凹凸情况,导出为法线贴图,运用于对应于高模的低模即可。