您可以通过两种方式覆盖对象的着色:
可以覆盖应用的整个材质。
例如,如果要为路面指定不同的材质,使其看起来潮湿、脏乱或坑洼,则可创建一个材质覆盖来覆盖着色组。请参见覆盖应用于集合中对象的材质。
可以覆盖着色器的属性,其中包括属性值或连接。
例如,如果当前已将 Blinn 着色器当前指定给对象,且您希望将 Blinn 着色器一直指定给这些对象,但您希望更改 Blinn 的颜色属性,则应选择此选项。有关示例工作流,请参见为集合创建颜色覆盖。还可以添加或更改任何属性连接。例如,可以将任何着色器属性映射到纹理。请参见覆盖表面着色器上的属性连接。
此功能适用于 Maya 着色器和第三方着色器。
若要覆盖着色器的属性(例如,属性值或连接),必须先创建着色器的集合。您可通过以下三种方式之一执行此操作:
请参见通过表达式添加成员。
请参见按节点类型添加集合成员。
通过在“大纲视图”(Outliner)(“窗口 > 大纲视图”(Window > Outliner))中启用“显示 > 指定的材质”(Display > Assigned Materials)选项,显示指定给场景中每个对象的着色器。
如果对象涉及逐面着色器指定,则会将指定给对象的所有着色器列入并分组到“材质”(Materials)标题下。请参见标识指定给场景中每个对象的着色器。
此外,您还可以通过在大纲视图中启用“渲染设置过滤器”(Render Setup Filter)来标识属于集合成员的着色器。请参见在大纲视图中过滤并仅显示渲染设置成员。
如果场景中包含三个窗口,则可使用表达式将所有这三个窗口动态添加到同一集合。例如,如果所有窗口的名称中均包含字母 window,则可使用表达式 *window* 将其包含在集合中。稍后,您可以在集合上创建一个材质覆盖,以便使用新材质覆盖原始材质。请参见覆盖应用于集合中对象的材质。
现在,如果向场景中添加新建筑,只要其窗口的名称中也包含字母 window,便可重新应用表达式,使新窗口包含在集合与应用的材质覆盖中。请参见更新场景时动态更新渲染设置。
如果场景中有 100 个对象,每个对象应用的着色器各不相同,并且您需要将每个着色器的亮度提高 10%,则可执行以下操作:
创建一个集合,然后使用表达式将着色器包含在该集合中。
例如,如果着色器命名为 lizard1_skin、lizard2_skin,依此类推,则可使用表达式 lizard*_skin 将所有蜥蜴皮着色器包含在集合中。
覆盖“白炽度”(Incandescence)属性。
选择集合,然后从“添加覆盖”(Add Override)下拉列表中选择“相对”(Relative),并使用鼠标中键将“白炽度”(Incandescence)属性从任一着色器拖放到“特性编辑器”(Property Editor)。
在“特性编辑器”(Property Editor)中调整“白炽度”(Incandescence)属性时,集合中包含的所有着色器会变得更亮。
这样就不需要分别调整每个着色器。
如果场景中有 100 个角色,且所有角色都穿着指定给不同着色器的 T 恤,但您要将所有这些 T 恤映射到新纹理,则可执行以下操作:
创建一个集合,然后使用表达式将着色器包含在该集合中。例如,如果着色器命名为 char1_shirt、char2_shirt,依此类推,则可使用表达式 char*_shirt 将所有 T 恤着色器包含在集合中。
覆盖“颜色”(Color)属性。为集合创建“连接覆盖”(Connection Override),然后使用鼠标中键将“颜色”(Color)属性从任一着色器拖放到“特性编辑器”(Property Editor)。
单击“特性编辑器”(Property Editor)中“覆盖”(Override)属性旁边的 按钮,以连接到新纹理。
有关连接覆盖的详细信息,请参见覆盖表面着色器上的属性连接。