查看: 899|回复: 4

[引擎各个功能] 【定制表达式 | Unreal Engine】

[复制链接]

1

主题

342

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
75866
发表于 2016-6-25 12:32:48 | 显示全部楼层 |阅读模式


Custom(定制)
Custom(定制)表达式允许您编写定制 HLSL 着色器代码,这些代码可对任意数量的输入执行操作,并输出操作结果。


项目
说明


属性
代码(Code)包含表达式将执行的着色器代码。(请参阅下文中的 警告)输出类型(Output Type)指定表达式所输出的值的类型。说明(Description)指定要在材质编辑器中的表达式栏中显示的文本。输入(Inputs)表达式所使用的输入数组。
输入资源文件名称(Input Name)

指定输入的资源文件名称。这是材质编辑器中显示在此表达式上的资源文件名称,并且是 HLSL 代码中用来引用输入值的资源文件名称。

请向“输入”(Inputs)数组添加任意数目的输入,并对其进行命名。然后,您可以在“代码”(Code)属性中编写代码。您可输入包含 return 语句的完整函数体(如示例所示),也可输入简单表达式,例如 Input.bgr。另外,您还必须在 OutputType(输出类型)中指定输出数据类型。

【虚幻4翻译文档-定制表达式 | Unreal Engine】[虚幻4中文文档]



这里是以上示例中使用的代码,您可以使用此代码自行尝试 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;
使用 Custom(定制)节点会阻止常量折叠,并且,与使用内置节点实现的等效版本相比,可能会大幅增加所使用的指令!常量折叠是 UE4 在内部利用的一项优化功能,旨在必要时减少着色器指令数。例如,“Time(时间)> Sin(正弦)> 乘以(Mul)参数 > 加入(Add)某内容”表达式链可以并且将会由 UE4 折叠为单一指令,即最终的相加。可以做到这一点的原因是,该表达式的所有输入(Time(时间)和参数)在整个绘制调用中保持不变,而不是随像素而变化。UE4 无法折叠 Custom(定制)节点中的任何内容,与使用现有节点实现的等效版本相比,这可能会生成效率欠佳的着色器。因此,最好是仅当 Custom(定制)节点允许您访问无法通过现有节点访问的功能时,才使用 Custom(定制)节点。

在 Custom(定制)节点中编写的着色器代码将“按原样”针对目标平台进行编译。这意味着,如果是针对 PC 来编译着色器,那么将假定它是有效的 HLSL。如果是针对 PS3 进行编译,那么将假定它是有效的 Cg。
回复

使用道具 举报

0

主题

870

帖子

2868

积分

vip会员

Rank: 1

积分
2868
发表于 2016-7-2 18:32:02 | 显示全部楼层
等会儿下载看看
回复 支持 反对

使用道具 举报

0

主题

894

帖子

2977

积分

vip会员

Rank: 1

积分
2977
发表于 2016-7-3 19:53:09 来自手机 | 显示全部楼层
我知道楼主一向黑~~~~~
回复 支持 反对

使用道具 举报

0

主题

942

帖子

3016

积分

vip会员

Rank: 1

积分
3016
发表于 2016-7-4 10:36:27 来自手机 | 显示全部楼层
谢谢 分享 这个我还记得 不错
回复 支持 反对

使用道具 举报

0

主题

806

帖子

2678

积分

vip会员

Rank: 1

积分
2678
发表于 2016-7-18 10:58:04 来自手机 | 显示全部楼层
怎么下载额
回复 支持 反对

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | enginedx注册

本版积分规则

 
 



邮件留言:


 
返回顶部