// =========================================================================== // 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. // =========================================================================== proc setOptionVars (int $forceFactorySettings) { if ($forceFactorySettings || !`optionVar -exists hwRendererLowQualLighting`) optionVar -intValue hwRendererLowQualLighting 0; if ($forceFactorySettings || !`optionVar -exists hwRendererTranspInShadows`) optionVar -intValue hwRendererTranspInShadows 0; if ($forceFactorySettings || !`optionVar -exists hwRendererOcclusionCulling`) optionVar -intValue hwRendererOcclusionCulling 0; if ($forceFactorySettings || !`optionVar -exists hwRendererCullingOverride`) optionVar -stringValue hwRendererCullingOverride ""; if ($forceFactorySettings || !`optionVar -exists hwRendererColorResX`) optionVar -intValue hwRendererColorResX 256; if ($forceFactorySettings || !`optionVar -exists hwRendererColorResY`) optionVar -intValue hwRendererColorResY 256; if ($forceFactorySettings || !`optionVar -exists hwRendererBumpResX`) optionVar -intValue hwRendererBumpResX 512; if ($forceFactorySettings || !`optionVar -exists hwRendererBumpResY`) optionVar -intValue hwRendererBumpResY 512; if ($forceFactorySettings || !`optionVar -exists hwRendererUseMaxHWLights`) optionVar -intValue hwRendererUseMaxHWLights 1; } global proc hwRendererUpdateShadowControls( int $lowQualityLighting ) { // There are no shadows, nor bump in low quality mode, so disable the // appropriate toggles. // if ($lowQualityLighting) { disable -v true hwRendererTranspInShadows; disable -v true hwRendererBumpResX; } else { disable -v false hwRendererTranspInShadows; disable -v false hwRendererBumpResX; } } global proc hwRendererOptionsSetup (string $parent, int $forceFactorySettings) { setOptionVars($forceFactorySettings); setParent $parent; // Low quality lighting int $val; $val = `optionVar -query hwRendererLowQualLighting`; checkBoxGrp -edit -value1 $val hwRendererLowQualLighting; hwRendererUpdateShadowControls $val; // Transparent shadows $val = `optionVar -query hwRendererTranspInShadows`; checkBoxGrp -edit -value1 $val hwRendererTranspInShadows; // Cull override $sval = `optionVar -query hwRendererCullingOverride`; if ($sval == "none") optionMenuGrp -edit -sl 1 hwRendererCullingOverride; else if ($sval == "doubleSided") optionMenuGrp -edit -sl 2 hwRendererCullingOverride; else if ($sval == "singleSided") optionMenuGrp -edit -sl 3 hwRendererCullingOverride; // Occlusion culling $val = `optionVar -query hwRendererOcclusionCulling`; checkBoxGrp -edit -value1 $val hwRendererOcclusionCulling; // Use maximum # of hardware lights $val = `optionVar -query hwRendererUseMaxHWLights`; checkBoxGrp -edit -value1 $val hwRendererUseMaxHWLights; // Color resolution $val = `optionVar -query hwRendererColorResX`; intSliderGrp -edit -value $val hwRendererColorResX; // Bump resolution $val = `optionVar -query hwRendererBumpResX`; intSliderGrp -edit -value $val hwRendererBumpResX; } global proc hwRendererOptionsCallback (string $parent, int $doIt, string $editor) { setParent $parent; // Check for low quality lighting int $isLowQuality = `checkBoxGrp -query -value1 hwRendererLowQualLighting`; optionVar -intValue hwRendererLowQualLighting $isLowQuality; hwRendererUpdateShadowControls $isLowQuality; // Check culling override int $val; string $cullOverride[3]; $cullOverride[0] = "none"; $cullOverride[1] = "doubleSided"; $cullOverride[2] = "singleSided"; $val = `optionMenuGrp -query -sl hwRendererCullingOverride`; $val = $val - 1; optionVar -stringValue hwRendererCullingOverride $cullOverride[$val]; // Occlusion culling $val =`checkBoxGrp -query -value1 hwRendererOcclusionCulling`; optionVar -intValue hwRendererOcclusionCulling $val; // Use maximum # of hardware lights $val =`checkBoxGrp -query -value1 hwRendererUseMaxHWLights`; optionVar -intValue hwRendererUseMaxHWLights $val; // Check for transparency in shadows flag $val = `checkBoxGrp -query -value1 hwRendererTranspInShadows`; optionVar -intValue hwRendererTranspInShadows $val; // Check color resolution int $res; $res = `intSliderGrp -query -value hwRendererColorResX`; optionVar -intValue hwRendererColorResX $res; //$res = `intSliderGrp -query -value hwRendererColorResY`; optionVar -intValue hwRendererColorResY $res; // Check bump resolution $res = `intSliderGrp -query -value hwRendererBumpResX`; optionVar -intValue hwRendererBumpResX $res; //$res = `intSliderGrp -query -value hwRendererBumpResY`; optionVar -intValue hwRendererBumpResX $res; if ($doIt) { hwRendererOptions 0 $editor; } } proc hwRendererOptionsOptions(string $editor) { string $commandName = "hwRendererOptions"; string $callback = ($commandName + "Callback"); string $setup = ($commandName + "Setup"); string $layout = getOptionBox(); setParent $layout; setUITemplate -pushTemplate DefaultTemplate; waitCursor -state 1; string $parent = `columnLayout -adjustableColumn true`; //---------------------------------------------------------------------- frameLayout -label (uiRes("m_hwRendererOptions.kDisplayQuality")) -cl false -cll true; columnLayout; checkBoxGrp -label1 (uiRes("m_hwRendererOptions.kLowQualityLighting")) -cc ("int $val = `checkBoxGrp -query -value1 hwRendererLowQualLighting`; hwRendererUpdateShadowControls ($val) ") hwRendererLowQualLighting; checkBoxGrp -label1 (uiRes("m_hwRendererOptions.kMatchViewportLights")) hwRendererUseMaxHWLights; checkBoxGrp -label1 (uiRes("m_hwRendererOptions.kTransparentShadowMaps")) hwRendererTranspInShadows; setParent $parent; //---------------------------------------------------------------------- frameLayout -label (uiRes("m_hwRendererOptions.kDisplayParameters")) -cl false -cll true; columnLayout; checkBoxGrp -label1 (uiRes("m_hwRendererOptions.kOcclusionCulling")) hwRendererOcclusionCulling; optionMenuGrp -label (uiRes("m_hwRendererOptions.kCullingOverride")) hwRendererCullingOverride; menuItem -label (uiRes("m_hwRendererOptions.kNone")) ; menuItem -label (uiRes("m_hwRendererOptions.kDoubleSided")) ; menuItem -label (uiRes("m_hwRendererOptions.kSingleSided")) ; setParent -menu ..; intSliderGrp -label (uiRes("m_hwRendererOptions.kColorTextureResolution")) -minValue 4 -maxValue 2048 -fieldMinValue 4 -fieldMaxValue 2048 hwRendererColorResX; // Disallow changing this for now // intSliderGrp -label "Baked Color Texture Height" // -minValue 4 -maxValue 2048 // -fieldMinValue 4 -fieldMaxValue 2048 // hwRendererColorResY; intSliderGrp -label (uiRes("m_hwRendererOptions.kBumpTextureResolution")) -minValue 4 -maxValue 2048 -fieldMinValue 4 -fieldMaxValue 2048 hwRendererBumpResX; // Disallow changing this for now // intSliderGrp -label "Baked Bump Texture Height" // -minValue 4 -maxValue 2048 // -fieldMinValue 4 -fieldMaxValue 2048 // hwRendererBumpResY; setParent $parent; //---------------------------------------------------------------------- waitCursor -state 0; setUITemplate -popTemplate; string $applyBtn = getOptionBoxApplyBtn(); button -edit -label (uiRes("m_hwRendererOptions.kSet")) -command ($callback + " " + $parent + " " + 1 + " \"" + $editor + "\"") $applyBtn; string $saveBtn = getOptionBoxSaveBtn(); button -edit -command ($callback + " " + $parent + " " + 0 + " \"" + $editor + " \"" + "; hideOptionBox") $saveBtn; string $resetBtn = getOptionBoxResetBtn(); button -edit -command ($setup + " " + $parent + " " + 1) $resetBtn; setOptionBoxTitle (uiRes("m_hwRendererOptions.kHardwareRendererDisplayOptions")); setOptionBoxHelpTag( "HardwareRendererDisplay" ); eval (($setup + " " + $parent + " " + 0)); showOptionBox(); } // // Procedure: // hwRendererOptions // Description: // Option UI box for hardware renderer options for the // modelEditor command. // global proc string hwRendererOptions (int $option, string $editor) { global string $gHighQualityViewport; string $cmd=""; switch ($option) { case 1: hwRendererOptionsOptions $editor; // Just the option box break; default: setOptionVars(false); int $xColorRes = `optionVar -q hwRendererColorResX`; //int $yColorRes = `optionVar -q hwRendererColorResY`; -- force unused for now int $xBumpRes = `optionVar -q hwRendererBumpResX`; //int $yBumpRes = `optionVar -q hwRendererBumpResY`; -- force unused for now int $transpInShadows = `optionVar -q hwRendererTranspInShadows`; string $cullOverride = `optionVar -q hwRendererCullingOverride`; int $lowQualLighting = `optionVar -query hwRendererLowQualLighting`; int $occlusionCulling = `optionVar -query hwRendererOcclusionCulling`; int $maxHWLights = `optionVar -query hwRendererUseMaxHWLights`; $cmd = "modelEditor -e " + " -rnm $gHighQualityViewport" + " -crz " + $xColorRes + " " + $xColorRes + // Force square textures " -brz " + $xBumpRes + " " + $xBumpRes + // Force square textures " -cov \"" + $cullOverride + "\"" + " -tis " + $transpInShadows + " -lql " + $lowQualLighting + " -ocl " + $occlusionCulling + " -mhl " + $maxHWLights + " " + $editor + ";" ; if ($option == 0) evalEcho $cmd; break; } return $cmd; }