再游戏中,渲染多面是比较消耗性能的,法线贴图可以让在一张平面图片上面模拟出凹凸的效果
首先看下wiki上的解释:
在三维计算机图形学中,法线贴图(英語:Normal mapping)是一种模拟凹凸处光照效果的技术,是凸凹贴图的一种实现。法线贴图可以在不添加多边形的前提下,为模型添加细节。常见的使用场景是为低多边形模型改善外观、添加细节,此时的法线贴图一般根据高多边形模型或高度贴图(英语:Heightmap)生成。
再看下unity官方对法线纹理的解释:
法线贴图 (Normal Map) 是一种凹凸贴图 (Bump Map)。它们是一种特殊的纹理,可让您将表面细节(如凹凸、凹槽和划痕)添加到模型,从而捕捉光线,就像由真实几何体表示一样。
下面先普及几个概念:
叉乘:
点乘 :
点乘表示A在B方向上的投影与B方向的乘机,反映了两个向量在方向上的相似度
计算公式为:
法线:
法线,是指始终垂直于某平面的虚线,这是在二维平面下的法线
在三位平面下的法线:
用叉乘求得一个面的法线
平面图片下的光照模型及法线对光照的影响:
入射光线与该面的法线求夹角:
刚才写道:
点乘表示A在B方向上的投影与B方向的乘机,反映了两个向量在方向上的相似度
当乘积越大则入射光线与法线点乘长度越大,则代表光线照射的地方越亮
当入射光线与法线点乘的值为负数的时候,代表这个光照射在了图的背面
这样就可以根据这个值去确定物体的明暗程度
从绘画到法线贴图:
在绘画中通过物体的明暗变化来塑造立体感,就拿素描来举例子:
一张图片就可以表现出立体感:
那么在游戏画面中:
物体表面其实是一张图片,只不过是表面法线不同,所以有了立体感
在一张贴图上记录它不同位置的法线情况,去和光线作用,就会产生立体的效果
关于法线贴图的颜色:
如下是一张贴图,发现颜色更偏向于蓝色
文章来源:https://www.toymoban.com/news/detail-406918.html
主要是因为法线纹理的RGB通道存储了在每个顶点各自的Tangent Space中的法线方向的映射值,其实法线向量有三个值,这三个值可以分别对应RGB三个值,一般法线垂直于物体的分量多一些,也就是Blue多一些,也就偏向于蓝色了文章来源地址https://www.toymoban.com/news/detail-406918.html
到了这里,关于计算机图形学:详解法线与法线贴图原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!