Exemplo n.º 1
0
    def createShaders(self):
        """Create only once the different shaders used to bake for the different modes"""
        if not self.prepared:
            # OCC
            self.occ = cmds.createNode('ilrOccSampler') # create shader
            self.occSG = cmds.sets(renderable=True, noSurfaceShader=True, empty=True, name=self.occ + 'SG')
            cmds.connectAttr(self.occ + '.outColor', self.occSG + '.surfaceShader', force=True)

            # THICKNESS
            thickShader = cmds.shadingNode('surfaceShader', asShader=True)
            self.thickSG = cmds.sets(renderable=True, noSurfaceShader=True, empty=True, name=thickShader + 'SG')
            cmds.connectAttr(thickShader + '.outColor', self.thickSG + '.surfaceShader', force=True)
            self.thick = cmds.shadingNode('ilrSurfaceThickness', asUtility=True)
            cmds.connectAttr(self.thick + '.outThickness', thickShader + '.outColor', force=True)

            # DIRT
            nodes = cmds.file('path_to_your_file_shader.ma', reference=True, returnNewNodes=True, namespace='DIRT')
            self.dirt = cmds.ls(nodes, type='surfaceShader')[0]
            self.dirtSG = tdLib.getFirstItem(cmds.listConnections(self.dirt + '.outColor', source=False))
            if not self.dirtSG:
                self.dirtSG = cmds.sets(renderable=True, noSurfaceShader=True, empty=True, name=self.dirt + 'SG')
                cmds.connectAttr(self.dirt + '.outColor', self.dirtSG + '.surfaceShader', force=True)
            self.dirt = self.dirtSG

            # RGB
            self.rgb = cmds.shadingNode('surfaceShader', asShader=True)
            self.rgbSG = cmds.sets(renderable=True, noSurfaceShader=True, empty=True, name=self.rgb + 'SG')
            cmds.connectAttr(self.rgb + '.outColor', self.rgbSG + '.surfaceShader', force=True)

            self.prepared = True
Exemplo n.º 2
0
    def createShaders(self):
        """Create only once the different shaders used to bake for the different modes"""
        if not self.prepared:
            # OCC
            self.occ = cmds.createNode('ilrOccSampler')  # create shader
            self.occSG = cmds.sets(renderable=True,
                                   noSurfaceShader=True,
                                   empty=True,
                                   name=self.occ + 'SG')
            cmds.connectAttr(self.occ + '.outColor',
                             self.occSG + '.surfaceShader',
                             force=True)

            # THICKNESS
            thickShader = cmds.shadingNode('surfaceShader', asShader=True)
            self.thickSG = cmds.sets(renderable=True,
                                     noSurfaceShader=True,
                                     empty=True,
                                     name=thickShader + 'SG')
            cmds.connectAttr(thickShader + '.outColor',
                             self.thickSG + '.surfaceShader',
                             force=True)
            self.thick = cmds.shadingNode('ilrSurfaceThickness',
                                          asUtility=True)
            cmds.connectAttr(self.thick + '.outThickness',
                             thickShader + '.outColor',
                             force=True)

            # DIRT
            nodes = cmds.file('path_to_your_file_shader.ma',
                              reference=True,
                              returnNewNodes=True,
                              namespace='DIRT')
            self.dirt = cmds.ls(nodes, type='surfaceShader')[0]
            self.dirtSG = tdLib.getFirstItem(
                cmds.listConnections(self.dirt + '.outColor', source=False))
            if not self.dirtSG:
                self.dirtSG = cmds.sets(renderable=True,
                                        noSurfaceShader=True,
                                        empty=True,
                                        name=self.dirt + 'SG')
                cmds.connectAttr(self.dirt + '.outColor',
                                 self.dirtSG + '.surfaceShader',
                                 force=True)
            self.dirt = self.dirtSG

            # RGB
            self.rgb = cmds.shadingNode('surfaceShader', asShader=True)
            self.rgbSG = cmds.sets(renderable=True,
                                   noSurfaceShader=True,
                                   empty=True,
                                   name=self.rgb + 'SG')
            cmds.connectAttr(self.rgb + '.outColor',
                             self.rgbSG + '.surfaceShader',
                             force=True)

            self.prepared = True
import lib.lib as tdLib


OBJS = []
OBJSCOPY = []

selection = cmds.ls(sl=True, dagObjects=True)
selection = cmds.ls(selection, shapes=True)


for sel in selection:
    try:
        ncloth = tdLib.getFirstItem(cmds.listConnections(sel + '.inMesh', source=True, shapes=True))
        shape = tdLib.getFirstItem(cmds.listConnections(ncloth + '.inputMesh', source=True, shapes=True))
        OBJS.append(shape)
        OBJSCOPY.append(sel)
    except TypeError:
        pass


shadingGroups = list(tdLib.flatten([tdLib.getSGsFromShape(i) for i in OBJS]))
shaders = [tdLib.getMaterialFromSG(i) for i in shadingGroups]
assignation = {}
for i in shaders:
    assignation[i] = tdLib.getShaderAssignation(i)


objs = {}
for i, u in zip(OBJS, OBJSCOPY):
    objs[i] = u
import lib.lib as tdLib

OBJS = []
OBJSCOPY = []

selection = cmds.ls(sl=True, dagObjects=True)
selection = cmds.ls(selection, shapes=True)

for sel in selection:
    try:
        ncloth = tdLib.getFirstItem(
            cmds.listConnections(sel + '.inMesh', source=True, shapes=True))
        shape = tdLib.getFirstItem(
            cmds.listConnections(ncloth + '.inputMesh',
                                 source=True,
                                 shapes=True))
        OBJS.append(shape)
        OBJSCOPY.append(sel)
    except TypeError:
        pass

shadingGroups = list(tdLib.flatten([tdLib.getSGsFromShape(i) for i in OBJS]))
shaders = [tdLib.getMaterialFromSG(i) for i in shadingGroups]
assignation = {}
for i in shaders:
    assignation[i] = tdLib.getShaderAssignation(i)

objs = {}
for i, u in zip(OBJS, OBJSCOPY):
    objs[i] = u