在所有指定网格上更改着色器,而不使用hyperShade()

2024-05-07 01:05:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我将所有的形状指定给baseMaterial,选择这些形状,然后指定阻挡着色器。在

for materialClass in materialClassList:
    select(materialClass.baseMaterial)
    hyperShade(objects="")
    hyperShade(a=materialClass.occlusionShader)

工作正常,但如果我将其用作预渲染脚本:

^{pr2}$

我能把函数的最后两行改成什么来实现这个功能呢?在


Tags: 函数in功能脚本forobjectsselect形状
2条回答

下面是一个例子命令集()指定着色器:

all = cmds.ls(type='mesh')
shadingEngine = 'initialShadingGroup'
cmds.sets(all, e=True, forceElement=shadingEngine)

正如您所猜测的,要使用材质查询网格,请执行以下操作:

^{pr2}$

我用的是:

for materialClass in materialClassList:
    sets(materialClass.occlusionShadingGroup, e = True, forceElement = materialClass.meshList)

我现在创建materialClass时收集网格,这比为每个renderlayer选择它们更有意义。在

相关问题 更多 >