Substrate 是虚幻引擎5中的材质创建方法,它取代了原有的固定类型的着色模型和混合模式,例如”Default Lit” 和 “Clear Coat”,转而提供了一个更具表现力和模块化程度的框架。
和UE的旧版材质系统有区别,主要体现在旧版材质是单层进行lerp,Substrate更好表现多层材质,例如混合金属、玻璃、塑料。
Substrate是由若干层Slab组合起来的。
本文是对官方文档的总结。(UE5.3才有文档,本文基于UE5.2)
1 启用SubStrate
项目设置 - 渲染 - Substrate启动!
单向转换:旧材质会通过SubstrateLegacyConversion节点转为Substrate材质,Substrate材质不能转换为旧材质。
2 处理Substrate
2.1 Root
启用后创建材质,即为Substrate材质:
所有Substrate材质图表必须连接到前方材质(Front Material)上。
2.2 Slab
Slab是用来组装Substrate的基本模块,由 界面 和 介质 组成。
- 界面:粗糙度、法线、散射反照率(DiffusedAlbedo)、F0、F90…
- 介质:平均自由程(MFP)(SSS)
Substrate Slab BSDF节点的输入:
- 漫反射反照率(Diffuse Albedo)
- F0:定义表面法线与相机垂直的高光度高光的颜色和亮度
- 塑料、非金属:0~0.08
- 金属:~1
- 宝石:~0.16
- F90:定义表面法线与相机成90度的高光度高光的颜色。因为在相机视图的切线角,仅会感知到色调饱和度,亮度固定为1.0
- 粗糙度(Roughness)
- 各向异性(Anisotropy)
- -1:高光与双切线对齐
- 1:高光与切线对齐
- 法线(Nromal)
- 切线(Tangent)
- SSS MFP:次表面散射平均自由程,控制材质的密度,影响材质对光源的吸收和散射。定义光子与物质粒子相互作用的平均距离,由每个颜色通道控制
- SSS MFP缩放(SSS MFP Scale)
- SSS相位各向异性(SSS Phase Anisotropy):正值沿光线方向延长相位函数,导致前向散射。负值沿光线方向的反方向延长函数,导致后向散射
- 自发光颜色(Emissive Color)
- 第二粗糙度(Second Roughness):控制次要高光度波瓣的粗糙度,不影响漫反射粗糙度
- 第二粗糙度权重(Second Roughness Weight):主要和次要高光度波瓣的混合因子
- 绒毛粗糙度(Fuzz Roughness):0绒毛光滑(更有光泽),1绒毛粗糙
- 绒毛量(Fuzz Amount):在界面上添加绒毛,引发彩色逆反射。通常用于创建织物
- 绒毛颜色(Fuzz Color)
- 闪光密度(Glint Density):表面的微面片密度的对数表示。需要在ConsoleVariables.ini中设置r.Substrate.Glints=1
- 闪光UV(Glint UVs):控制表面上闪光的位置和比例
2.3 材质节点
- BSDF
- Slab:只有这个可与其他Slab叠层,其他都是专用的需要单独使用
- Water
- Volumetric-Fog-Cloud
- Simple Clear Coat:简单快速渲染顶部有透明图层的材质
- Hair
- Eye
- Unlit
- 运算符:用于混合与分层多个Substrate Slab BSDF
- Coverage Weight:和Vertical Layer一起用,控制覆盖量
- Horizontal Blend:背景和前景
- Vertical Layer:顶层和底层。适合车漆、涂漆木材、潮湿表面
- Add:相加。物理上不正确,避免使用
- 参数混合:降低开销
- 构建块:一组材质函数,为常见用例提供了转换。
- Coated Layer:创建由彼此叠加的两块Slab构成的涂层材质。
- Standard Surface Opaque:使用不透明表面的友好参数来创建类似于Uber着色器的Substrate材质。参数化使用行业的标准词汇和概念。
- Standard Surface Translucent:同上,但是半透明。
- UE4 Default Shading
- UE5 Unlit Shading
- 额外:指定它提供的材质和函数类型,他们必须单独使用,不兼容Substrate运算符
- Convert To Decal
- Light Function
- Post Process
- UI
- 辅助:执行一些转换,或实现旧版材质能够执行的功能。
- Flip Flop
- Haziness-To-Secondary-Roughness:根据基础表面粗糙度和浑浊度计算次要高光度波瓣粗糙度?
- IOR-To-F0:将非传导性IOR转换为F0值?
- Metalness-To-DiffuseColorF0:将金属度参数化(基础颜色/高光度/金属度)转换为散射反照率(DiffuseAlbedo)/F0参数化。
- Rotation-To-Tangent:将旋转角度转换为切线向量。
- Thin-Film:薄膜。
- Transmittance-To-MeanFreePath:转换透射率颜色。
- View-Dependent-Coverage:基于入射视角调整覆盖范围,适用于混合足够厚的层,厚到效果会随视角发生变化。
2.4 统计数据
略
999 Ref
- 官方文档:
- 官方视频:
- 虚幻引擎中材质的未来 - GDC 2023:https://www.youtube.com/watch?v=joOIBteSo1w
- 虚幻直播的状态 — Timestamp: 02:29:42:https://www.youtube.com/watch?v=teTroOAGZjM&t=8982s
- 内容示例-SubstrateMaterials
- UFSH2023视频:TODO
- 知乎资料:
- UE5次时代材质新系统Substrate绪论列表(美术&TA对象) - 俞先生(Owen):https://zhuanlan.zhihu.com/p/654585314
- UE5材质创建系统Substrate技术概述 - 3DMAX:https://zhuanlan.zhihu.com/p/630062365
- SIGGRAPH 2023-Unreal Engine 5 中的 Substrate - zhing2006:https://zhuanlan.zhihu.com/p/661399487
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 cdd@ahucd.cn