def createShader(cls, name, path, *args, **kwargs): """ 'name' is the name you want to give the shader 'path' is the filepath with .cgfx file """ plugin.reloadPlugin('cgfxShader', True) shaderCGFX = pm.shadingNode('cgfxShader', asShader=True, name=name+'_CGFX_01' ) SG = pm.sets(renderable=True, noSurfaceShader=True, empty=True, name=(shaderCGFX+'_SG') ) pm.connectAttr(shaderCGFX.outColor, SG.surfaceShader, force=True) pm.cgfxShader(shaderCGFX, edit=True, fx=path) #this will fail if the cgfxShader plugin is not loaded return shaderCGFX
def repathShader(cls, shader, newPath, *args, **kwargs): """ reload the shader from a new path """ cgfxFile = pm.getAttr(shader+'.shader') if cgfxFile: pm.cgfxShader(shader, edit=True, fx=path.repath(cgfxFile, newPath) )
def reloadShader(cls, shader, *args, **kwargs): """ reload the cgfx shader file """ cgfxFile = pm.getAttr(shader+'.shader') if cgfxFile: pm.cgfxShader(shader, edit=True, fx=cgfxFile)