在项目设置,渲染中,开启Substrate。

Substrate材质不能恢复为非Substrate材质。打开并保存后,不可取消转换。因此,建议在启用Substrate之前将项目备份。

| Substrate不透明材质粗糙折射(Substrate opaque material rough reflection) | 启用后,覆盖在其他材质上的粗糙表面能够以物理上可行的方式模糊较低层。 |
| Substrate高级可视化着色器(Substrate advanced visualization shaders) | 启用此选项后,将生成高级调试视图模式所需的着色器。这些着色器会影响性能,应仅在需要调试Substrate材质拓扑时启用。 |
开启Substrate后,之前的材质会默认转换为适配Substrate的材质,并通过“Substrate Legacy Conversion”旧版转换,将之前的材质流程转换为Substrate流程。

在实际测试中,重新关闭项目设置中的Substrate选项,材质依然会切换回旧版,但是为了保险起见,还是建议对原有项目进行备份后再开启Substrate,或者在新项目中开启Substrate。
在5.3版本中对Substrate的功能、稳定性及性能等方面都进行了改进,具体如下:
1. 新增闪光(Glints)和高光反射轮廓(Specular Profile) 特性,主要用于汽车应用。
2. 改进了DBuffer着色节点支持。
3. 用于高规格平台的Fuzz模型。
4. 更新了“材质编辑器”中的“基底材质信息”选项卡,以更好地显示材质性能和拓扑信息。
5. 其他BUG修复以及性能改进。
基于原理化BSDF的材质创作的Substrate材质框架概述。
BSDF:全称是Bidirectional Scattering Distribution Function,即双向散射分布函数,它是一个统称,一般包括BRDF(反射)和BTDF(透射),反映了一个面上不同方向的散射强度。
之前沿袭UE4的旧材质系统使用的是BRDF,全称是BidirectionalReflectance Distribution Function,即双向反射分布函数。用来定义给定入射方向上的辐射照度(irradiance),如何影响给定出射方向上的辐射率(radiance)。更笼统地说,它描述了入射光线经过某个表面反射后如何在各个出射方向上分布。也可理解为:光线从某个方向入射到表面后,能量被该表面吸收,然后再朝着各个方向发射出去。
BSDF与BRDF同样都是遵循物理,基于PBR的模型。只是使用基于BSDF的Substrate在处理物体表面散射时会更容易调出效果,如介于金属和非金属之间的材质效果。
简言之,BSDF=BRDF+BTDF
BTDF,全称Bidirectional Transmittance Distribution Function,即双向透射分布函数。通常用于表现光透过物体产生的效果,如SSS次表面。

Substrate是虚幻引擎5中的材质编辑途径;它摒弃了原有固定着色模型和混合模式的思路(例如默认光照和透明涂层),替换为表现力更强、更为模块化的框架。
Substrate材质消除了非Substrate(或旧版)材质系统的特定抽象性,而改用有度量的物质属性。这扩大了可以工作的参数空间,可以更准确地呈现混合金属、玻璃、塑料等复杂的材质表面。Substrate还简化了材质分层过程,可以更轻松地表示诸如金属上有液体或次表面散射上有透明涂层之类的表面。
Substrate中的材质依赖"物质Slab(slab of matter)"概念。这些Slab是一种由具有明确单位的物理量参数化的原则性BSDF表示。材质表示为执行各种运算(例如混合与分层)的Slab图。由于其原则性表示,Substrate材质可以根据平台的容量进行简化,放弃视觉质量,以换取性能的提升。
以Substrate Slab BSDF为例,主节点包括以下输入:

漫反射反照率 (Diffuse Albedo) | 定义从表面进行漫反射的光线百分比。这类似于介质的局部基础颜色。默认值为0.18。 |
| F0 | 定义表面与摄像机垂直的高光度高光的颜色和亮度。对于非传导性材质(塑料和其他非金属材质),这个数值通常在0到0.08的范围内。对于金属材质,它的范围最高可以达到1。宝石的范围最高可以达到0.16左右。 |
| F90 | 定义表面法线与摄像机成90度夹角的高光度高光的颜色。换言之,在相对于摄像机视图的切线角。仅会感知到色调和饱和度,因为亮度固定为1.0。随着F0降至0.02以下,这会淡入淡出为黑色。 |
| 粗糙度(Roughness) | 控制材质的粗糙程度。表面粗糙度的范围是从0到1。为0(光滑)时,粗糙度是镜面反射。为1(完全粗糙)时,粗糙度是完全哑光或漫反射。使用各向异性时,会使用切线轴上的粗糙度值。 |
| 各向异性(Anisotropy) | 控制材质的各向异性方向(-1:高光与双切线对齐,1:高光与切线对齐)。 |
| 法线(Normal) | 取表面法线为输入。法线根据Material Root节点上的空间属性被视为切线或世界空间。此输入逐像素定义着色法线。 |
| 切线(Tangent) | 取表面切线为输入。法线根据Material Root节点上的空间属性被视为切线或世界空间。此输入逐像素定义着色切线。 |
| SSS MFP | 次表面散射平均自由程(MFP)。这控制材质的密度,并影响材质对光源的吸收和散射。更准确地说,它定义光子与物质粒子相互作用的平均距离。这个距离由每个颜色通道控制。 此输入仅在没有向Material Root节点指定次表面轮廓资产时使用。 |
SSS MFP缩放 (SSS MFP Scale) | 次表面散射平均自由程(MFP)。这控制材质的密度,并影响材质对光源的吸收和散射。更准确地说,它定义光子与物质粒子相互作用的平均距离。这个距离由每个颜色通道控制。 此输入仅在没有向Material Root节点指定次表面轮廓资产时使用。 |
SSS相位各向异性 (SSS Phase Anisotropy) | 正值沿光线方向延长相位函数,导致前向散射。负值沿光线方向的反方向延长函数,导致后向散射。 |
| 自发光颜色(Emissive Color) | 控制材质表面上的自发光颜色。 |
第二粗糙度 (Second Roughness) | 控制次要高光度波瓣的粗糙度。为0(光滑)时,粗糙度是镜面反射。为1(完全粗糙)时,粗糙度是完全哑光或漫反射。 此输入不影响漫反射粗糙度。 |
第二粗糙度权重 (Second Roughness Weight) | 主要和次要高光度波瓣之间的混合因子。使用粗糙度的第一高光度的权重为(1 - SecondRoughnessWeight)。值等于0时,仅渲染主要波瓣。值为0.5时,主次各占50%,值为1.0时,仅渲染次要波瓣。 |
| 绒毛粗糙度(Fuzz Roughness) | 控制绒毛层的粗糙程度。粗糙度为0的绒毛为光滑(更有光泽),粗糙度为1的绒毛为完全粗糙(哑光)。 如果没有值连接到此输入,将改用粗糙度输入。 |
绒毛量 (Fuzz Amount) | 在界面上添加类似绒毛的层,从而引发彩色逆反射。这控制应用于表面层上的绒毛量。通常用于创建织物材质。 |
| 绒毛颜色(Fuzz Color) | 定义绒毛层的颜色。 |
| 闪光密度(Glint Density) | 材质表面上的微面片密度的对数表示。 需要在ConsoleVariables.ini配置文件中设置 r.Substrate.Glints=1 。 |
闪光UV (Glint UVs) | 控制材质表面上闪光的位置和比例。 需要在ConsoleVariables.ini配置文件中设置 r.Substrate.Glints=1 。 |
文章转载自
Thepoly