Table of Contents

着色属性

中级 美术人员 程序员

材质的着色(Shading)属性定义材质的颜色特征及其对光线的反应。

着色属性

Note

要显示材质,你至少需要在模型属性中选择一个着色模型(漫反射、高光或自发光模型)。

漫反射(Diffuse)

漫反射是材质的基本颜色。纯漫反射材质完全不反光,外观"平坦"。

media/material-attributes-25.png

最终的漫反射贡献按如下方式计算:

  • 漫反射定义漫反射模型使用的颜色
  • 漫反射模型定义用于渲染漫反射分量的着色模型(见下文)

目前,漫反射属性仅支持漫反射贴图。

media/material-attributes-23.png

漫反射模型

漫反射模型决定漫反射材质如何对光线作出反应。你可以使用 Lambert 或 cel-shading(卡通着色)。

Lambert 模型

在 Lambert 模型下,光线向所有方向等量反射,其强度遵循余弦角度分布(法线与光线之间的夹角):

media/material-attributes-24.png

Note

纯粹的 Lambert 材质在现实中并不存在。材质总是会有一些高光反射。这种效果在掠射角处更明显(主要为漫反射的表面在掠射角处会变得有光泽)。

属性 说明
Diffuse map 漫反射贴图颜色提供器
Diffuse model 用于漫反射光照的着色模型

高光(Specular)

高光是在材质中反射的光点。

高光高亮

高光颜色可以使用金属度贴图来定义(以漫反射颜色作为基础颜色),也可以使用高光贴图来定义(高光颜色与漫反射颜色分开定义)。

金属度贴图

**金属度贴图(Metalness map)**简化了漫反射颜色与高光颜色之间的参数设置。

考虑到几乎所有材质都具有一定的"金属度"/反射率,使用金属度贴图能以最少的参数提供逼真的材质。

最终的高光颜色通过混合一种固定的低反射颜色和漫反射颜色来计算。

  • 当金属度颜色为 0.0 时,实际高光颜色等于 0.02,而漫反射颜色保持不变。该材质不是金属,但表现出一定的反射率,并且对菲涅尔效应敏感。
  • 当金属度颜色为 1.0 时,实际高光颜色等于漫反射颜色,而漫反射颜色被设为 0。该材质被视为纯金属。 media/material-attributes-26.png

下面的截图展示了金属度系数对具有以下属性的材质的影响:

  • Gloss = 0.8
  • Diffuse = #848484,Lambert
  • Specular GGX
纯漫反射(无金属度) 金属度 = 0.0 金属度 = 1.0
media/material-attributes-27.png media/material-attributes-28.png media/material-attributes-29.png
- 漫反射颜色占主导 - 漫反射颜色占主导 - 漫反射颜色不可见
- 高光颜色不可见 - 高光颜色可见(0.02) - 高光颜色可见

高光贴图

高光贴图可以更精细地控制实际的高光颜色,但需要你相应地修改漫反射颜色。

与金属度工作流不同,这让你即使在低反射场景中也能拥有与漫反射颜色不同的高光颜色,从而实现具有特殊行为的材质。

Note

你可以通过添加单独的层在同一个材质中组合金属度工作流和高光工作流。

高光模型

纯高光表面会在镜面反射方向上产生光源的高亮。实际上,很大范围的高光材质并非完全光滑,可以向多个方向反射光线。Stride 使用**微表面(microfacet)**模型来模拟这一点,也称为 Cook-Torrance(学术论文)。

media/material-attributes-33.png

微表面由以下公式定义,其中 Rs 是最终的高光反射率:

media/material-attributes-34.png

属性 说明
Fresnel 定义被反射和透射的光量。支持的模型有:
Schlick:菲涅尔效应的一种近似(默认)
Thin glass:模拟光穿过玻璃
None:材质保持原样,不使用菲涅尔效应
Visibility 定义微表面之间的可见性,取值范围为 (0, 1)。在最初的 Cook-Torrance 中也称为几何衰减(遮挡与遮罩)。Stride 将公式简化为使用可见性项:
media/material-attributes-35.png
以及
media/material-attributes-36.png
Schlick GGX(默认)
Implicit:微表面始终可见,不产生遮挡或遮罩
Cook-Torrance
Kelemen
Neumann
Smith-Beckmann
Smith-GGX correlated
Schlick-Beckmann
Normal Distribution 定义法线的分布方式。函数的这一部分使用光泽度属性来修改法线的分布。
GGX(默认)
Beckmann
Blinn-Phong

自发光(Emissive)

自发光材质是会发光的表面。

media/material-attributes-37.png

配合 HDR、泛光和亮度滤镜后处理效果,我们可以看到自发光材质的影响:

media/material-attributes-38.png

属性 说明
Emissive map 自发光贴图颜色提供器
Intensity 与颜色提供器的颜色相乘的系数
Use alpha 使用自发光贴图的 alpha 作为材质的主要透明度颜色(而不是默认使用漫反射贴图的 alpha)

另请参阅