跳转到内容

材质类型与终端

终端节点是整张图的出口——顶点终端决定几何形变,片元终端决定像素颜色与表面属性。选哪一套 终端由蓝图 Inspector 里的材质类型决定。

在蓝图 Inspector 的 materialType 下拉里选择:

材质类型光照适用场景
PBR完整基于物理的光照绝大多数写实材质:角色、场景、道具
Blinnphong传统经验光照模型低配设备、风格化、需要显式控制高光颜色
Unlit无光照特效、UI、自发光物体、贴图直出
Particle粒子专用粒子系统的渲染材质

所有材质类型共用同一个顶点终端,用来做顶点动画(风吹草动、水面起伏、膨胀溶解等)。

输入槽类型说明
positionOSvec3对象空间顶点位置。不接线时用模型原始位置
normalOSvec3对象空间法线
tangentOSvec4对象空间切线(接线后自动启用 CUSTOM_TANGENT 宏)

所有片元终端都在最上方带一个由基类注入的槽:

输入槽类型说明
alphaTestfloat透明裁剪阈值。需要在 Inspector 勾选 alpha test 才可用,否则该槽为禁用状态

当前版本的 PBR 终端提供 21 个输入槽(加上公共的 alphaTest 共 22 个),能力覆盖清漆、 绒感、各向异性、透射、彩虹色等高级材质特性。

输入槽类型默认值说明
NormalTSvec3(0,0,1)切线空间法线。接法线贴图采样结果;不接则用模型法线
BaseColorvec3(1,1,1)基础色(反照率),不含光照
Metallicfloat0金属度。0 = 绝缘体,1 = 纯金属,现实材质多为两端值
Specularfloat0.5绝缘体的镜面反射强度
SpecularColorvec3(1,1,1)镜面反射颜色
Smoothnessfloat0光滑度。越大高光越锐利集中,越小越模糊粗糙
Occlusionfloat1环境光遮蔽。压暗缝隙与凹陷处的环境光,增强体积感
Opacityfloat1不透明度。需材质混合方式为 TRANSPARENT 一类才生效
输入槽类型默认值启用宏说明
EmissionColorvec3未接线时移除EMISSION自发光颜色。接线才会启用 EMISSION 宏,HDR 辉光效果依赖它

拉丝金属、丝绸、头发的方向性高光。需要在材质上启用 anisotropy 特性,否则两个槽为禁用状态。

输入槽类型默认值启用宏说明
Anisotropyfloat0ANISOTROPIC各向异性强度,正负号决定高光沿切线还是副切线方向拉伸
AnisotropyRotationfloat0各向异性方向的旋转

车漆、上光木料、漆面等「基础材质外覆盖一层透明漆」的双层结构。需启用 clear coat 特性

输入槽类型默认值启用宏说明
ClearCoatfloat0CLEARCOAT清漆层强度,0 = 无清漆
ClearCoatRoughnessfloat0CLEARCOAT清漆层粗糙度
ClearCoatNormalTSvec3未接线时移除CLEARCOAT_NORMAL清漆层独立法线(如漆面橘皮纹理)

天鹅绒、绒布、丝绒的边缘柔光。需启用 sheen 特性

输入槽类型默认值启用宏说明
SheenColorvec3(0,0,0)SHEEN绒感颜色,黑色 = 无绒感
ShenRoughnessfloat0SHEEN绒感粗糙度
输入槽类型默认值启用宏说明
IORfloat未接线时移除IOR折射率。玻璃约 1.5、水约 1.33
Transmissionfloat0TRANSMISSION透射强度,做玻璃、宝石、半透皮肤。需启用 transmission 特性

肥皂泡、油膜、甲虫壳的薄膜干涉色。需启用 iridescence 特性

