条件行为
您可以根据任何用户参数值,使宏或组中用户参数的行为成为条件。例如,创建一个组,其中包含一个包含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节点。
|
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标签。哪一个取决于在弹出菜单中选择的值。