def unregister(): logger.info("Unregistering appleseed renderer.") # XGen try: import xgenm as xg xg.deregisterCallback("RenderAPIRendererTabUIInit" , "appleseedMaya.xgenseedui.xgseedUI" ) xg.deregisterCallback("RenderAPIRendererTabUIRefresh", "appleseedMaya.xgenseedui.xgseedRefresh" ) xg.deregisterCallback("PostDescriptionCreate" , "appleseedMaya.xgenseedui.xgseedOnCreateDescription" ) xg.deregisterCallback("ArchiveExport" , "appleseedMaya.xgenseed.xgseedArchiveExport") xg.deregisterCallback("ArchiveExportInfo", "appleseedMaya.xgenseed.xgseedArchiveExportInfo") xg.deregisterCallback("ArchiveExportInit", "appleseedMaya.xgenseed.xgseedArchiveExportInit") logger.info("appleseedMaya: uninitialized xgenseed") except Exception as e: logger.info("appleseedMaya: could not uninitialize xgenseed. error = %s" % e) if om.MGlobal.mayaState() == om.MGlobal.kInteractive: deleteMenu() pm.callbacks(clearCallbacks=True, owner="appleseed") removeRenderGlobalsScriptJobs() if pm.renderer("appleseed", q=True, ex=True): pm.renderer("appleseed", unregisterRenderer=True)
def unregister(): logger.info("Unregistering appleseed renderer.") deleteMenu() pm.callbacks(clearCallbacks=True, owner="appleseed") if pm.renderer("appleseed", q=True, ex=True): pm.renderer("appleseed", unregisterRenderer=True)
def renderSettingsBuiltCallback(renderer): logger.debug("appleseedRenderSettingsBuilt called!") pm.renderer("appleseed", edit=True, addGlobalsTab=("Common", "createMayaSoftwareCommonGlobalsTab", "appleseedUpdateCommonTabProcedure")) pm.renderer("appleseed", edit=True, addGlobalsTab=("Appleseed", "appleseedCreateAppleseedTabProcedure", "appleseedUpdateAppleseedTabProcedure"))
def renderBuildSettingsCallback(renderer): pm.renderer("customMayaRenderer", edit=True, addGlobalsTab=("Common", "createMayaSoftwareCommonGlobalsTab", "customMayaRendererUpdateCommonTabProcedure")) pm.renderer("customMayaRenderer", edit=True, addGlobalsTab=("CustomMayaRenderer", "customMayaRendererCreateMainTabProcedure", "customMayaRendererEmptyUpdateProcedure"))
def unloadAndUnregister(): if pm.pluginInfo('mayatomantra', q = True, l=True): pm.unloadPlugin('mayatomantra', force = True) if pm.renderer(RENDERERNAME, q = True, exists = True): pm.renderer(RENDERERNAME, unregisterRenderer = True) pm.loadPlugin( 'mayatomantra' ) if len(pm.ls(type = GLOBALSNAME)) == 0: pm.createNode(GLOBALSNAME, name = GLOBALSNAME) else: log.info("mayaToMantraGlobals node exists, using old one")
def registerRenderer(): mel.eval(""" global proc cycles_render_callback(int $width, int $height, int $doShadows, int $doGlowPass, string $camera, string $option) { python("import mtoc.cyclesOptions;mtoc.cyclesOptions.createDefault('defaultCyclesOptions')"); cycles_render -w $width -h $height -cam $camera; } """) core.renderer('cycles_renderer', rendererUIName = 'Cycles', renderProcedure = 'cycles_render_callback', addGlobalsTab = ('Common', "createMayaSoftwareCommonGlobalsTab", "updateMayaSoftwareCommonGlobalsTab"), addGlobalsNode = 'defaultCyclesOptions')
def _availableRenderer(self): """ Returns available renderers in Maya @return Returns available renderers in Maya @rtype: list """ return pmc.renderer(q=True, ava=True)
def registerArnoldRenderer(): try: alreadyRegistered = pm.renderer('arnold', exists=True) if not alreadyRegistered: pm.evalDeferred(_register) # AE Templates # the following must occur even in batch mode because they contain calls to registerDefaultTranslator pm.evalDeferred(aeUtils.loadAETemplates) import rendererCallbacks rendererCallbacks.registerCallbacks() import mtoa.ui.ae.customShapeAttributes import mtoa.ui.ae.customShaderTemplates if not pm.about(batch=True): # Reload the AE Window if it has already been opened pm.evalDeferred(aeUtils.rebuildAE) # create the Arnold menu createArnoldMenu() # version specific overrides or additions _overridePythonScripts() _overrideMelScripts() # Add option box for file translator utils.pyToMelProc(exportass.arnoldAssOpts, [('string', 'parent'), ('string', 'action'), ('string', 'initialSettings'), ('string', 'resultCallback')], useName=True) # callbacks import mtoa.core as core core.installCallbacks() core.MTOA_GLOBALS['COMMAND_PORT'] = None import maya.cmds as cmds if not pm.about(batch=True): commandPortBase = 4700 try: commandPortBase = int(os.environ['MTOA_COMMAND_PORT']) except: commandPortBase = 4700 # opening a command port for different tools and maya batch progress messages for port in range(commandPortBase, commandPortBase + 100): commandPortName = ':%i' % port try: cmds.commandPort(name=commandPortName) core.MTOA_GLOBALS['COMMAND_PORT'] = port break except: pass if not pm.about(batch=True): pm.evalDeferred(arnoldShelf.createArnoldShelf) except: import traceback traceback.print_exc(file=sys.__stderr__) raise
def addOneTabToGlobalsWindow(self, renderer, tabLabel, createProc): # no windows no need to call if not pm.window('unifiedRenderGlobalsWindow', exists=True): return displayAllTabs = pm.mel.isDisplayingAllRendererTabs() if not displayAllTabs and pm.SCENE.defaultRenderGlobals.currentRenderer.get() != renderer: return # Set the correct tabLayout parent. if displayAllTabs: tabLayoutName = pm.mel.getRendererTabLayout(pm.melGlobals['gMasterLayerRendererName']) else: tabLayoutName = pm.mel.getRendererTabLayout(renderer) # Hide the tabForm while updating. tabFormManagedStatus = pm.formLayout('tabForm', q=True, manage=True) pm.formLayout('tabForm', edit=True, manage=False) pm.setParent('tabForm') if displayAllTabs: tabLayoutName = pm.mel.getRendererTabLayout(pm.melGlobals['gMasterLayerRendererName']) else: tabLayoutName = pm.mel.getRendererTabLayout(renderer) pm.setParent(tabLayoutName) tabName = pm.mel.rendererTabName(renderer, tabLabel) commonTabNames = { 'Common' : "m_unifiedRenderGlobalsWindow.kCommon", 'Passes' : "m_unifiedRenderGlobalsWindow.kPassesTab", 'Maya Software' : "m_unifiedRenderGlobalsWindow.kMayaSoftware", 'Maya Hardware' : "m_unifiedRenderGlobalsWindow.kMayaHardware", 'Maya Vector' : "m_unifiedRenderGlobalsWindow.kMayaVector", 'Features' : "m_unifiedRenderGlobalsWindow.kFeatures", 'Quality' : "m_unifiedRenderGlobalsWindow.kQuality", 'Indirect Lighting' : "m_unifiedRenderGlobalsWindow.kIndirectLighting", 'Options' : "m_unifiedRenderGlobalsWindow.kOptions" } if commonTabNames.has_key(tabLabel): tabLabel = pm.mel.uiRes(commonTabNames[tabLabel]) if not pm.layout(tabName, exists=True): pm.setUITemplate('renderGlobalsTemplate', pushTemplate=True) pm.setUITemplate('attributeEditorTemplate', pushTemplate=True) pm.formLayout(tabName) createProcs = ['createMayaSoftwareCommonGlobalsTab', 'createMayaSoftwareGlobalsTab'] try: createProcs.extend(pm.renderer(renderer, q=True, globalsTabCreateProcNames=True)) except: pass if createProc in createProcs: pm.mel.eval(createProc) pm.setParent('..') pm.setUITemplate(popTemplate=True) pm.setUITemplate(popTemplate=True) pm.tabLayout(tabLayoutName, edit=True, tabLabel=(tabName, tabLabel)) pm.formLayout('tabForm', edit=True, manage=tabFormManagedStatus)
def __init__(self, **kwargs): script_name = pm.sceneName() _, ext = os.path.splitext(script_name) if ext == '.mb': pm.confirmDialog( message= "There is no option to export on render farm the *.mb file. Please, save file as Maya ASCII and try again.", button=["ok"]) raise Exception("File must be MAYA ASCII") self._assembly = kwargs.get('assembly', False) if self._assembly == True: if pm.renderer('redshift', exists=True) == 0: pm.confirmDialog( message= "Render shaded option uses Redshift renderer. Please, turn on redshift renderer and try again.", button=["ok"]) raise Exception("Turn on REDSHIFT") if int(pm.playbackOptions(q=True, min=True)) < 0: pm.confirmDialog( message="Negative frames are not supported. Sorry...", button=["ok"]) raise Exception("Negative frames are not supported") self._errors = {} self._exportables = kwargs.get('export_extensions', []) self._json_rig = None self._usd_step_frame = kwargs.get('usd_step_frame', 20) self._nodes = [] self._graph = HaGraph(graph_items_args=[]) self._graph.set_render(kwargs.get('render', SlurmRender.SlurmRender)) self._jobname_hash = random_hash_string() script_name = pm.sceneName() _, name = os.path.split(script_name) self.scene_name = name self._export_sets = {} self.basename, ext = os.path.splitext(name) self.tempdir = tempfile.mkdtemp(prefix="_".join( [os.getlogin(), self.scene_name, self._jobname_hash + "_"]), dir=SCRATCH) os.chmod(self.tempdir, 0o0777) self.assembly_json = AssemblyJson() self.global_params = dict( queue='3d', group='allhosts', start_frame=int(pm.playbackOptions(q=True, min=True)), end_frame=int(pm.playbackOptions(q=True, max=True)), job_on_hold=kwargs.get('job_on_hold', False), priority=-500, jobname=self.scene_name, exclude_list=[], usd_step_frame=self._usd_step_frame, assembly_json_file=self.tempdir + os.sep + "assembly.json")
def registerRenderer(): mel.eval(""" global proc cycles_render_callback(int $width, int $height, int $doShadows, int $doGlowPass, string $camera, string $option) { python("import mtoc.cyclesOptions;mtoc.cyclesOptions.createDefault('defaultCyclesOptions')"); cycles_render -w $width -h $height -cam $camera; } """) core.renderer('cycles_renderer', rendererUIName='Cycles', renderProcedure='cycles_render_callback', addGlobalsTab=('Common', "createMayaSoftwareCommonGlobalsTab", "updateMayaSoftwareCommonGlobalsTab"), addGlobalsNode='defaultCyclesOptions')
def unregister(): logger.info("Unregistering appleseed renderer.") # XGen try: import xgenm as xg for h, c in asXGenCallbacks: xg.deregisterCallback(h, c) logger.info("appleseedMaya: uninitialized xgenseed") except Exception as e: logger.info( "appleseedMaya: could not uninitialize xgenseed. error = %s" % e) if om.MGlobal.mayaState() == om.MGlobal.kInteractive: deleteMenu() pm.callbacks(clearCallbacks=True, owner="appleseed") removeRenderGlobalsScriptJobs() if pm.renderer("appleseed", q=True, ex=True): pm.renderer("appleseed", unregisterRenderer=True)
def addTabs(self): pm.renderer(self.rendererName, edit=True, addGlobalsTab=self.renderTabMelProcedure("CommonGlobals")) pm.renderer(self.rendererName, edit=True, addGlobalsTab=self.renderTabMelProcedure("Renderer")) self.addUserTabs() pm.renderer(self.rendererName, edit=True, addGlobalsTab=self.renderTabMelProcedure("Translator"))
def getVRaySettingsNode(): """ Create vraySettings node without UI credit gose to Stas Poritskiy http://stascrash.com http://forums.cgsociety.org/showthread.php?t=1266983 """ # check vray plugin loaded if not pm.pluginInfo('vrayformaya', q=1, l=1): pm.loadPlugin('vrayformaya') # Get Render-Node vraySetNode = pm.ls(type='VRaySettingsNode') if not vraySetNode: # Try and register vray try: pm.renderer('vray') except RuntimeError: print "Vray already Registered" # Collect all vray-Attributes globalsTabLabels = pm.renderer('vray', query=True, globalsTabLabels=True) globalsTabCreateProcNames = pm.renderer('vray', query=True, globalsTabCreateProcNames=True) globalsTabUpdateProcNames = pm.renderer('vray', query=True, globalsTabUpdateProcNames=True) # Construct Vray-Renderer for tab_id in range(len(globalsTabLabels)): pm.renderer('vray', edit=True, addGlobalsTab=[ str(globalsTabLabels[tab_id]), str(globalsTabCreateProcNames[tab_id]), str(globalsTabUpdateProcNames[tab_id]) ]) # Create DAG for VRAYSETTINGS pm.shadingNode('VRaySettingsNode', asUtility=True, name='vraySettings') return pm.PyNode('vraySettings')
def register(): pm.renderer("AtlasRenderer", rendererUIName="Atlas Renderer") pm.renderer("AtlasRenderer", edit=True, renderProcedure="AtlasRenderProcedureProxy") createRenderingMelProxy() createRenderTabsMelProcedure() renderBuildSettingsCallback("AtlasRenderer") pm.renderer("AtlasRenderer", edit=True, addGlobalsNode="defaultRenderGlobals") pm.renderer("AtlasRenderer", edit=True, addGlobalsNode="AtlasRendererGlobalsNode") pm.callbacks(addCallback=renderBuildSettingsCallback, hook="renderSettingsBuilt", owner="AtlasRenderer") addRenderGlobalsScriptJob()
def register(): pm.renderer("customMayaRenderer", rendererUIName="Custom Maya Renderer") createRenderMelProcedure() pm.renderer("customMayaRenderer", edit=True, renderProcedure="customMayaRendererRenderProcedureProxy", renderRegionProcedure="mayaRenderRegion") createRenderTabsMelProcedure() renderBuildSettingsCallback("customMayaRenderer") pm.renderer("customMayaRenderer", edit=True, addGlobalsNode="defaultRenderGlobals") pm.renderer("customMayaRenderer", edit=True, addGlobalsNode="customMayaRendererGlobalsNode") pm.callbacks(addCallback=renderBuildSettingsCallback, hook="renderSettingsBuilt", owner="customMayaRenderer") addRenderGlobalsScriptJob()
def _register(): args = {} args['renderProcedure'] = utils.pyToMelProc(arnoldRender.arnoldRender, [('int', 'width'), ('int', 'height'), ('int', 'doShadows'), ('int', 'doGlowPass'), ('string', 'camera'), ('string', 'options')]) args['renderRegionProcedure'] = 'mayaRenderRegion' args['commandRenderProcedure'] = utils.pyToMelProc( arnoldRender.arnoldBatchRender, [('string', 'option')]) args['batchRenderProcedure'] = utils.pyToMelProc( arnoldRender.arnoldBatchRender, [('string', 'option')]) args['batchRenderOptionsStringProcedure'] = utils.pyToMelProc( arnoldRender.arnoldBatchRenderOptionsString, returnType='string') args['cancelBatchRenderProcedure'] = utils.pyToMelProc( arnoldRender.arnoldBatchStop) args['iprRenderProcedure'] = utils.pyToMelProc( arnoldRender.arnoldIprRender, [('int', 'width'), ('int', 'height'), ('int', 'doShadows'), ('int', 'doGlowPass'), ('string', 'camera')]) args['isRunningIprProcedure'] = utils.pyToMelProc( arnoldRender.arnoldIprIsRunning, returnType='int') args['startIprRenderProcedure'] = utils.pyToMelProc( arnoldRender.arnoldIprStart, [('string', 'editor'), ('int', 'resolutionX'), ('int', 'resolutionY'), ('string', 'camera')]) args['stopIprRenderProcedure'] = utils.pyToMelProc( arnoldRender.arnoldIprStop) args['refreshIprRenderProcedure'] = utils.pyToMelProc( arnoldRender.arnoldIprRefresh) args['pauseIprRenderProcedure'] = utils.pyToMelProc( arnoldRender.arnoldIprPause, [('string', 'editor'), ('int', 'pause')]) args['changeIprRegionProcedure'] = utils.pyToMelProc( arnoldRender.arnoldIprChangeRegion, [('string', 'renderPanel')]) pm.renderer('arnold', rendererUIName='Arnold Renderer', **args) pm.renderer( 'arnold', edit=True, addGlobalsTab=('Common', utils.pyToMelProc(createArnoldRendererCommonGlobalsTab, useName=True), utils.pyToMelProc(updateArnoldRendererCommonGlobalsTab, useName=True))) pm.renderer( 'arnold', edit=True, addGlobalsTab=('Arnold Renderer', utils.pyToMelProc(createArnoldRendererGlobalsTab, useName=True), utils.pyToMelProc(updateArnoldRendererGlobalsTab, useName=True))) pm.renderer('arnold', edit=True, addGlobalsTab=('System', utils.pyToMelProc(createArnoldRendererSystemTab, useName=True), utils.pyToMelProc(updateArnoldRendererSystemTab, useName=True))) pm.renderer('arnold', edit=True, addGlobalsTab=('AOVs', utils.pyToMelProc(createArnoldAOVTab, useName=True), utils.pyToMelProc(updateArnoldAOVTab, useName=True))) pm.renderer( 'arnold', edit=True, addGlobalsTab=('Diagnostics', utils.pyToMelProc(createArnoldRendererDiagnosticsTab, useName=True), utils.pyToMelProc(updateArnoldRendererDiagnosticsTab, useName=True))) pm.renderer( 'arnold', edit=True, addGlobalsTab=('Override', utils.pyToMelProc(createArnoldRendererOverrideTab, useName=True), utils.pyToMelProc(updateArnoldRendererOverrideTab, useName=True))) pm.renderer('arnold', edit=True, addGlobalsNode='defaultArnoldRenderOptions') utils.pyToMelProc(updateBackgroundSettings, useName=True) utils.pyToMelProc(updateAtmosphereSettings, useName=True) #We have to source this file otherwise maya will override #our mel proc overrides below. # pm.mel.source('createMayaSoftwareCommonGlobalsTab.mel') utils.pyToMelProc(addOneTabToGlobalsWindow, [('string', 'renderer'), ('string', 'tabLabel'), ('string', 'createProc')], useName=True) utils.pyToMelProc(renderSettingsTabLabel_melToUI, [('string', 'mel')], useName=True) utils.pyToMelProc(updateMayaImageFormatControl, useName=True)
def unregisterRenderer(): cyclesOptions.deleteDefault('defaultCyclesOptions') core.renderer('cycles_renderer', unr=True)
def unregister(): if pm.renderer(RENDERERNAME, q = True, exists = True): pm.renderer(RENDERERNAME, unregisterRenderer = True)
def registerRenderer(self): self.unRegisterRenderer() self.registerNodeExtensions() self.registerAETemplateCallbacks() pm.renderer(self.rendererName, rendererUIName=self.rendererName) pm.renderer(self.rendererName, edit=True, renderProcedure=self.makeMelProcFromPythonCmd(self.renderProcedure, [('int', 'width'), ('int', 'height'), ('int', 'doShadows'), ('int', 'doGlow'), ('string', 'camera'), ('string', 'options')])) pm.renderer(self.rendererName, edit=True, batchRenderProcedure=self.makeMelProcFromPythonCmd(self.batchRenderProcedure, [('string', 'options')])) pm.renderer(self.rendererName, edit=True, commandRenderProcedure=self.makeMelProcFromPythonCmd(self.batchRenderProcedure, [('string', 'options')])) pm.renderer(self.rendererName, edit=True, batchRenderOptionsProcedure=self.renderCallback("batchRenderOptionsProcedure")) pm.renderer(self.rendererName, edit=True, batchRenderOptionsStringProcedure=self.renderCallback("batchRenderOptionsStringProcedure")) pm.renderer(self.rendererName, edit=True, addGlobalsNode="defaultRenderGlobals") pm.renderer(self.rendererName, edit=True, addGlobalsNode="defaultResolution") pm.renderer(self.rendererName, edit=True, addGlobalsNode=self.renderGlobalsNodeName) pm.renderer(self.rendererName, edit=True, startIprRenderProcedure=self.makeMelProcFromPythonCmd(self.startIprRenderProcedure, [('string', 'editor'), ('int', 'resolutionX'), ('int', 'resolutionY'), ('string', 'camera')])) pm.renderer(self.rendererName, edit=True, stopIprRenderProcedure=self.makeMelProcFromPythonCmd(self.stopIprRenderProcedure, [])) pm.renderer(self.rendererName, edit=True, pauseIprRenderProcedure=self.makeMelProcFromPythonCmd(self.pauseIprRenderProcedure, [('string', 'editor'), ('int', 'pause')])) pm.renderer(self.rendererName, edit=True, changeIprRegionProcedure=self.makeMelProcFromPythonCmd(self.changeIprRegionProcedure, [('string', 'editor')])) pm.renderer(self.rendererName, edit=True, iprRenderProcedure=self.renderCallback("iprRenderProcedure")) pm.renderer(self.rendererName, edit=True, isRunningIprProcedure=self.renderCallback("isRunningIprProcedure")) pm.renderer(self.rendererName, edit=True, refreshIprRenderProcedure=self.renderCallback("refreshIprRenderProcedure")) pm.renderer(self.rendererName, edit=True, logoImageName=self.rendererName + ".png") pm.renderer(self.rendererName, edit=True, renderDiagnosticsProcedure=self.renderCallback("renderDiagnosticsProcedure")) pm.renderer(self.rendererName, edit=True, renderOptionsProcedure=self.renderCallback("renderOptionsProcedure")) pm.renderer(self.rendererName, edit=True, cancelBatchRenderProcedure=self.renderCallback("cancelBatchRenderProcedure")) pm.renderer(self.rendererName, edit=True, showBatchRenderProcedure=self.renderCallback("showBatchRenderProcedure")) pm.renderer(self.rendererName, edit=True, showRenderLogProcedure=self.renderCallback("showRenderLogProcedure")) pm.renderer(self.rendererName, edit=True, showBatchRenderLogProcedure=self.renderCallback("showBatchRenderLogProcedure")) pm.renderer(self.rendererName, edit=True, textureBakingProcedure=self.renderCallback("textureBakingProcedure")) pm.renderer(self.rendererName, edit=True, renderRegionProcedure="mayaRenderRegion") scriptDir = path.path(__file__).dirname().parent pm.mel.eval('global string $gImageFormatData[]; $gImageFormatData = {};') pm.mel.eval('global string $gPLEImageFormatData[]; $gPLEImageFormatData = {};') pm.mel.eval('global string $gPLEImageFormatData_Mental[]; $gPLEImageFormatData_Mental = {};') pm.mel.source('createMayaSoftwareCommonGlobalsTab') pm.mel.source("unifiedRenderGlobalsWindow") self.defineCommonMelProcedures() pm.evalDeferred(self.addTabs)
def registerRenderer(self): log.debug("registerRenderer") self.unRegisterRenderer() self.registerNodeExtensions() self.registerAETemplateCallbacks() pm.renderer(self.rendererName, rendererUIName=self.rendererName) pm.renderer(self.rendererName, edit=True, renderProcedure=self.makeMelProcFromPythonCmd(self.renderProcedure, [('int', 'width'), ('int', 'height'), ('int', 'doShadows'), ('int', 'doGlow'), ('string', 'camera'), ('string', 'options')])) pm.renderer(self.rendererName, edit=True, batchRenderProcedure=self.makeMelProcFromPythonCmd(self.batchRenderProcedure, [('string', 'options')])) pm.renderer(self.rendererName, edit=True, commandRenderProcedure=self.makeMelProcFromPythonCmd(self.batchRenderProcedure, [('string', 'options')])) #pm.renderer(self.rendererName, edit=True, batchRenderProcedure=self.renderCallback("batchRenderProcedure")) #pm.renderer(self.rendererName, edit=True, commandRenderProcedure=self.renderCallback("commandRenderProcedure")) pm.renderer(self.rendererName, edit=True, batchRenderOptionsProcedure=self.renderCallback("batchRenderOptionsProcedure")) pm.renderer(self.rendererName, edit=True, batchRenderOptionsStringProcedure=self.renderCallback("batchRenderOptionsStringProcedure")) pm.renderer(self.rendererName, edit=True, addGlobalsNode="defaultRenderGlobals") pm.renderer(self.rendererName, edit=True, addGlobalsNode="defaultResolution") pm.renderer(self.rendererName, edit=True, addGlobalsNode=self.renderGlobalsNodeName) pm.renderer(self.rendererName, edit=True, startIprRenderProcedure=self.makeMelProcFromPythonCmd(self.startIprRenderProcedure, [('string', 'editor'), ('int', 'resolutionX'), ('int', 'resolutionY'), ('string', 'camera')])) pm.renderer(self.rendererName, edit=True, stopIprRenderProcedure=self.makeMelProcFromPythonCmd(self.stopIprRenderProcedure, [])) pm.renderer(self.rendererName, edit=True, pauseIprRenderProcedure=self.makeMelProcFromPythonCmd(self.pauseIprRenderProcedure, [('string', 'editor'), ('int', 'pause')])) pm.renderer(self.rendererName, edit=True, changeIprRegionProcedure=self.renderCallback("changeIprRegionProcedure")) pm.renderer(self.rendererName, edit=True, iprOptionsProcedure=self.renderCallback("iprOptionsProcedure")) pm.renderer(self.rendererName, edit=True, iprOptionsMenuLabel=self.renderCallback("iprOptionsMenuLabel")) pm.renderer(self.rendererName, edit=True, iprRenderProcedure=self.renderCallback("iprRenderProcedure")) pm.renderer(self.rendererName, edit=True, iprRenderSubMenuProcedure=self.renderCallback("iprRenderSubMenuProcedure")) pm.renderer(self.rendererName, edit=True, isRunningIprProcedure=self.renderCallback("isRunningIprProcedure")) pm.renderer(self.rendererName, edit=True, refreshIprRenderProcedure=self.renderCallback("refreshIprRenderProcedure")) pm.renderer(self.rendererName, edit=True, logoCallbackProcedure=self.renderCallback("logoCallbackProcedure")) pm.renderer(self.rendererName, edit=True, logoImageName=self.rendererName + ".png") pm.renderer(self.rendererName, edit=True, renderDiagnosticsProcedure=self.renderCallback("renderDiagnosticsProcedure")) pm.renderer(self.rendererName, edit=True, renderOptionsProcedure=self.renderCallback("renderOptionsProcedure")) pm.renderer(self.rendererName, edit=True, cancelBatchRenderProcedure=self.renderCallback("cancelBatchRenderProcedure")) pm.renderer(self.rendererName, edit=True, showBatchRenderProcedure=self.renderCallback("showBatchRenderProcedure")) pm.renderer(self.rendererName, edit=True, showRenderLogProcedure=self.renderCallback("showRenderLogProcedure")) pm.renderer(self.rendererName, edit=True, showBatchRenderLogProcedure=self.renderCallback("showBatchRenderLogProcedure")) pm.renderer(self.rendererName, edit=True, textureBakingProcedure=self.renderCallback("textureBakingProcedure")) pm.renderer(self.rendererName, edit=True, renderingEditorsSubMenuProcedure=self.renderCallback("renderingEditorsSubMenuProcedure")) pm.renderer(self.rendererName, edit=True, renderMenuProcedure=self.renderCallback("renderMenuProcedure")) pm.renderer(self.rendererName, edit=True, renderRegionProcedure="mayaRenderRegion") pm.renderer(self.rendererName, edit=True, addGlobalsTab=('Common', "createMayaSoftwareCommonGlobalsTab", "updateMayaSoftwareCommonGlobalsTab")) #self.overwriteUpdateMayaImageFormatControl() # because mentalray is still hardcoded in the maya scripts, I cannot simply use my own commons without replacing some original scripts # so I use the defaults #pm.renderer(self.rendererName, edit=True, addGlobalsTab=self.renderTabMelProcedure("OpenMayaCommonGlobals")) # my own tabs pm.renderer(self.rendererName, edit=True, addGlobalsTab=self.renderTabMelProcedure("Renderer")) self.addUserTabs() pm.renderer(self.rendererName, edit=True, addGlobalsTab=self.renderTabMelProcedure("Translator")) pm.mel.source('createMayaSoftwareCommonGlobalsTab.mel') #pm.evalDeferred(self.overwriteUpdateMayaImageFormatControl) self.overwriteUpdateMayaImageFormatControl() log.debug("RegisterRenderer done")
def addTabs(self): pm.renderer(self.rendererName, edit=True, addGlobalsTab=self.renderTabMelProcedure("CommonGlobals")) pm.renderer(self.rendererName, edit=True, addGlobalsTab=self.renderTabMelProcedure("Renderer")) pm.renderer(self.rendererName, edit=True, addGlobalsTab=self.renderTabMelProcedure("Environment")) pm.renderer(self.rendererName, edit=True, addGlobalsTab=self.renderTabMelProcedure("Translator"))
def register(): logger.info("Registering appleseed renderer.") # Register render. pm.renderer("appleseed", rendererUIName="appleseed") createRenderMelProcedures() # Final Render procedures. pm.renderer( "appleseed", edit=True, renderProcedure="appleseedRenderProcedure", commandRenderProcedure="appleseedBatchRenderProcedure", batchRenderProcedure="appleseedBatchRenderProcedure", cancelBatchRenderProcedure="appleseedCancelBatchRenderProcedure", renderRegionProcedure="mayaRenderRegion") # Ipr Render procedures. pm.renderer( "appleseed", edit=True, iprRenderProcedure="appleseedIprRenderProcedure", isRunningIprProcedure="appleseedIsRunningIprRenderProcedure", startIprRenderProcedure="appleseedStartIprRenderProcedure", stopIprRenderProcedure="appleseedStopIprRenderProcedure", refreshIprRenderProcedure="appleseedRefreshIprRenderProcedure", pauseIprRenderProcedure="appleseedPauseIprRenderProcedure", changeIprRegionProcedure="appleseedChangeIprRegionProcedure", ) # Globals createRenderTabsMelProcedures() renderSettingsBuiltCallback('appleseed') pm.renderer("appleseed", edit=True, addGlobalsNode="defaultRenderGlobals") pm.renderer("appleseed", edit=True, addGlobalsNode="defaultResolution") pm.renderer("appleseed", edit=True, addGlobalsNode="appleseedRenderGlobals") pm.callbacks(addCallback=renderSettingsBuiltCallback, hook="renderSettingsBuilt", owner="appleseed") addRenderGlobalsScriptJobs() # AE templates. pm.callbacks(addCallback=appleseedAETemplateCallback, hook="AETemplateCustomContent", owner="appleseed") # Manually load templates in aetemplate folder. templatesDir = os.path.join(thisDir, "aetemplate") logger.debug("Registering AETemplates in %s" % templatesDir) for file in os.listdir(templatesDir): if fnmatch.fnmatch(file, '*template.py'): templateModule = file.replace(".py", "") logger.debug("Registering AE template %s" % templateModule) mel.eval('python("import appleseedMaya.aetemplate.%s")' % templateModule) # Hypershade callbacks asHypershadeCallbacks = [ ("hyperShadePanelBuildCreateMenu", hyperShadePanelBuildCreateMenuCallback), ("hyperShadePanelBuildCreateSubMenu", hyperShadePanelBuildCreateSubMenuCallback), ("hyperShadePanelPluginChange", hyperShadePanelPluginChangeCallback), ("createRenderNodeSelectNodeCategories", createRenderNodeSelectNodeCategoriesCallback), ("createRenderNodePluginChange", createRenderNodePluginChangeCallback), ("renderNodeClassification", renderNodeClassificationCallback), ("createRenderNodeCommand", createRenderNodeCallback), ("nodeCanBeUsedAsMaterial", nodeCanBeUsedAsMaterialCallback), ("buildRenderNodeTreeListerContent", buildRenderNodeTreeListerContentCallback) ] for h, c in asHypershadeCallbacks: logger.debug("Adding {0} callback.".format(h)) pm.callbacks(addCallback=c, hook=h, owner="appleseed") # appleseed translator. createTranslatorMelProcedures() # Logos. pm.renderer("appleseed", edit=True, logoImageName="appleseed.png") mel.eval(''' global proc appleseedLogoCallback() { evalDeferred("showHelp -absolute \\\"http://appleseedhq.net\\\""); } ''') pm.renderer("appleseed", edit=True, logoCallbackProcedure="appleseedLogoCallback") # Menu if om.MGlobal.mayaState() == om.MGlobal.kInteractive: createMenu() # XGen try: import xgenm as xg for h, c in asXGenCallbacks: xg.registerCallback(h, c) logger.info("appleseedMaya: initialized xgenseed") except Exception as e: logger.info( "appleseedMaya: could not initialize xgenseed. error = %s" % e)
def unRegisterRenderer(self): if pm.renderer(self.rendererName, q=True, exists=True): pm.renderer(self.rendererName, unregisterRenderer=True) pm.mel.source('createMayaSoftwareCommonGlobalsTab') pm.mel.source("unifiedRenderGlobalsWindow")
def registerRenderer(self): log.debug("registerRenderer") self.unRegisterRenderer() self.registerNodeExtensions() self.registerAETemplateCallbacks() pm.renderer(self.rendererName, rendererUIName=self.rendererName) pm.renderer(self.rendererName, edit=True, renderProcedure=self.makeMelProcFromPythonCmd( self.renderProcedure, [('int', 'width'), ('int', 'height'), ('int', 'doShadows'), ('int', 'doGlow'), ('string', 'camera'), ('string', 'options')])) pm.renderer(self.rendererName, edit=True, batchRenderProcedure=self.makeMelProcFromPythonCmd( self.batchRenderProcedure, [('string', 'options')])) pm.renderer(self.rendererName, edit=True, commandRenderProcedure=self.makeMelProcFromPythonCmd( self.batchRenderProcedure, [('string', 'options')])) # pm.renderer(self.rendererName, edit=True, batchRenderProcedure=self.renderCallback("batchRenderProcedure")) # pm.renderer(self.rendererName, edit=True, commandRenderProcedure=self.renderCallback("commandRenderProcedure")) pm.renderer(self.rendererName, edit=True, batchRenderOptionsProcedure=self.renderCallback( "batchRenderOptionsProcedure")) pm.renderer(self.rendererName, edit=True, batchRenderOptionsStringProcedure=self.renderCallback( "batchRenderOptionsStringProcedure")) pm.renderer(self.rendererName, edit=True, addGlobalsNode="defaultRenderGlobals") pm.renderer(self.rendererName, edit=True, addGlobalsNode="defaultResolution") pm.renderer(self.rendererName, edit=True, addGlobalsNode=self.renderGlobalsNodeName) pm.renderer(self.rendererName, edit=True, startIprRenderProcedure=self.makeMelProcFromPythonCmd( self.startIprRenderProcedure, [('string', 'editor'), ('int', 'resolutionX'), ('int', 'resolutionY'), ('string', 'camera')])) pm.renderer(self.rendererName, edit=True, stopIprRenderProcedure=self.makeMelProcFromPythonCmd( self.stopIprRenderProcedure, [])) pm.renderer(self.rendererName, edit=True, pauseIprRenderProcedure=self.makeMelProcFromPythonCmd( self.pauseIprRenderProcedure, [('string', 'editor'), ('int', 'pause')])) pm.renderer(self.rendererName, edit=True, changeIprRegionProcedure=self.renderCallback( "changeIprRegionProcedure")) pm.renderer( self.rendererName, edit=True, iprOptionsProcedure=self.renderCallback("iprOptionsProcedure")) pm.renderer( self.rendererName, edit=True, iprOptionsMenuLabel=self.renderCallback("iprOptionsMenuLabel")) pm.renderer( self.rendererName, edit=True, iprRenderProcedure=self.renderCallback("iprRenderProcedure")) pm.renderer(self.rendererName, edit=True, iprRenderSubMenuProcedure=self.renderCallback( "iprRenderSubMenuProcedure")) pm.renderer( self.rendererName, edit=True, isRunningIprProcedure=self.renderCallback("isRunningIprProcedure")) pm.renderer(self.rendererName, edit=True, refreshIprRenderProcedure=self.renderCallback( "refreshIprRenderProcedure")) pm.renderer( self.rendererName, edit=True, logoCallbackProcedure=self.renderCallback("logoCallbackProcedure")) pm.renderer(self.rendererName, edit=True, logoImageName=self.rendererName + ".png") pm.renderer(self.rendererName, edit=True, renderDiagnosticsProcedure=self.renderCallback( "renderDiagnosticsProcedure")) pm.renderer(self.rendererName, edit=True, renderOptionsProcedure=self.renderCallback( "renderOptionsProcedure")) pm.renderer(self.rendererName, edit=True, cancelBatchRenderProcedure=self.renderCallback( "cancelBatchRenderProcedure")) pm.renderer(self.rendererName, edit=True, showBatchRenderProcedure=self.renderCallback( "showBatchRenderProcedure")) pm.renderer(self.rendererName, edit=True, showRenderLogProcedure=self.renderCallback( "showRenderLogProcedure")) pm.renderer(self.rendererName, edit=True, showBatchRenderLogProcedure=self.renderCallback( "showBatchRenderLogProcedure")) pm.renderer(self.rendererName, edit=True, textureBakingProcedure=self.renderCallback( "textureBakingProcedure")) pm.renderer(self.rendererName, edit=True, renderingEditorsSubMenuProcedure=self.renderCallback( "renderingEditorsSubMenuProcedure")) pm.renderer(self.rendererName, edit=True, renderRegionProcedure="mayaRenderRegion") # In the maya system files we have to hardcode some renderers if we want to use our own CommonGlobals Tab # The modified scripts are located in the module scritps directory. Unfortunatly the scripts directory is loaded # after mayas own scripts directory so the modified scripts with the same name will never be loaded. To fix this # behaviour I place the module script path at the very first position. scriptDir = path.path(__file__).dirname().parent os.environ['MAYA_SCRIPT_PATH'] = "{0};{1}".format( scriptDir, os.environ['MAYA_SCRIPT_PATH']) pm.mel.eval("source createMayaSoftwareCommonGlobalsTab") pm.mel.eval("source unifiedRenderGlobalsWindow") pm.evalDeferred(self.addTabs) log.debug("RegisterRenderer done")
def registerRenderer(self): log.debug("registerRenderer") self.unRegisterRenderer() self.registerNodeExtensions() self.registerAETemplateCallbacks() pm.renderer(self.rendererName, rendererUIName=self.rendererName) pm.renderer(self.rendererName, edit=True, renderProcedure=self.makeMelProcFromPythonCmd( self.renderProcedure, [('int', 'width'), ('int', 'height'), ('int', 'doShadows'), ('int', 'doGlow'), ('string', 'camera'), ('string', 'options')])) pm.renderer(self.rendererName, edit=True, batchRenderProcedure=self.makeMelProcFromPythonCmd( self.batchRenderProcedure, [('string', 'options')])) pm.renderer(self.rendererName, edit=True, commandRenderProcedure=self.makeMelProcFromPythonCmd( self.batchRenderProcedure, [('string', 'options')])) # pm.renderer(self.rendererName, edit=True, batchRenderProcedure=self.renderCallback("batchRenderProcedure")) # pm.renderer(self.rendererName, edit=True, commandRenderProcedure=self.renderCallback("commandRenderProcedure")) pm.renderer(self.rendererName, edit=True, batchRenderOptionsProcedure=self.renderCallback( "batchRenderOptionsProcedure")) pm.renderer(self.rendererName, edit=True, batchRenderOptionsStringProcedure=self.renderCallback( "batchRenderOptionsStringProcedure")) pm.renderer(self.rendererName, edit=True, addGlobalsNode="defaultRenderGlobals") pm.renderer(self.rendererName, edit=True, addGlobalsNode="defaultResolution") pm.renderer(self.rendererName, edit=True, addGlobalsNode=self.renderGlobalsNodeName) pm.renderer(self.rendererName, edit=True, startIprRenderProcedure=self.makeMelProcFromPythonCmd( self.startIprRenderProcedure, [('string', 'editor'), ('int', 'resolutionX'), ('int', 'resolutionY'), ('string', 'camera')])) pm.renderer(self.rendererName, edit=True, stopIprRenderProcedure=self.makeMelProcFromPythonCmd( self.stopIprRenderProcedure, [])) pm.renderer(self.rendererName, edit=True, pauseIprRenderProcedure=self.makeMelProcFromPythonCmd( self.pauseIprRenderProcedure, [('string', 'editor'), ('int', 'pause')])) pm.renderer(self.rendererName, edit=True, changeIprRegionProcedure=self.renderCallback( "changeIprRegionProcedure")) pm.renderer( self.rendererName, edit=True, iprOptionsProcedure=self.renderCallback("iprOptionsProcedure")) pm.renderer( self.rendererName, edit=True, iprOptionsMenuLabel=self.renderCallback("iprOptionsMenuLabel")) pm.renderer( self.rendererName, edit=True, iprRenderProcedure=self.renderCallback("iprRenderProcedure")) pm.renderer(self.rendererName, edit=True, iprRenderSubMenuProcedure=self.renderCallback( "iprRenderSubMenuProcedure")) pm.renderer( self.rendererName, edit=True, isRunningIprProcedure=self.renderCallback("isRunningIprProcedure")) pm.renderer(self.rendererName, edit=True, refreshIprRenderProcedure=self.renderCallback( "refreshIprRenderProcedure")) #pm.renderer(self.rendererName, edit=True, logoCallbackProcedure=self.renderCallback("logoCallbackProcedure")) pm.renderer(self.rendererName, edit=True, logoImageName=self.rendererName + ".png") pm.renderer(self.rendererName, edit=True, renderDiagnosticsProcedure=self.renderCallback( "renderDiagnosticsProcedure")) pm.renderer(self.rendererName, edit=True, renderOptionsProcedure=self.renderCallback( "renderOptionsProcedure")) pm.renderer(self.rendererName, edit=True, cancelBatchRenderProcedure=self.renderCallback( "cancelBatchRenderProcedure")) pm.renderer(self.rendererName, edit=True, showBatchRenderProcedure=self.renderCallback( "showBatchRenderProcedure")) pm.renderer(self.rendererName, edit=True, showRenderLogProcedure=self.renderCallback( "showRenderLogProcedure")) pm.renderer(self.rendererName, edit=True, showBatchRenderLogProcedure=self.renderCallback( "showBatchRenderLogProcedure")) pm.renderer(self.rendererName, edit=True, textureBakingProcedure=self.renderCallback( "textureBakingProcedure")) #pm.renderer(self.rendererName, edit=True, renderingEditorsSubMenuProcedure=self.renderCallback("renderingEditorsSubMenuProcedure")) pm.renderer(self.rendererName, edit=True, renderRegionProcedure="mayaRenderRegion") scriptDir = path.path(__file__).dirname().parent #os.environ['MAYA_SCRIPT_PATH'] = "{0};{1}".format(scriptDir, os.environ['MAYA_SCRIPT_PATH']) pm.mel.source('createMayaSoftwareCommonGlobalsTab') pm.mel.source("unifiedRenderGlobalsWindow") self.defineCommonMelProcedures() pm.evalDeferred(self.addTabs) log.debug("RegisterRenderer done")
def removeRenderer(): pm.renderer(RENDERERNAME, edit = True, unregisterRenderer = True) menuName = RENDERERNAME if pm.menu(menuName, query=True, exists=True): pm.deleteUI(menuName)
def registerRenderer(self): log.debug("registerRenderer") self.unRegisterRenderer() self.registerNodeExtensions() self.registerAETemplateCallbacks() pm.renderer(self.rendererName, rendererUIName = self.rendererName) pm.renderer(self.rendererName, edit = True, renderProcedure = self.renderCallback("renderProcedure")) pm.renderer(self.rendererName, edit = True, batchRenderProcedure = self.renderCallback("batchRenderProcedure")) pm.renderer(self.rendererName, edit = True, commandRenderProcedure = self.renderCallback("commandRenderProcedure")) pm.renderer(self.rendererName, edit = True, batchRenderOptionsProcedure = self.renderCallback("batchRenderOptionsProcedure")) pm.renderer(self.rendererName, edit = True, batchRenderOptionsStringProcedure = self.renderCallback("batchRenderOptionsStringProcedure")) pm.renderer(self.rendererName, edit = True, addGlobalsNode = "defaultRenderGlobals") pm.renderer(self.rendererName, edit = True, addGlobalsNode = "defaultResolution") pm.renderer(self.rendererName, edit = True, addGlobalsNode = self.renderGlobalsNodeName) # because mentalray is still hardcoded in the maya scritps, I cannot simply use my own commons without replacing some original scripts # so I use the defaults pm.renderer(self.rendererName, edit = True, addGlobalsTab = ('Common', "createMayaSoftwareCommonGlobalsTab", "updateMayaSoftwareCommonGlobalsTab")) # my own tabs pm.renderer(self.rendererName, edit = True, addGlobalsTab = self.renderTabMelProcedure("Renderer")) pm.renderer(self.rendererName, edit = True, addGlobalsTab = self.renderTabMelProcedure("Translator")) log.debug("RegisterRenderer done")
def registerRenderer(self): log.debug("registerRenderer") self.unRegisterRenderer() self.registerNodeExtensions() self.registerAETemplateCallbacks() pm.renderer(self.rendererName, rendererUIName=self.rendererName) pm.renderer(self.rendererName, edit=True, renderProcedure=self.makeMelProcFromPythonCmd(self.renderProcedure, [('int', 'width'), ('int', 'height'), ('int', 'doShadows'), ('int', 'doGlow'), ('string', 'camera'), ('string', 'options')])) pm.renderer(self.rendererName, edit=True, batchRenderProcedure=self.makeMelProcFromPythonCmd(self.batchRenderProcedure, [('string', 'options')])) pm.renderer(self.rendererName, edit=True, commandRenderProcedure=self.makeMelProcFromPythonCmd(self.batchRenderProcedure, [('string', 'options')])) # pm.renderer(self.rendererName, edit=True, batchRenderProcedure=self.renderCallback("batchRenderProcedure")) # pm.renderer(self.rendererName, edit=True, commandRenderProcedure=self.renderCallback("commandRenderProcedure")) pm.renderer(self.rendererName, edit=True, batchRenderOptionsProcedure=self.renderCallback("batchRenderOptionsProcedure")) pm.renderer(self.rendererName, edit=True, batchRenderOptionsStringProcedure=self.renderCallback("batchRenderOptionsStringProcedure")) pm.renderer(self.rendererName, edit=True, addGlobalsNode="defaultRenderGlobals") pm.renderer(self.rendererName, edit=True, addGlobalsNode="defaultResolution") pm.renderer(self.rendererName, edit=True, addGlobalsNode=self.renderGlobalsNodeName) pm.renderer(self.rendererName, edit=True, startIprRenderProcedure=self.makeMelProcFromPythonCmd(self.startIprRenderProcedure, [('string', 'editor'), ('int', 'resolutionX'), ('int', 'resolutionY'), ('string', 'camera')])) pm.renderer(self.rendererName, edit=True, stopIprRenderProcedure=self.makeMelProcFromPythonCmd(self.stopIprRenderProcedure, [])) pm.renderer(self.rendererName, edit=True, pauseIprRenderProcedure=self.makeMelProcFromPythonCmd(self.pauseIprRenderProcedure, [('string', 'editor'), ('int', 'pause')])) pm.renderer(self.rendererName, edit=True, changeIprRegionProcedure=self.renderCallback("changeIprRegionProcedure")) pm.renderer(self.rendererName, edit=True, iprOptionsProcedure=self.renderCallback("iprOptionsProcedure")) pm.renderer(self.rendererName, edit=True, iprOptionsMenuLabel=self.renderCallback("iprOptionsMenuLabel")) pm.renderer(self.rendererName, edit=True, iprRenderProcedure=self.renderCallback("iprRenderProcedure")) pm.renderer(self.rendererName, edit=True, iprRenderSubMenuProcedure=self.renderCallback("iprRenderSubMenuProcedure")) pm.renderer(self.rendererName, edit=True, isRunningIprProcedure=self.renderCallback("isRunningIprProcedure")) pm.renderer(self.rendererName, edit=True, refreshIprRenderProcedure=self.renderCallback("refreshIprRenderProcedure")) #pm.renderer(self.rendererName, edit=True, logoCallbackProcedure=self.renderCallback("logoCallbackProcedure")) pm.renderer(self.rendererName, edit=True, logoImageName=self.rendererName + ".png") pm.renderer(self.rendererName, edit=True, renderDiagnosticsProcedure=self.renderCallback("renderDiagnosticsProcedure")) pm.renderer(self.rendererName, edit=True, renderOptionsProcedure=self.renderCallback("renderOptionsProcedure")) pm.renderer(self.rendererName, edit=True, cancelBatchRenderProcedure=self.renderCallback("cancelBatchRenderProcedure")) pm.renderer(self.rendererName, edit=True, showBatchRenderProcedure=self.renderCallback("showBatchRenderProcedure")) pm.renderer(self.rendererName, edit=True, showRenderLogProcedure=self.renderCallback("showRenderLogProcedure")) pm.renderer(self.rendererName, edit=True, showBatchRenderLogProcedure=self.renderCallback("showBatchRenderLogProcedure")) pm.renderer(self.rendererName, edit=True, textureBakingProcedure=self.renderCallback("textureBakingProcedure")) #pm.renderer(self.rendererName, edit=True, renderingEditorsSubMenuProcedure=self.renderCallback("renderingEditorsSubMenuProcedure")) pm.renderer(self.rendererName, edit=True, renderRegionProcedure="mayaRenderRegion") scriptDir = path.path(__file__).dirname().parent #os.environ['MAYA_SCRIPT_PATH'] = "{0};{1}".format(scriptDir, os.environ['MAYA_SCRIPT_PATH']) pm.mel.source('createMayaSoftwareCommonGlobalsTab') pm.mel.source("unifiedRenderGlobalsWindow") self.defineCommonMelProcedures() pm.evalDeferred(self.addTabs) log.debug("RegisterRenderer done")
def registerRenderer(self): log.debug("registerRenderer") self.unRegisterRenderer() self.registerNodeExtensions() self.registerAETemplateCallbacks() pm.renderer(self.rendererName, rendererUIName=self.rendererName) pm.renderer(self.rendererName, edit=True, renderProcedure=self.makeMelProcFromPythonCmd(self.renderProcedure, [('int', 'width'), ('int', 'height'), ('int', 'doShadows'), ('int', 'doGlow'), ('string', 'camera'), ('string', 'options')])) pm.renderer(self.rendererName, edit=True, batchRenderProcedure=self.makeMelProcFromPythonCmd(self.batchRenderProcedure, [('string', 'options')])) pm.renderer(self.rendererName, edit=True, commandRenderProcedure=self.makeMelProcFromPythonCmd(self.batchRenderProcedure, [('string', 'options')])) # pm.renderer(self.rendererName, edit=True, batchRenderProcedure=self.renderCallback("batchRenderProcedure")) # pm.renderer(self.rendererName, edit=True, commandRenderProcedure=self.renderCallback("commandRenderProcedure")) pm.renderer(self.rendererName, edit=True, batchRenderOptionsProcedure=self.renderCallback("batchRenderOptionsProcedure")) pm.renderer(self.rendererName, edit=True, batchRenderOptionsStringProcedure=self.renderCallback("batchRenderOptionsStringProcedure")) pm.renderer(self.rendererName, edit=True, addGlobalsNode="defaultRenderGlobals") pm.renderer(self.rendererName, edit=True, addGlobalsNode="defaultResolution") pm.renderer(self.rendererName, edit=True, addGlobalsNode=self.renderGlobalsNodeName) pm.renderer(self.rendererName, edit=True, startIprRenderProcedure=self.makeMelProcFromPythonCmd(self.startIprRenderProcedure, [('string', 'editor'), ('int', 'resolutionX'), ('int', 'resolutionY'), ('string', 'camera')])) pm.renderer(self.rendererName, edit=True, stopIprRenderProcedure=self.makeMelProcFromPythonCmd(self.stopIprRenderProcedure, [])) pm.renderer(self.rendererName, edit=True, pauseIprRenderProcedure=self.makeMelProcFromPythonCmd(self.pauseIprRenderProcedure, [('string', 'editor'), ('int', 'pause')])) pm.renderer(self.rendererName, edit=True, changeIprRegionProcedure=self.renderCallback("changeIprRegionProcedure")) pm.renderer(self.rendererName, edit=True, iprOptionsProcedure=self.renderCallback("iprOptionsProcedure")) pm.renderer(self.rendererName, edit=True, iprOptionsMenuLabel=self.renderCallback("iprOptionsMenuLabel")) pm.renderer(self.rendererName, edit=True, iprRenderProcedure=self.renderCallback("iprRenderProcedure")) pm.renderer(self.rendererName, edit=True, iprRenderSubMenuProcedure=self.renderCallback("iprRenderSubMenuProcedure")) pm.renderer(self.rendererName, edit=True, isRunningIprProcedure=self.renderCallback("isRunningIprProcedure")) pm.renderer(self.rendererName, edit=True, refreshIprRenderProcedure=self.renderCallback("refreshIprRenderProcedure")) pm.renderer(self.rendererName, edit=True, logoCallbackProcedure=self.renderCallback("logoCallbackProcedure")) pm.renderer(self.rendererName, edit=True, logoImageName=self.rendererName + ".png") pm.renderer(self.rendererName, edit=True, renderDiagnosticsProcedure=self.renderCallback("renderDiagnosticsProcedure")) pm.renderer(self.rendererName, edit=True, renderOptionsProcedure=self.renderCallback("renderOptionsProcedure")) pm.renderer(self.rendererName, edit=True, cancelBatchRenderProcedure=self.renderCallback("cancelBatchRenderProcedure")) pm.renderer(self.rendererName, edit=True, showBatchRenderProcedure=self.renderCallback("showBatchRenderProcedure")) pm.renderer(self.rendererName, edit=True, showRenderLogProcedure=self.renderCallback("showRenderLogProcedure")) pm.renderer(self.rendererName, edit=True, showBatchRenderLogProcedure=self.renderCallback("showBatchRenderLogProcedure")) pm.renderer(self.rendererName, edit=True, textureBakingProcedure=self.renderCallback("textureBakingProcedure")) pm.renderer(self.rendererName, edit=True, renderingEditorsSubMenuProcedure=self.renderCallback("renderingEditorsSubMenuProcedure")) pm.renderer(self.rendererName, edit=True, renderRegionProcedure="mayaRenderRegion") # In the maya system files we have to hardcode some renderers if we want to use our own CommonGlobals Tab # The modified scripts are located in the module scritps directory. Unfortunatly the scripts directory is loaded # after mayas own scripts directory so the modified scripts with the same name will never be loaded. To fix this # behaviour I place the module script path at the very first position. scriptDir = path.path(__file__).dirname().parent os.environ['MAYA_SCRIPT_PATH'] = "{0};{1}".format(scriptDir, os.environ['MAYA_SCRIPT_PATH']) pm.mel.eval("source createMayaSoftwareCommonGlobalsTab") pm.mel.eval("source unifiedRenderGlobalsWindow") pm.evalDeferred(self.addTabs) log.debug("RegisterRenderer done")
def unregister(): pm.renderer('AtlasRenderer', unregisterRenderer=True)
def unRegisterRenderer(self): print "unregister" if pm.renderer(self.rendererName, q=True, exists=True): pm.renderer(self.rendererName, unregisterRenderer=True)
def addUserTabs(self): pm.renderer(self.rendererName, edit=True, addGlobalsTab=self.renderTabMelProcedure("Environment"))
def _register(): args = {} args['renderProcedure'] = utils.pyToMelProc(arnoldRender.arnoldRender, [('int', 'width'), ('int', 'height'), ('int', 'doShadows'), ('int', 'doGlowPass'), ('string', 'camera'), ('string', 'options')]) args['renderRegionProcedure'] = 'mayaRenderRegion' args['commandRenderProcedure'] = utils.pyToMelProc(arnoldRender.arnoldBatchRender, [('string', 'option')]) args['batchRenderProcedure'] = utils.pyToMelProc(arnoldRender.arnoldBatchRender, [('string', 'option')]) args['batchRenderOptionsStringProcedure'] = utils.pyToMelProc(arnoldRender.arnoldBatchRenderOptionsString, returnType='string') args['cancelBatchRenderProcedure'] = utils.pyToMelProc(arnoldRender.arnoldBatchStop) args['iprRenderProcedure'] = utils.pyToMelProc(arnoldRender.arnoldIprRender, [('int', 'width'), ('int', 'height'), ('int', 'doShadows'), ('int', 'doGlowPass'), ('string', 'camera')]) args['isRunningIprProcedure'] = utils.pyToMelProc(arnoldRender.arnoldIprIsRunning, returnType='int') args['startIprRenderProcedure'] = utils.pyToMelProc(arnoldRender.arnoldIprStart, [('string', 'editor'), ('int', 'resolutionX'), ('int', 'resolutionY'), ('string', 'camera')]) args['stopIprRenderProcedure'] = utils.pyToMelProc(arnoldRender.arnoldIprStop) args['refreshIprRenderProcedure'] = utils.pyToMelProc(arnoldRender.arnoldIprRefresh) args['pauseIprRenderProcedure'] = utils.pyToMelProc(arnoldRender.arnoldIprPause, [('string', 'editor'), ('int', 'pause')]) args['changeIprRegionProcedure'] = utils.pyToMelProc(arnoldRender.arnoldIprChangeRegion, [('string', 'renderPanel')]) pm.renderer('arnold', rendererUIName='Arnold Renderer', **args) pm.renderer('arnold', edit=True, addGlobalsTab=('Common', utils.pyToMelProc(createArnoldRendererCommonGlobalsTab, useName=True), utils.pyToMelProc(updateArnoldRendererCommonGlobalsTab, useName=True))) pm.renderer('arnold', edit=True, addGlobalsTab=('Arnold Renderer', utils.pyToMelProc(createArnoldRendererGlobalsTab, useName=True), utils.pyToMelProc(updateArnoldRendererGlobalsTab, useName=True))) pm.renderer('arnold', edit=True, addGlobalsTab=('System', utils.pyToMelProc(createArnoldRendererSystemTab, useName=True), utils.pyToMelProc(updateArnoldRendererSystemTab, useName=True))) pm.renderer('arnold', edit=True, addGlobalsTab=('AOVs', utils.pyToMelProc(createArnoldAOVTab, useName=True), utils.pyToMelProc(updateArnoldAOVTab, useName=True))) pm.renderer('arnold', edit=True, addGlobalsTab=('Diagnostics', utils.pyToMelProc(createArnoldRendererDiagnosticsTab, useName=True), utils.pyToMelProc(updateArnoldRendererDiagnosticsTab, useName=True))) pm.renderer('arnold', edit=True, addGlobalsTab=('Override', utils.pyToMelProc(createArnoldRendererOverrideTab, useName=True), utils.pyToMelProc(updateArnoldRendererOverrideTab, useName=True))) pm.renderer('arnold', edit=True, addGlobalsNode='defaultArnoldRenderOptions') utils.pyToMelProc(updateBackgroundSettings, useName=True) utils.pyToMelProc(updateAtmosphereSettings, useName=True) #We have to source this file otherwise maya will override #our mel proc overrides below. # pm.mel.source('createMayaSoftwareCommonGlobalsTab.mel') utils.pyToMelProc(addOneTabToGlobalsWindow, [('string', 'renderer'), ('string', 'tabLabel'), ('string', 'createProc')], useName=True) utils.pyToMelProc(renderSettingsTabLabel_melToUI, [('string', 'mel')], useName=True) utils.pyToMelProc(updateMayaImageFormatControl, useName=True)
def unregister(): mc.flushUndo() pm.callbacks(clearCallbacks=True, owner="customMayaRenderer") pm.renderer('customMayaRenderer', unregisterRenderer=True)
def registerRenderer(): log.debug("registerRenderer") baseCmd = "import mtm_initialize as mtmi;reload(mtmi);" renderProc = baseCmd + "mtmi.renderProcedure()" batchRenderProc = baseCmd + "mtmi.batchRenderProcedure()" commandRenderProc = baseCmd + "mtmi.commandRenderProcedure()" batchRenderOptionsProc = baseCmd + "mtmi.batchRenderOptionsProcedure()" batchRenderOptionsStringProc = baseCmd + "mtmi.batchRenderOptionsStringProcedure()" pm.renderer(RENDERERNAME, rendererUIName = RENDERERNAME) pm.renderer(RENDERERNAME, edit = True, renderProcedure = "python(\"" + renderProc +"\")") pm.renderer(RENDERERNAME, edit = True, batchRenderProcedure = "python(\"" + batchRenderProc +"\")") pm.renderer(RENDERERNAME, edit = True, commandRenderProcedure = "python(\"" + commandRenderProc +"\")") pm.renderer(RENDERERNAME, edit = True, batchRenderOptionsProcedure = "python(\"" + batchRenderOptionsProc +"\")") pm.renderer(RENDERERNAME, edit = True, batchRenderOptionsStringProcedure = "python(\"" + batchRenderOptionsStringProc +"\")") pm.renderer(RENDERERNAME, edit = True, addGlobalsNode = "defaultRenderGlobals") pm.renderer(RENDERERNAME, edit = True, addGlobalsTab = ('Common', "createMayaSoftwareCommonGlobalsTab", "updateMayaSoftwareCommonGlobalsTab")) pm.renderer(RENDERERNAME, edit = True, addGlobalsTab = (RENDERERNAME, "createRendererTab", "updateRendererTab")) pm.renderer(RENDERERNAME, edit = True, addGlobalsTab = (RENDERERNAME + " Translator", "createTranslatorTab", "updateTranslatorTab"))
def addUserTabs(self): pm.renderer(self.rendererName, edit=True, addGlobalsTab=self.renderTabMelProcedure("Environment")) pm.renderer(self.rendererName, edit=True, addGlobalsTab=self.renderTabMelProcedure("Photons")) pm.renderer(self.rendererName, edit=True, addGlobalsTab=self.renderTabMelProcedure("FinalGathering")) pm.renderer(self.rendererName, edit=True, addGlobalsTab=self.renderTabMelProcedure("Quality"))
def addUserTabs(self): pm.renderer(self.rendererName, edit=True, addGlobalsTab=self.renderTabMelProcedure("Environment")) pm.renderer(self.rendererName, edit=True, addGlobalsTab=self.renderTabMelProcedure("Gi"))
def unregisterRenderer(): cyclesOptions.deleteDefault('defaultCyclesOptions') core.renderer('cycles_renderer', unr = True)