Loading
0

如何正确使用法线贴图

我们以corona渲染器为例,介绍如何正确的实用法线贴图,该技巧通用与其他渲染器。在凹凸通道里使用CoronaNormal,然后使用3ds Max Bitmap或者Corona Bitmap来载入一张法线贴图,后者能在渲染环节里提供你更多的控制选项:

当你载入一张法线贴图的时候,建议采用默认伽玛。

那么问题来了,到底在使用的时候要注意些什么问题呢?由于3D软件对于法线贴图的计算各有各的算法。比如说红色可以被看做“向上”的,也可以被看做是“下陷”的,而蓝色通常被看做是“保持水平”的面对你的方向,而贴图本身可能会带有伽马修正,这个会对最后的结果产生影响。这就是说,同一张法线贴图在不同的渲染器里产生的效果会不同,为了解决这个问题,CoronaNormal提供了这么几个选项:

1. "Add gamma to input"-这个选项会对贴图作用一个sRGB伽玛,这个选项在贴图自身缺少sRGB伽玛的时候必须选!(cr会自动侦测贴图是否带有sRGB伽玛,会提示你要勾选该选项)

2.Flip red (X)-定义了贴图从左到右的方向(红色可以代表左也可以代表右)

3.Flip green (Y)-定义了贴图从下到上的方向(绿色代表了上或下的方向)

4.Swap red and green-定义了到底哪个颜色代表左右方向,哪个表现了上下方向。

如何知道应该用什么设置呢?一般我们都知道一个法线贴图大概看起来会是什么样子,比如一个球体的法线贴图,或者一个金字塔形的法线贴图,但假如那个图案越来越复杂了,那就很难一眼看出问题出在了哪里了。先来看这个例子,我们用一个半球的图案来生成一个法线贴图,这个贴图就会呈现下图这个样子。

这个贴图的获取是用一个简单的场景渲染其法线通道获得的。

接下来就来看看,在CoronaNormal里载入这个贴图,会有什么效果。

很明显,凹凸的效果颠倒了,那些圆形应该是向上突起的才对。那么我们来尝试修正这个贴图。先不用任何贴图,来看看这个测试物体渲染出来是什么样子的。

这个渲染可以帮助我们测试伽玛到底要不要加,假如之后我们的伽玛不对,那么我们看到的这个凹陷的感觉会不一样。让我们再次载入法线贴图,来看看"Add gamma to input" 这个选项会对结果产生什么影响:

不勾选的效果

勾选后的效果

对比两次的结果,我们可以很明显的看到,勾选"Add gamma to input" 这个选项不但不能解决我们的问题所在,还让物体本身变得更加“平”了。那么在这个例子里,"Add gamma to input" 这个选项是绝对不需要勾选的,换句话说,我们使用的这张法线贴图本身就已经自带了伽玛修正。

让我们取消伽玛,再来看看 "Flip green (Y)"这个选项。

现在我们就发现,这个结果和我们预计的很接近了,小球都突出来了,物体的造型也是正确的,接下来我们就要来调整一下法线贴图的强度了。

现在就是我们要的效果了,当然每次的调整都是根据贴图的实际情况而稍有不同的。比如下图的砖墙效果里,解决的办法就是勾选伽玛,而反转绿色了。

又比如下图的石子路的例子里,解决的办法是添加伽玛,而将红绿对换。