如何使用法线贴图 (Normal Maps)?

法线贴图 (Normal maps) 是灰度图,可以用作对象的高度图,呈现凹凸的表面。假设有一个类似下图的模型:


三维模型

纹理

我们想让对象的浅色部分看似凸起。

  1. 在 Photoshop 中绘制一张纹理的灰度高度图。白色为高,黑色为低。如下图:

  2. 把该图像保存到主纹理旁。
  3. 在 Unity 中,选择图像并在检视器 (Inspector) 的 导入设置 (Import Settings) 中选择 24 bit RGB 格式,启用 生成法线贴图 (Generate Normal Map):

  1. 在模型的材质检视器 (Material Inspector) 中,从着色器下拉列表中选择“凹凸漫反射(Bumped Diffuse)”:

  2. 从工程 (Project) 窗口中将纹理拖到“法线贴图”的纹理槽中:
    Unity3D 图形问题之如何使用法线贴图 (Normal Maps)? - 第6张 | 游戏开发网-最好的游戏编程开发技术网站!

对象现已应用了法线贴图:

提示

  • 为让这些凹凸更显眼,要么在纹理输入设置 (Texture Import Settings ) 中移动 Bumpyness 滑块或在 Photoshop 中将纹理模糊化。可以尝试两种方法,找一下感觉。