输入槽类型默认值启用宏说明
Iridescencefloat0IRIDESCENCE彩虹色强度
IridescenceIORfloat1.3IRIDESCENCE薄膜折射率
IridescenceThicknessfloat400IRIDESCENCE薄膜厚度(纳米),决定呈现哪一段干涉色
输入槽类型默认值说明
NormalTSvec3(0,0,1)切线空间法线
DiffuseColorvec3(1,1,1)漫反射颜色(不受高光影响的底色)
SpecularColorvec3(0.5,0.5,0.5)高光颜色
Shininessfloat0.0781表面光滑度,值越大高光越集中
Glossvec3(0,0,0)高光强度分布,一般接高光贴图
Alphafloat1不透明度
输入槽类型默认值说明
NormalTSvec3(0,0,1)切线空间法线(Unlit 无光照,一般不接)
Colorvec3(1,1,1)最终颜色,直接输出不参与光照计算
Alphafloat1不透明度
输入槽类型说明
colorvec4粒子最终颜色(含 alpha)

Inspector 的 blendModes 决定材质如何与背景合成:

模式公式 / 行为
OPAQUE(不透明)最终颜色 = 来源颜色,直接覆盖背景
CUTOUT(镂空)Alpha 大于阈值则输出来源颜色,否则丢弃该像素。做树叶、铁丝网
TRANSPARENT(半透明)来源颜色 × 不透明度 + 目标颜色 ×(1 − 不透明度)
ADDTIVE(加色混合)最终颜色 = 来源颜色 + 目标颜色。做光效、火焰、能量
ALPHABLENDED(透明混合)SrcAlpha × SrcColor + (1 − SrcAlpha) × DstColor,SrcAlpha 通常来自纹理 alpha
选项默认作用
enableInstancing允许 GPU 实例化合批。开启后 objectPosition / objectScale 节点取不到准确值
supportReflectionProbe参与反射探针采样
supportVFX额外产出一份 VFX_<shaderName> 变体,可被 VFX Graph 的 ShaderGraph 输出当作自定义 Shader 使用
twoSided双面渲染(不剔除背面)。做布料、树叶、单面片
shadowCaster追加 ShadowCaster Pass,物体才能投射阴影
depthNormal追加 DepthNormal Pass,输出场景法线信息,部分后处理依赖它
alpha test启用透明裁剪。开启后片元终端的 alphaTest 槽变为可用,alpha 低于阈值的像素直接 discard
scene fog启用场景雾效,按屏幕空间深度把雾色混入最终颜色
statefirst打开后展开下方 renderState,用手工渲染状态覆盖混合方式的默认设置

勾选 statefirst 后可逐项手工指定渲染状态,留空表示沿用混合方式的默认值。

选项可选值
cullBack / Front / Off
blendDisable / All(RGB 与 Alpha 统一)/ Seperate(RGB 与 Alpha 分开设置)
srcBlenddstBlend混合因子,blend = All 时生效
srcBlendRGBdstBlendRGBsrcBlendAlphadstBlendAlpha混合因子,blend = Seperate 时生效
blendEquationblendEquationRGBblendEquationAlphaAdd / Subtract / Reverse_substract / Min / Max

混合因子可选值:Zero、One、SourceColor、OneMinusSourceColor、DestinationColor、 OneMinusDestinationColor、SourceAlpha、OneMinusSourceAlpha、DestinationAlpha、 OneMinusDestinationAlpha、SourceAlphaSaturate、BlendColor、OneMinusBlendColor。

选项可选值
depthTestNever / Less / Equal / LessEqual / Greater / NotEqual / GreaterEqual / Always / Off
depthWritetrue / false
stencilRef模板参考值(数值)
stencilTestdepthTest 的比较函数集合
stencilWritetrue / false
stencilFailstencilZFailstencilZPassKeep / Zero / Replace / IncrementSaturate / DecrementSaturate / Invert / IncrementWrap / DecrementWrap

除了主渲染 Pass,蓝图还会按需产出:

Pass触发条件用途
ShadowCaster勾选 shadowCaster阴影深度写入
DepthNormal勾选 depthNormal深度 + 法线输出,供后处理使用
META(烘焙)PBR / Blinnphong 材质类型自动附带光照烘焙时提供反照率、法线、自发光、金属度、粗糙度

终端定了,接下来就是往里接数据:节点手册 · 输入与坐标

本文更新于