材质编辑器 - 如何放置材质表达式和函数

本页面的内容:

材质表达式材质函数 是虚幻引擎 4 中的构建块,用来创建功能完整的材质。 每个表达式或函数都是独立的黑匣,可以对其输入运行一小段代码,然后输出结果。 在本操作指南中,我们会学习将材质表达式和材质函数放入材质图的各种方法。

材质表达式

材质表达式 节点包含一小段 HLSL 代码,这些代码在材质内部执行非常特定的任务。 材质是使用材质表达式节点的组合来构建的,这些节点组合在一起可执行特定的任务。 例如,如果您希望在材质内部移动纹理,那么可使用“平移”材质表达式节点。 此节点包含特定的 HLSL 代码,这些代码指示材质沿特定方向移动其应用纹理的 UV 坐标,使它看起来像在运动一样。 您很快将看到,材质表达式节点是构建材质并与其互动的关键。

材质表达式与材质函数之间的差别

虽然材质表达式和材质函数都是用来创建材质的构建块,但在节点及其工作方式方面存在一些差异。 材质函数与材质表达式之间的主要差异是,材质函数是在材质函数编辑器中构造,并且是保存在内容浏览器中的资产。

放置材质表达式

您可以采用下列三种方法将材质表达式放入材质图。

从选用板中拖放

您可以将任何材质表达式从 选用板(Palette)菜单直接拖放到材质图中。即,搜索所需的表达式,用 鼠标左键 单击选中它,然后将它拖到材质图中。当您释放 鼠标左键 时,材质表达式将放置在材质图中。

右键单击搜索

您也可以这样添加材质表达式:右键单击 材质图中的任何位置,从快捷菜单中选择所需的材质表达式,然后单击 鼠标左键 将它放入材质图中。您还可以使用键盘来搜索所需的材质表达式。找到所需的材质表达式后,按 Enter 键就可以将表达式节点放入材质图中。

键盘快捷键

您可以使用许多键盘快捷键来帮助您快速放置最常用的材质表达式。您可以通过 编辑(Edit)-> 编辑器首选项(Editor Preferences)-> 键盘快捷键(Keyboard Shortcuts)-> 材质编辑器产生节点(Material Editor Spawn Nodes)来更改产生材质表达式的键。

以下是当前默认键盘快捷键的清单,及按下按键时材质表达式将会创建的表达式。

键盘快捷键 材质表达式
A “加法”材质表达式
B “凹凸贴图偏移”材质表达式
1 “常量”材质表达式
2 “常量 2 矢量”材质表达式
3 “常量 3 矢量”材质表达式
4 “常量 4 矢量”材质表达式
D “除法”材质表达式
I “如果”材质表达式
L “线性插值”材质表达式
F “材质函数”材质表达式
M “乘法”表达式
N “规格化”表达式
O “一减”表达式
P “平移”表达式
E “幂”表达式
R “矢量 WS”表达式
S “标量”表达式
U “纹理坐标”表达式
V “矢量取样”表达式

放置材质函数

您可以采用放置材质表达式的方法,将材质函数放入材质图中。

从选用板中拖放

您可以将任何材质函数从 选用板(Palette)菜单直接拖放到材质图中。即,搜索所需的函数,用 鼠标左键 单击选中它,然后将它拖到材质图中。当您释放 鼠标左键 时,材质表达式将放入材质图中。

选用板提供了搜索过滤功能,您可以将搜索结果限制为表达式、函数或这两者。要设置搜索过滤器设置,请使用 鼠标左键 单击 类别 按钮,然后从下拉菜单中选择您想要搜索的类别。

Placing_Functions_Search_Options.png

右键单击搜索

您也可以这样添加材质函数:右键单击 材质图中的任何位置,从快捷菜单中选择所需的材质函数,然后单击 鼠标左键 将它放入材质图中。您还可以使用 键盘搜索(Search)框中输入您要查找的名称,来搜索您所需的材质函数。找到所需的材质表达式后,按 Enter 键就可以将函数节点放入材质图中。

快捷 菜单无法按函数或表达式进行过滤,在您进行搜索时,这两者都将显示。

材质函数节点的顶部总是显示为蓝色。您还可以通过 鼠标左键双击 将它们打开,来查看它们所执行的操作。

Placing_Functions_Functions_Blue_Tops.png

从内容浏览器

这种方法仅适用于材质函数,您可以将它们从 内容浏览器 拖放到材质图中。即,在 内容浏览器 中查找所需使用的材质函数,用 鼠标左键 单击选中它,然后将它拖到材质图中。当鼠标移到材质图上时,释放 鼠标左键 即可添加您所选择的材质函数。

要在内容浏览器中查找材质函数,您需要在 Engine 文件夹中进行查找。 但是,默认情况下,Engine 文件夹处于禁用状态,您需要将其启用才能查看。 即,使用 鼠标左键 单击内容浏览器右下角的查看选项(View Options)。 然后,从弹出菜单中,选择 显示引擎内容(Show Engine Content)选项以显示 Engine 文件夹中的内容。

结论

材质表达式和材质函数是您使用材质编辑器的关键。 无论您构建哪一类材质,材质都由材质表达式和/或材质函数组成。 请记住,调整当前使用中的材质函数时,可能有导致其他使用该材质函数的材质及材质实例损坏的风险。 另外,每当您不确定某个特定材质表达式节点的功能时,都可以在因特网上快速搜索该材质表达式节点的名称。 因为大部分材质表达式节点都是纯 HLSL 代码,节点仅在节点论坛中,有关 HLSL 的 Microsoft 官方文档有时可以帮助您了解材质表达式可能执行的操作。