【Unity3D技术文档翻译】第2.3.3.7篇 高度图(Hei
2018-06-25 本文已影响11人
何三思
![](https://img.haomeiwen.com/i2464776/03bfd04e6425e1f2.png)
上一章:【Unity3D技术文档翻译】第2.3.3.6篇 法线贴图(凹凸贴图)
本章原文所在章节:【Unity Manual】→【Graphics】→【Graphics Overview】→【Materials, Shaders & Textures】→【Standard Shader】→【Material parameters】→【Heightmap】
高度图 (Heightmap)
![](https://img.haomeiwen.com/i2464776/7ce2499972c9fa1c.png)
高度图(又称视差贴图)是个和法线贴图类似的概念,但是技术更加复杂——因此也更耗性能。高度图通常与法线贴图协同使用,并且当纹理贴图需要渲染大型的起伏和凸起效果时,可以给出额外的表面定义。
法线贴图改变了纹理表面上的光照,而视差高度图更进一步,它实际上移动了表面纹理周围的可见区域,以获得基于表面层级的遮挡效果。这意味着明显的凹凸处(面向摄像机部分)附近将会被扩展,而它们的反面(背朝摄像机部分)将被移除,看上去好像从视图中被遮挡了。
尽管高度图可以产生非常令人信服的3D几何效果,但是这种效果仍然受限于物体网格的扁平多边形的表面范围。这意味着,即便表面凹凸效果看上去突出并相互遮挡,模型的轮廓并不会被改变,因为该效果根本上而言是被渲染在模型的表面,并没有改变实际的几何体。
高度图应该是一张灰度图,其中白色区域代表纹理中的高处区域,而黑色代表低处区域。下面是个典型的反照率贴图(albedo map)与高度图的对比。
![](https://img.haomeiwen.com/i2464776/2e527a97ca3de48f.jpg)
![](https://img.haomeiwen.com/i2464776/88b35deb90b41652.jpg)
上图中从左到右:
- 分配了反照率贴图,但是没有法线贴图和高度图。
- 分配了法线贴图。光线在表面被修改,但是石块没有相互遮挡。
- 分配了法线贴图和高度图的最终效果。石块看起来像从表面突出,并且石块周围看起来像遮挡了后面的部分。
通常(但也不总是)用于高度图的灰度图也可被用于遮蔽贴图(occlusion map)。关于遮蔽贴图的内容请看下一节。
如果本文对你有帮助的话,点个赞或者评论一下吧!