【Unity3D技术文档翻译】第2.3.3.7篇 高度图(Heightmap)

【Unity3D技术文档翻译】第2.3.3.7篇 高度图(Heightmap)_第1张图片
Unity3D技术文档翻译

上一章:【Unity3D技术文档翻译】第2.3.3.6篇 法线贴图(凹凸贴图)

本章原文所在章节:【Unity Manual】→【Graphics】→【Graphics Overview】→【Materials, Shaders & Textures】→【Standard Shader】→【Material parameters】→【Heightmap】

高度图 (Heightmap)

【Unity3D技术文档翻译】第2.3.3.7篇 高度图(Heightmap)_第2张图片

高度图(又称视差贴图)是个和法线贴图类似的概念,但是技术更加复杂——因此也更耗性能。高度图通常与法线贴图协同使用,并且当纹理贴图需要渲染大型的起伏和凸起效果时,可以给出额外的表面定义。

法线贴图改变了纹理表面上的光照,而视差高度图更进一步,它实际上移动了表面纹理周围的可见区域,以获得基于表面层级的遮挡效果。这意味着明显的凹凸处(面向摄像机部分)附近将会被扩展,而它们的反面(背朝摄像机部分)将被移除,看上去好像从视图中被遮挡了。

尽管高度图可以产生非常令人信服的3D几何效果,但是这种效果仍然受限于物体网格的扁平多边形的表面范围。这意味着,即便表面凹凸效果看上去突出并相互遮挡,模型的轮廓并不会被改变,因为该效果根本上而言是被渲染在模型的表面,并没有改变实际的几何体。

高度图应该是一张灰度图,其中白色区域代表纹理中的高处区域,而黑色代表低处区域。下面是个典型的反照率贴图(albedo map)与高度图的对比。

【Unity3D技术文档翻译】第2.3.3.7篇 高度图(Heightmap)_第3张图片
一张反照率颜色贴图,和一张高度贴图。
【Unity3D技术文档翻译】第2.3.3.7篇 高度图(Heightmap)_第4张图片

上图中从左到右:

  1. 分配了反照率贴图,但是没有法线贴图和高度图。
  2. 分配了法线贴图。光线在表面被修改,但是石块没有相互遮挡。
  3. 分配了法线贴图和高度图的最终效果。石块看起来像从表面突出,并且石块周围看起来像遮挡了后面的部分。

通常(但也不总是)用于高度图的灰度图也可被用于遮蔽贴图(occlusion map)。关于遮蔽贴图的内容请看下一节。

如果本文对你有帮助的话,点个赞或者评论一下吧!

下一章:【Unity3D技术文档翻译】第2.3.3.8篇 遮蔽贴图 (Occlusion Map)

你可能感兴趣的:(【Unity3D技术文档翻译】第2.3.3.7篇 高度图(Heightmap))