这是规范-3:法线贴图类型

第1部分:什么是法线贴图以及它们如何工作

第2部分:法线贴图是如何烘焙的

与我们行业中的许多其他事物一样,法线贴图已经发展了多年,如今,有些类型看上去可能有所不同。在文章中,我将列出我记得的那些,但也许还有其他。

切线法线贴图(Tangent space normal map):今天最常见的类型,法线贴图;这就是我们在前几篇文章中谈到的。它根据其顶点法线的方向修改模型法线的方向(也就是说,我们需要控制lowpoly模型的顶点法线)。

图片

切线空间Mikk的法线贴图(Mikk切线空间法线贴图)。并非所有3D编辑器都计算顶点法线的平均值相同。这导致以下事实:在不同的引擎中法线贴图的外观是不同的,因此我们需要使用渲染程序使用的相同方法来烘焙法线贴图(这称为“使用同步工作流(同步工作流)”)

Mikk提出了一种计算顶点法线的方法,该方法应该是通用的,以便所有程序都以相同的方式计算它们。从工作流的角度来看,这意味着您可以将低多边形模型及其所有平均法线一起使用(使用一个平滑组或使用所有面进行平滑处理),在Mikk的切线空间中烘焙法线贴图,它将看起来完全一样就像高多边形模型一样,不需要消除平滑误差或在UV中分离硬边缘。将来,我将撰写有关如何执行此操作的教程。

请记住,这仍然是切线空间的法线贴图,但是模型的法线是以通用方式计算的,模型可以在不同的程序中使用。

图片

通道切线空间法线贴图:事实证明,使用存储在法线贴图的三个通道中的两个通道中的信息,计算机可以计算第三个通道,从而减少了内存占用,但增加了计算量。由于内存通常更短缺,因此经常使用这种优化,并且某些引擎会自动执行该优化(例如,当我们设置“法线贴图”参数以压缩纹理法线时,使用虚幻引擎)。释放法线贴图的一个通道后,我们可以减小纹理的大小或将此通道用于金属度/粗糙度/不透明度...

通常,法线贴图的蓝色通道被消除,因此此类纹理看起来是黄色的。由于某些引擎有时会自动执行此优化,因此您可以在项目中注意到这种纹理。

图片

世界空间法线贴图(世界空间法线贴图):此卡为法线,而不是修改顶点法线的方向,而是完全忽略它们并更改世界空间(世界空间)中光反射lowpoly模型的方式(烘焙时会认为顶点法线)平行于世界的轴线)。

可以说,切线空间的法线贴图告诉模型“您必须向右反射光”,模型的世界空间的法线贴图告诉模型“必须将光向东方反射”。

图片

这样的法线贴图更彩色,梯度更明显。之所以使用它们,是因为在这种情况下,您无需考虑低多边形顶点的法线,但是它们有一个缺点-您无法移动模型,因为它看起来很奇怪(我们将面设置为始终向东反射光。如果旋转它,那么边缘将继续向东反射光。)

图片

如今,世界空间的法线在游戏中很少使用,但仍可用于创建美丽的纹理,例如,蓝色通道显示模型应如何反射掉落在模型顶部的光,因此可以使用它为纹理添加色彩照明。

还需要记住的是,不同应用程序中的世界坐标的实现方式有所不同:在Unreal,3D Studio Max,Blender中,Z轴指向上方,在Maya,Modo和Cinema4D中,Y轴指向上方。这意味着在应用程序之间传递世界法线时空间可能会恶化。

对象空间法线贴图(对象空间法线贴图):这是以前类型的贴图的改进版本,与它非常相似。这个想法是,当您在世界上移动模型时,应该相对于对象重新定向世界空间的法线贴图。

可以将其描述为“此面应将光线反射到模型的右侧”。如果在世界上旋转模型,则法线贴图应根据这些更改而更改。但是,这不适用于可变形网格,因为在此类贴图中仅考虑对象的运动。因此,切线空间的法线贴图在当今最为普遍。

倾斜法线贴图(弯曲的法线贴图):本质上,它们将AO信息和法线贴图结合在一起,使法线的方向倾斜,从而使光线倾向于反射到光线击中的模型的那些部分。

此类卡用于增强环境光的遮盖力,并避免所谓的“漏光”效应,在该效应中,模型可以将光反射到无法到达的部分。就我个人而言,我从未使用过它们,但是如果遇到明显的“漏光”,我将探索它们的功能。在此处此处此处可以找到更多信息

16位法线贴图(16位法线贴图):有时,当法线贴图上有非常平滑的渐变时,我们可以注意到条纹的外观。这些条纹是由于缺少表示平滑渐变的颜色所致,通常是由纹理压缩引起的。

但是在大而光滑的表面的情况下,即使具有未压缩的纹理,也会出现这样的问题。在这种情况下,通常可以在.tga文件中使用16位法线贴图,该图具有更多颜色,并且比常规8位法线贴图更大。

您可以在《上帝吧- 地震》教程中了解有关16位法线贴图的更多信息

图片

图片

还应注意,还存在其他减少此问题后果的技术,例如,完全消除法线贴图(仅使用几何图形表示此平滑表面),变换低多边形以使其看起来更像高多边形,从而使梯度不太明显,或使用抖动。

那么我们应该使用哪种类型呢?

在90%的情况下,最佳解决方案是切线空间Mikk的法线贴图。与使用世界或物体空间的法线贴图的选项不同,模型将能够变形,并且法线的方向将保持正确。

您应该在与渲染程序相同的切线空间中烘焙法线贴图。最常见的切线空间是Mikk,因此请尽可能使用它。

如果法线贴图上出现像素化,请考虑使用16个法线贴图或上述解决方案之一。

实际上,这些都是我记得的所有类型的法线贴图。如果您知道其他任何类型,请让我知道它们,并将它们添加到本教程中!

感谢您的阅读,希望本文对您有所帮助。感谢Shnya的评论和帮助。

Source: https://habr.com/ru/post/undefined/


All Articles