贴图的作用是描述物体表面的材质,我们创作出的纹理与材质在游戏引擎(虚拟世界)中与光交互。
贴图的作用是描述物体表面的材质,我们创作出的纹理与材质在游戏引擎(虚拟世界)中与光交互。
颜色贴图有三种叫法:Base Color Map,Albedo Map,Diffuse Map,因为工作流不同,所以叫法不一样,而且本质上也有区别。
Diffuse map漫反射贴图
光照模型在Lambertian(兰伯特材质球)着色器中会把颜色贴图叫做Diffuse Map(也叫颜色贴图),通常在绘制这张Diffuse Map的时候会把物体的结构阴影信息也绘制进去。在传统工作流中,Diffuse Map是带着光影信息的。
Albedo反射率贴图
主要体现模型的纹理和颜色。老版本Unity的Shader(着色器)中,把颜色贴图叫做Albedo。
Base Color map固有色贴图
Base Color是把颜色贴图剔除光影变化后,我们看到的最基础的颜色。在PBR工作流中颜色贴图叫做Base Color这个术语(基本上不包含光影信息)。
Normal法线贴图:
1、凹凸贴图:法线贴图是凹凸贴图的一种。凹凸贴图是一种特殊的纹理,允许为模型添加表面细节,例如凸起、凹槽和划痕,这些细节将捕获光线,就像真实的几何体一样。如果在游戏引擎里用模型来表现凹凸细节,将需要绘制非常多数量的多边形,以现在的电脑耗不起,好点的电脑也就支持几千万面而已)。如果使用一张凹凸贴图来呈现细节,表面的几何形状可以变得更加简单,为了避免这种情况,就需要使用法线贴图来表示清晰的表面细节。用细节纹理调制光从表面反射的方式,以现代图形硬件可以非常快地执行这个个过程。
在现代游戏开发流程中,设计师将使用3D建模软件,基于非常高分辨率的原始模型生成法线贴图。然后,将法线贴图映射到较低分辨率的模型(游戏中实际使用的模型)上,这样,通过法线贴图,原始的高分率细节就被渲染了。
注意:凹凸贴图是一种相对古老的图形技术,但仍然是创建细节逼真的实时图形所需的核心方法之一。凹凸贴图通常也被称为法线题图或高度图,不过这些术语的含义略有不同(看相关贴图解释)。
2、表面法线:
为了真正理解法线贴图的工作原理,需要先清楚什么是法线,以及如何在实时光照中使用法线。例如一个模型的多边形表面根据表面相对于光线的角度简单地被点亮。表面角度可以表示为一条垂直于表面并向上突出的线,是一个向量,这条线成为表面法线,或者简单地称为法线。
3、法线贴图:
用法线贴图表示表面法线的这种变化。法线贴图通过通过一张纹理来存储如何改变表面法线的信息。法线贴图是一张映射到模型表面的图像纹理。有些类似于常规的颜色纹理,不同的是,法线贴图中每个顶点(称为纹素)还表示了在表面法线方向上离开平面(或平滑)多边形真实表面的距离。
4、Opengl与Directx的区别:
法线贴图还与Opengl与Directx这两个图形库有关,OpenGL和DirectX都是用于渲染2D和3D信息的应用程序编程接口(API)。他们还定义了法线贴图格式,其中,Unity游戏引擎使用的是Opengl程序接口。
Unity使用的法线贴图,凸起的结构,在法线贴图上表现就是凸起的,凹的就是凹的。
UE4游戏引擎使用Directx程序接口,UE4使用的法线贴图跟Unity的相反。凸起的结构,在法线贴图上表现就是凹的,凹的结构表现为凸起的。他们的区别在于,反转法线贴图蓝色通道。
OpenGL是个专业的3D程序接口,是一个功能强大,调用方便的底层3D图形库,可跨平台使用。OpenGL的前身是SGI公司为其图形工作站开发的IRIS GL。IRIS GL是一个工业标准的3D图形软件接口,功能虽然强大但是移植性不好,于是SGI公司便在IRIS GL的基础上开发了OpenGL。OpenGL的英文全称是“Open Graphics Library”,顾名思义,OpenGL便是“开放的图形程序接口”。
虽然DirectX在家用市场全面领先,但在专业高端绘图领域,OpenGL是不能被取代的主角。
DirectX是一种应用程序接口(API),它是由微软公司开发的用途广泛的API,它可让以windows为平台的游戏或多媒体程序获得更高的执行效率,加强3d图形和声音效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。
World Space Normals世界空间法线贴图
表示物体的前、后、左、右、上、下方位。
Glossiness map光泽度贴图:
Glossiness缩写Gloss:Glossiness定义材质得粗糙度信息,跟Roughness相反,0(黑色-0 sRGB)表示粗糙,1(白-255 sRGB)表示光滑。(如下图)。光泽度无非是指表面反射光线的能力。表面能够反射的光线越多,光泽度越高。表面能够反射的光线越少,光泽度越低。表面反射光线的能力受环境中各种因素的影响,例如落在对象上的那些非常小颗粒的灰尘,以及接触对象时从手上沾染到对象上的油污,所有这一切都会影响表面反射光线的能力。
Metallic金属度贴图(Marmoset Toolbag中叫Metalness map)
金属性贴图起到类似于蒙版的作用,区分固有色贴图中的金属和绝缘体数据。在金属性贴图中,0(黑色-0 sRGB)表示绝缘体,而1(白-255 sRGB)表示金属。绝缘体F0值不需要手动输入,由shader自动处理。当shader在金属性贴图中识别到黑色时,它将固有色贴图中的相应区域处理为绝缘体。
金属感对象的光泽度由粗糙度控制。材质越粗糙,其光泽度就会越低,而缺少粗糙度将使金属显得非常有光泽。