放置材质表达式和函数

有关如何在材质图中放置材质表达式和函数的操作指南。

Choose your operating system:

Windows

macOS

Linux

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

材质表达式

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

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

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

  • 材质表达式 :材质表达式是静态代码段,只能执行编程时指定的操作。例如,乘法(Multiply)节点只能执行乘法,而永远无法将两个数字相加。您要更改其功能的唯一方法就是更改源代码。

  • 材质函数 :材质函数较为灵活,因为您可以创建材质函数以执行您所需的任何类型的计算。如果您希望材质函数不仅能够执行乘法,也能够执行加法,您可以在材质函数编辑器中进行相应的更改来实现,而不必更改源代码。

放置材质表达式

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

从选用板中拖放

您可以将任何材质表达式从 选用板(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 官方文档有时可以帮助您了解材质表达式可能执行的操作。

欢迎帮助改进虚幻引擎文档!请告诉我们该如何更好地为您服务。
填写问卷调查
取消