材质编辑器 提供了基于节点的图形化编辑着色器的功能,用于其它几何形状的物体上。
本文档描述了如何使用 UnrealEd 的材质编辑器的相关内容。要获得关于各种材质表达式功能的详细描述
关于材质编辑器的用户界面信息
打开材质编辑器
通过在一个材质资源上 双击 或者 右键点击 的菜单,都能够打开材质编辑器。无论哪种方式,都会直接在打开后的材质编辑器中显示该材质并可以直接进行编辑。
材质编辑器也可以通过新建材质打开,方法可以是在内容浏览器中 右键点击 并在菜单项中选择新建材质,或点击在内容浏览器上部的 Add New 按钮并在下拉列表中选择 材质。
表达式注释
注释是说明您的材质作用的最好方法,它使您或其他人更容易地理解可能非常复杂的材质图表。有两种方法为材质添加注释:通过给一个节点的 Desc 属性添加文字说明,或者将一些节点放置于注释框内。
使用 Desc 属性
每个材质表达式节点都提供一个 Desc 属性,在它的 Detail 面板上。该属性就是为了美术人员来准确描述该节点在材质中的用途。只需简单的在 Detail 面板的 Desc 的属性中添加文字,这些文字就会显示在该节点上方的文本框内。
使用注释
注释是另外一种标记出材质节点网络中某个部分的作用。能够对一组多个节点创建一个框架注释,这么做对于要描述网络中的一部分非常有效,比逐一对每个节点使用 Desc 更加方便直观。
可以在鼠标停留于材质编辑器中的任意位置按下 C 来创建注释。也可以在空白处 右键 并在菜单中选择 Add Comment 来添加注释。
注释本身以一行文字的形式显示在框架的上方。并且该文并不会随着材质图表的缩放而缩放,这样即便是当缩放到很远的距离时,这些注释文字依然很容易阅读查看。
在注释框架内的节点可以随着拖动注释框架而一起移动。框架本身也可以通过边缘位置的拖拽来放大缩小。由于框架内的节点会和框架一起移动,因此可以通过调整框架大小来包含更多的节点。
注释可以被改名字,只需要选择注释并且在属性框中修改 Text 的属性即可。
实时节点和实时更新
当在材质网络上工作、修改时,能够实时的看到每次改动的即时反馈是一个很有用的功能。材质编辑器为此在图表中提供了两种功能来即刻查看改动:实时节点 和 实时更新。
刚开始这两个选项可能并看不出明显的不同。实时节点 能够让任意的常量改动被及时的回放出来,比如用于类似于 Panner 的表达式上的常量。
实时更新,则是另外一个行为,能够让网络中的每个节点在材质发生改动时都重新编译它们各自的 Shader。这里的改动包括新建节点、删除节点,对节点进行连接、断开连接,以及修改节点中的属性。要在一个节点上看到该处的材质显示正确的话,这样的编译时必须要做的。然而,编译这些中间过程的临时 Shader 可能会需要一些时间,尤其是当一个材质包含很多节点的时候。如果每次对材质做改动都需要等待很久的话,可以考虑关闭 实时更新 这个选项。
举个例子,来看一下下图中的材质,我们将一个做平移效果的火箭座舱纹理乘上一个向量参数,该向量参数用于提供色彩。
- 在这个例子中,激活 实时节点 将会使得火箭材质在该节点的预览图中进行实时的平移显示。如果 实时节点 被禁用的话,虽然 Panner 节点在控制纹理的一定,但该节点上的纹理预览便不会移动。不过当鼠标在图表区域移动的时候可能仍然会看到这个预览图有微小的移动变化。
- 如果将颜色从青色修改为紫色,只有当 实时更新 打开的状态才会看到变化。如果 实时更新 关闭,即便颜色实际上已经做了改动,但在节点上的预览图并不会改变。
当 实时更新 关闭时,仍然可以通过键盘的空格来人工强制更新所有的预览图。快速迭代的工作方式可以是关闭 实时更新,但在需要时用空格来更新并查看想要的效果。
编译错误
每当对材质网络做改动,该材质都需要被重新编译。如果一些表达式的输入部分是必须的但网络中并没有对它连接输入信息,或者传入了错误的数据类型时,都会发生编译错误。这些错误会在 图表面板 内显示。
编译错误会提示问题,以及提供这个问题相应的信息和错误描述。
搜索材质表达式
材质编辑器中的搜索功能提供了在材质网络中快速查找节点(包括注释框)的功能,通过输入特定字符串,搜索节点的描述或者其他特定节点的特定属性。这个功能在工作过程中查看材质网络提供了便利的条件,避免对表达式从头到尾的反复遍历检查。
Typing a full or partial keyword into the search box will perform a search against the properties of the expressions present in the Graph panel. The currently selected result will be brought into view and highlighted. 在搜索框中输入一个完整的关键字或者关键字的一部分,都会对当前 图表 面板中的表达式的属性进行搜索,当前选中的结果将会被高亮显示。
这里的搜索是大小写不敏感的。
搜索功能将会对一下内容进行搜索
表达式类型 | 搜索的属性 |
所有表达式 | Desc |
Texture Sample | Texture |
Parameters | ParamName |
Comment | Text |
FontSample | Font |
MaterialFunctionCall | MaterialFunction |
搜索还能够以特定的类型表达式来执行,通过在搜索时使用 NAME=
的开关。比如,要查找所有纹理样本的话,可以使用以下搜索:
NAME=texture
在 搜索 面板中点击一个匹配的结果时,会在 图表 面板中将节点显示出来。
如果想取消搜索,只需要点击
按钮即可。