// =========================================================================== // Copyright 2018 Autodesk, Inc. All rights reserved. // // Use of this software is subject to the terms of the Autodesk license // agreement provided at the time of installation or download, or which // otherwise accompanies this software in either electronic or hard copy form. // =========================================================================== // // Description: // This procedure loads preferred render globals presets // for specified renderer. // // The following table tells when the node presets are applied: // // Renderer Render globals nodes When node presets are applied // ------------------------------------------------------------------------ // mayaSoftware defaultRenderGlobals Maya startup/File->New // mayaSoftware defaultResolution Maya startup/File->New // mayaSoftware defaultRenderQuality Maya startup/File->New // mayaHardware defaultRenderGlobals Maya startup/File->New(If HW is the default) // mayaHardware defaultResolution Maya startup/File->New(If HW is the default) // mayaHardware hardwareRenderGlobals Maya startup/File->New // mayaVector defaultRenderGlobals Vector render is registered(If VR is the default) // mayaVector defaultResolution Vector render is registered(If VR is the default) // mayaVector vectorRenderGlobals Node is created(Click VectorRender Tab, ...) // mentalRay defaultRenderGlobals mental ray is registered(If MR is the default) // mentalRay defaultResolution mental ray is registered(If MR is the default) // mentalRay miDefaultOpitons Node is created(Click mentalRay Tabs, ...) // mentalRay mentalrayGlobals Node is created(Click mentalRay Tabs, ...) // mentalRay miDefaultFramebuffer Node is created(Click mentalRay Tabs, ...) // // Input Arguments: // The name of the renderer // // Return Value: // None // source "supportRenderers.mel"; global proc loadPreferredRenderGlobalsPreset(string $renderer) { if (mayaHasRenderSetup()) { string $globalRenderSetupPreset = (uiRes("m_loadPreferredRenderGlobalsPreset.kGlobalRenderSetupPreset")); string $userRenderSetupPreset = (uiRes("m_loadPreferredRenderGlobalsPreset.kUserRenderSetupPreset")); string $preferredRenderSetupPresetOptVar = ($renderer + "PreferredRenderSetupPreset"); string $preferredRenderSetupPresetTypeOptVar = ($renderer + "PreferredRenderSetupPresetType"); if (`optionVar -exists $preferredRenderSetupPresetOptVar` && `optionVar -exists $preferredRenderSetupPresetTypeOptVar`) { string $preferredPresetName = `optionVar -query $preferredRenderSetupPresetOptVar`; string $preferredRenderSetupPresetType = `optionVar -query $preferredRenderSetupPresetTypeOptVar`; python "import maya.app.renderSetup.views.renderSetupPreferences as prefs"; python "import maya.app.renderSetup.model.rendererCallbacks as rendererCallbacks"; python ("renderSettingsCallbacks = rendererCallbacks.getCallbacks(\"" + $renderer + "\", rendererCallbacks.CALLBACKS_TYPE_RENDER_SETTINGS)"); python "if renderSettingsCallbacks is not None: renderSettingsCallbacks.createDefaultNodes()"; if ($preferredRenderSetupPresetType == $userRenderSetupPreset) { python ("prefs.loadUserPreset(\"" + $preferredPresetName + "\")"); } else if($preferredRenderSetupPresetType == $globalRenderSetupPreset) { python ("prefs.loadGlobalPreset(\"" + $preferredPresetName + "\")"); } } } else { int $currentRendererOverrided = false; if(`renderer -exists $renderer`) { string $globalsNodes[] = `renderer -q -globalsNodes $renderer`; string $currentRenderer = currentRenderer(); if ($renderer != $currentRenderer){ if ($renderer != "mayaSoftware") { string $commonNodes[] = {"defaultRenderGlobals", "defaultResolution"}; $globalsNodes = stringArrayRemove($commonNodes, $globalsNodes); } else $currentRendererOverrided = true; } for ($globalsNode in $globalsNodes) { if (!`objExists $globalsNode`) continue; loadPreferredPreset($renderer, $globalsNode); } if ($currentRendererOverrided) setAttr "defaultRenderGlobals.currentRenderer" -type "string" $currentRenderer; } } } global proc loadPreferredPreset(string $renderer, string $globalsNode) { string $preferredPresetOptVar = $renderer + $globalsNode + "PreferredPreset"; if (`optionVar -exists $preferredPresetOptVar`) { string $pref = `optionVar -q $preferredPresetOptVar`; if (`nodePreset -exists $globalsNode $pref`) { nodePreset -load $globalsNode $pref; } else { // The users preferred preset does not exist. Warn the user and // delete the optionVar. // warning (uiRes("m_loadPreferredRenderGlobalsPreset.kPrefRenderGlobalsFailed"));; optionVar -remove $preferredPresetOptVar; } } }