Custom(定制)
Custom(定制)表达式允许您编写定制 HLSL 着色器代码,这些代码可对任意数量的输入执行操作,并输出操作结果。
项目 | 说明 |
---|---|
属性 | |
代码(Code) | 包含表达式将执行的着色器代码。(请参阅下文中的 警告 ) |
输出类型(Output Type) | 指定表达式所输出的值的类型。 |
说明(Description) | 指定要在材质编辑器中的表达式栏中显示的文本。 |
输入(Inputs) | 表达式所使用的输入数组。 |
输入名称(Input Name) |
指定输入的名称。这是材质编辑器中显示在此表达式上的名称,并且是 HLSL 代码中用来引用输入值的名称。 |
请向“输入”(Inputs)数组添加任意数目的输入,并对其进行命名。然后,您可以在“代码”(Code)属性中编写代码。您可输入包含 return 语句的完整函数体(如示例所示),也可输入简单表达式,例如 Input.bgr。另外,您还必须在 OutputType(输出类型)中指定输出数据类型。
这里是以上示例中使用的代码,您可以使用此代码自行尝试 Custom(定制)节点。
float3 blur = Texture2DSample(Tex, TexSampler, UV);
for (int i = 0; i < r; i++)
{
blur += Texture2DSample(Tex, TexSampler, UV + float2(i * dist, 0));
blur += Texture2DSample(Tex, TexSampler, UV - float2(i * dist, 0));
}
for (int j = 0; j < r; j++)
{
blur += Texture2DSample(Tex, TexSampler, UV + float2(0, j * dist));
blur += Texture2DSample(Tex, TexSampler, UV - float2(0, j * dist));
}
blur /= 2*(2*r)+1;
return blur;