颜色贴图
颜色贴图主要为Diffuse、Albedo、Base Color三种。一般认为这三者是等同的。
Diffuse
光照模型在Lambertian(兰伯特材质球)着色器中会把颜色贴图叫做Diffuse Map(也叫颜色贴图),通常在绘制这张Diffuse Map的时候会把物体的结构阴影信息也绘制进去。在传统工作流中,Diffuse Map是带着光影信息的。
Diffuse Map(漫反射颜色)应该表示物体表面的颜色,在Unity中叫做Albedo。在Specular/Glossiness工作流程中,对于金属材质而言它没有漫反射(或者说比较少),所以使用黑色来填充。而非金属材质反射光少于金属材质,并且它折射的光只有较少的吸收通常重新折射回表面,因此对于非金属材质,使用的是漫反射颜色来填充。需要特别注意的是,漫反射纹理不应该包含任何光照信息,因为将基于(环境)添加光照到物体的纹理上。
Albedo
主要体现模型的纹理和颜色。Unity的Shader(着色器)中,把颜色贴图叫做Albedo。
Base Color
Base Color是把颜色贴图剔除光影变化后,我们看到的最基础的颜色。在PBR工作流中颜色贴图叫做Base Color, 其中包含了电介质的反射颜色和金属的反射率值这两种类型的数据。因为Base Color Map中带了金属的反射率值,所以需要配合上Metallic Map一起使用的。
比较容易造成混淆的是金属/粗糙度工作流中的Base Color和高光反射/光泽度工作流中的Diffuse(Albedo)的区别,两种工作流使用了不同的贴图方法来处理颜色。实际上,金属/粗糙度工作流中的Base Color本质上是高光反射/光泽度工作流中的Diffuse和Specular的结合,这也是有时候通过先创建金属/粗糙度材质再将其转化为高光反射/光泽度的原因之一。
在高光反射/光泽度工作流中,Diffuse贴图严格影响着材质的基本颜色而对材质的其他特征(如发射率)没有影响。对于介电材质而言,其材质颜色来自Diffuse贴图;对于金属材质而言,大部分颜色来自Specular高光贴图。在金属/粗糙度工作流中,BaseColor贴图实则包含了漫反射和高光贴图的信息。而Metallic贴图这决定了有多少BaseColor被解释为漫反射或者高光。
Gradient&Ramp、ColorLUT
Gradient&Ramp Map(渐变图)和ColorLUT(颜色查找表)也可以认为是颜色贴图的一种,这类贴图通过在一维或二维的方式将一种颜色映射到另一种颜色。且通常作为全局资源使用(不是特定于某一模型)。
Valve在Team Fortress 2中使用渐变纹理来控制漫反射光照,渲染游戏中具有插画风格的角色。
ColorLUT是预先生成的一张结果纹理,可用于优化复杂光照的渲染,如皮肤、毛发等。