语言参考
输出绑定
Shader 输出变量、Base 材质属性和 Expression 输出节点绑定规则。
Shader 的 Outputs 同时负责两件事:
- 声明
Graph最终要写入的输出变量。 - 把这些变量绑定到 Unreal 材质属性或辅助输出节点。
基本绑定
Outputs = {
vec3 Color;
float Alpha;
Base.BaseColor = Color;
Base.Opacity = Alpha;
}Graph 中给变量赋值:
Graph = {
Color = Tint;
Alpha = 0.8;
}材质属性
Base.* 绑定到 Unreal 材质输入。常用目标:
| 绑定目标 | 类型 |
|---|---|
Base.BaseColor | float3 |
Base.EmissiveColor / Base.Emissive | float3 |
Base.Opacity | float1 |
Base.OpacityMask | float1 |
Base.Metallic | float1 |
Base.Specular | float1 |
Base.Roughness | float1 |
Base.Normal | float3 |
Base.AmbientOcclusion / Base.AO | float1 |
Base.Refraction | float3 |
Base.WorldPositionOffset / Base.WPO | float3 |
Base.PixelDepthOffset / Base.PDO | float1 |
Base.SubsurfaceColor | float3 |
Base.ClearCoat | float1 |
Base.ClearCoatRoughness | float1 |
Base.CustomData0 | float1 |
Base.CustomData1 | float1 |
Base.Anisotropy | float1 |
Base.Tangent | float3 |
Base.CustomizedUV0 到 Base.CustomizedUV7 | float2 |
如果声明类型和目标类型不兼容,生成器会报错。
表达式输出节点
有些 Unreal 材质输出不是 Base.* 属性,而是 MaterialExpression 输出节点。可以使用 Expression(...).Pin[index]:
Outputs = {
float TangentValue;
Expression(Class="TangentOutput").Pin[0] = TangentValue;
}规则:
| 部分 | 说明 |
|---|---|
Expression(...) | 创建输出表达式节点。 |
Class | 必填,指定 MaterialExpression 类名。 |
.Pin[index] | 必填,指定输入 pin 索引。 |
| 源变量 | 绑定右侧必须能解析成 Graph 值。 |
对表达式输出目标,源变量必须先显式声明类型:
Outputs = {
float TangentValue;
Expression(Class="TangentOutput").Pin[0] = TangentValue;
}输出表达式
右侧可以是简单变量,也可以是可解析的 Graph 表达式:
Outputs = {
Base.EmissiveColor = Tint * Strength;
}复杂表达式建议先在 Graph 中赋值给命名变量,便于诊断和复用。
保留名 return
return 是特殊输出源名,只能绑定到 Base.* 材质属性。普通输出变量不要命名为 return。
Outputs = {
Base.EmissiveColor = return;
}这种形式适合单输出 Custom 节点场景;常规材质更推荐声明清晰的命名输出变量。