条件行为

您可以根据任何用户参数值,使宏或组中用户参数的行为成为条件。例如,创建一个组,其中包含一个包含3Delight和Arnold着色器的场景。从弹出菜单中选择要使用的着色器,然后使用条件行为显示和隐藏着色器选项。

条件可见性示例

首先,请按照以下步骤设置可用于了解条件可见性的场景。

1.   创建一个Katana具有PrimitiveCreate节点,Material节点,CameraCreate节点和Merge节点的场景。
2.   将PrimitiveCreate,Material和CameraCreate节点的输出连接到Merge节点上的输入。
3.   创建一个MaterialAssign节点,并将其放置在Merge节点的下游。
4.   在MaterialAssign节点的下游,依次添加GafferThree和RenderSettings节点。最后,在链的末尾添加一个“渲染”节点。

注意:  您可以使用多个着色器类型重载Material和GafferThree节点。例如,“材质”节点可以同时容纳3Delight和Arnold着色器。
在渲染时,仅考虑与所选渲染器相关的着色器。

5.   在“材质”节点中,添加一个类型为3Delight的表面着色器Material3Delight,以及类型为Arnold的表面着色器standard
6.   在GafferThree节点中,同时添加3Delight spotlight和阿诺德spot_light,切换配置文件即可。

注意:  有关如何添加灯光和为其分配着色器的更多信息,请参阅掌握GafferThree节点

7.   放置灯。
8.   选择除“渲染”以外的所有节点,然后按G将所有选定节点分组在一起。结果是一个具有单个输出的Group节点,该节点连接到Render节点。

 

设置场景后,可以进入“组”节点并更改“ RenderSettings”节点渲染器参数可在可用的渲染器之间切换。但是,您还可以使用条件可见性来简化此操作,方法是在“组”节点的UI中添加一个弹出菜单,然后链接到renderer通过表达式在RenderSettings节点上的参数。

请按照以下步骤使用条件可见性在3Delight和Arnold渲染选项之间进行切换:

1.   选择组并单击 > Edit User Parameters
2.   选择Add > String然后选择Widget Type > Popup Menu从新参数的菜单。
3.   选择Widget Options...从新参数的菜单。
4.   在小部件选项对话框中,选择Add > New Entry,因此菜单中有两个条目。编辑一个条目为“ dl”,另一个条目为“ arnold”,然后单击OK
5.   在“组”节点的Parameters标签,右键单击弹出菜单小部件,然后选择Copy
6.   在节点图中展开“组”节点的内容。选择“ RenderSettings”节点,然后按Alt+E在中编辑参数Parameters标签。右键单击该节点的renderer参数,然后选择Paste Expression

的背景renderer参数变为蓝色,表示它由表达式驱动。

RenderSettings节点的值renderer参数通过表达式链接到“组”节点的弹出菜单中的选定条目。如果选择 > Finish Editing User Parameters从小组的Parameters标签,弹出菜单现在显示为参数。

为条件可见性创建新的用户参数

弹出菜单的状态还可以有条件地影响“组”节点中其他用户参数的可见性。使用示例场景,您已经从条件可见性示例在组上创建新的用户参数,以控制其中包含的3Delight和Arnold着色器的漫反射颜色值。

此示例还显示了如何添加条件行为,以便仅显示与所选渲染器相关的着色器的颜色控件:

1.   在“组”节点的Parameters标签,选择 > Edit User Parameters,然后点击Add > Color, RGB两次。
2.   右键单击第一个Color, RGB用户参数并选择Copy。在节点图中展开组的内容,然后Shift+单击鼠标中键并将Material节点拖到Parameters标签以查看它。
3.   展开参数Material3Delight,右键单击color参数(基础层),然后选择Paste Expression
4.   在“组”节点的Parameters选项卡,右键单击第二个Color, RGB用户参数并选择Copy
5.   展开“材质”节点的参数arnoldSurfaceShader,右键单击kd_color参数,然后选择Paste Expression

3Delight和Arnold着色器的漫反射颜色值通过表达式链接到组参数中的颜色小部件。如果选择Finish Editing User Parameters从小组的菜单中,颜色小部件将显示在组的Parameters标签。它们的值会影响3Delight和Arnold着色器的漫反射颜色。

隐藏条件可见性选项

一次仅考虑一个着色器,因此隐藏不适用于所选渲染器的着色器设置将很有用。

1.   在“组”节点的Parameters标签,点击 > Edit User Parameters。选择 > Conditional Visibility Options...为了第一Color, RGB小部件。

Conditional Visibility Options对话框打开。

条件可见性选项编辑器设置用于显示所选窗口小部件的“和/或”条件。根据指定的用户参数评估条件,格式为:

if <所选参数> is相对于输入值的<选定条件>,然后显示小部件。

2.   在里面Conditional Visibility Options对话框中,选择Add Condition > contains。在文本输入字段中,输入“ dl”。

在这种情况下的条件是if <弹出菜单> contains <字符串dl>然后显示目标用户参数。

3.   在里面Conditional Visibility Options窗口中,单击图标以选择要测试的用户参数,然后从列表中选择弹出菜单。
4.   重复以上步骤进行第二次Color RGB小部件和Arnold弹出菜单中的条目。

如果您选择组的 > Finish Editing User Parameters,然后查看完成的“组”节点的Parameters标签中,一次仅在一个组中显示一个颜色小部件Parameters标签。哪一个取决于在弹出菜单中选择的值。