颜色贴图

来自泡泡学习笔记
BrainBs讨论 | 贡献2024年4月29日 (一) 14:47的版本 (创建页面,内容为“颜色贴图主要为Diffuse、Albedo、Base Color三种。一般认为这三者是等同的。 == Diffuse== 光照模型在Lambertian(兰伯特材质球)着色器中会把颜色贴图叫做Diffuse Map(也叫颜色贴图),通常在绘制这张Diffuse Map的时候会把物体的结构阴影信息也绘制进去。在传统工作流中,Diffuse Map是带着光影信息的。 Diffuse Map(漫反射颜色)应该表示物体表面的颜色,在Uni…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

颜色贴图主要为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是预先生成的一张结果纹理,可用于优化复杂光照的渲染,如皮肤、毛发等。