def exportShaders(self): """export custom shaders from scene, ex: shaders for masks etc...""" lays = rlayer.renderlayers() finalExport = [] for l in lays: if l.name == 'defaultRenderLayer': continue if l.overridedShader: finalExport.append( l.overridedShader ) else: if l.overridesWithConnections[1]: finalExport.extend( l.overridesWithConnections[1] ) if finalExport: shadersToExport = [] for i in finalExport: if mc.referenceQuery( i, inr = True ) or i in shadersToExport: #is a referenced node continue if mc.referenceQuery( i.a.surfaceShader.input, inr = True ): #check if shader is a reference continue if i.a.displacementShader.input: if mc.referenceQuery( i.a.displacementShader.input, inr = True ): #check if displacement is a reference continue shadersToExport.append( i ) mc.select( shadersToExport, r = 1, ne = 1 ) mc.file( self.shaderPath.path, op = "v=0", typ = "mayaAscii", pr = 1, es = 1 )
def exportData(self): """export data from scene, objects overrides in renderlayers.. etc""" lays = rlayer.renderlayers() data = {} for l in lays: if l.name == 'defaultRenderLayer': continue data[l.name] = {'objects':l.objects, # OBJECTS IN LAYER 'values' :l.overridesWithValues, # OVERRIDED ATTRIBUTES ONLY CHANGED VALUES 'conns' :l.overridesWithConnections[0], # OVERRIDED ATTRIBUTES CHANGED CONNECTIONS 'shader' :l.overridedShader # OVERRIDE RENDERLAYER SHADER } pickle.dump( data, open( self.dataPath.path, "wb" ) )
def _fillLayers(self): """fill ui with render layers""" for r in rlayer.renderlayers(): if ':defaultRenderLayer' in r.name: continue self.renderLayers_lay.addWidget( RenderLayerUI( r ) )