计算机图形学:详解法线与法线贴图原理

 再游戏中,渲染多面是比较消耗性能的,法线贴图可以让在一张平面图片上面模拟出凹凸的效果

首先看下wiki上的解释:

在三维计算机图形学中,法线贴图(英語:Normal mapping)是一种模拟凹凸处光照效果的技术,是凸凹贴图的一种实现。法线贴图可以在不添加多边形的前提下,为模型添加细节。常见的使用场景是为低多边形模型改善外观、添加细节,此时的法线贴图一般根据高多边形模型或高度贴图(英语:Heightmap)生成。

再看下unity官方对法线纹理的解释:

法线贴图 (Normal Map) 是一种凹凸贴图 (Bump Map)。它们是一种特殊的纹理,可让您将表面细节(如凹凸、凹槽和划痕)添加到模型,从而捕捉光线,就像由真实几何体表示一样。

下面先普及几个概念:

叉乘:

点乘 :

点乘表示A在B方向上的投影与B方向的乘机,反映了两个向量在方向上的相似度

计算公式为:

法线:

法线,是指始终垂直于某平面的虚线,这是在二维平面下的法线

在三位平面下的法线:

用叉乘求得一个面的法线

平面图片下的光照模型及法线对光照的影响:

 入射光线与该面的法线求夹角:

 刚才写道:

点乘表示A在B方向上的投影与B方向的乘机,反映了两个向量在方向上的相似度

 当乘积越大则入射光线与法线点乘长度越大,则代表光线照射的地方越亮

当入射光线与法线点乘的值为负数的时候,代表这个光照射在了图的背面

这样就可以根据这个值去确定物体的明暗程度

从绘画到法线贴图:

在绘画中通过物体的明暗变化来塑造立体感,就拿素描来举例子:

 一张图片就可以表现出立体感:

那么在游戏画面中:

 物体表面其实是一张图片,只不过是表面法线不同,所以有了立体感

在一张贴图上记录它不同位置的法线情况,去和光线作用,就会产生立体的效果

关于法线贴图的颜色:

如下是一张贴图,发现颜色更偏向于蓝色

主要是因为法线纹理的RGB通道存储了在每个顶点各自的Tangent Space中的法线方向的映射值,其实法线向量有三个值,这三个值可以分别对应RGB三个值,一般法线垂直于物体的分量多一些,也就是Blue多一些,也就偏向于蓝色了

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>