阿诺德定制AOV

2024-10-01 13:24:11 发布

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

我开始使用maya和python,我遇到的第一个问题是:

我无法访问我的着色组(Arnold)的新创建的aicustomov。打印的结果是0作为着色组的AOV数(参见代码的最后一行)。在

如果我把代码分成两部分(创建一个AOV并查询shading group的属性)并分别运行它们,我会得到结果,但我认为这不是正确的方法。正确的?在

通常,从渲染设置创建自定义AOV时,它会自动将AOV添加到aiCustomAOVS的着色组列表中。 似乎存在初始化问题。如何克服它?在

代码如下:

'''check whether the aiAOV_Default_Color exists'''
if not cmds.objExists('aiAOV_Default_Color'):
    customAOV = cmds.createNode('aiAOV',n='aiAOV_Default_Color', skipSelect=True)
    cmds.setAttr(customAOV+'.name','Default_Color',type='string')
    cmds.connectAttr(customAOV+'.message','defaultArnoldRenderOptions.aovList',force=1)
    cmds.connectAttr('defaultArnoldDriver.message',customAOV+'.outputs[0].driver', force=1)
    cmds.connectAttr('defaultArnoldFilter.message',customAOV+'.outputs[0].filter', force=1)
    print 'AOV has been created'
else:
    print 'No need to create a new customAOV'

''' get all shading groups'''
shadingGroup = cmds.ls('aiStandard1SG')[0]
numOfCustomAOVs = cmds.getAttr(shadingGroup+'.aiCustomAOVs', size=1)
print 'Number of custom AOVs %d' % (numOfCustomAOVs)

Tags: 代码defaultmessageoutputscolorprint着色cmds