// $Id: createRenderPipeGlobalsTab.mel,v 1.1.4.1 2003/04/29 03:49:30 ajh Exp $ // // RenderPipe for Maya // RenderPipe Globals Tab for Maya 5 // // Copyright (C) 1999-2003 ART VPS Ltd. // Portions copyright (C) 1997-2003 Alias|Wavefront, used under license // // Derived mainly from createMayaSoftwareGlobalsTab.mel // // Globals: // RenderPipeGlobalsRevertToDefault() // RenderPipePremultiplyCtrlChanged() // changeRenderPipeFieldOptions () // createRenderPipeFieldOptions (string $parent) // createRenderPipeGlobalsTab() // createRenderPipeMotionBlur (string $parent) // createRenderPipeRenderLayerOptions (string $parent) // createRenderPipeRenderOptions (string $parent) // createRenderPipeRenderQuality (string $parent) // setRenderPipeDefaultQuality () // setRenderPipeEdgeQuality() // setRenderPipePixelFilterType() // updateRenderPipeFieldOptions () // updateRenderPipeFileOutputFeedback () // updateRenderPipeGlobalsTab() // updateRenderPipeMotionBlur () // updateRenderPipePremultiplyCtrl() // updateRenderPipeRenderGlobalPassEnable() // updateRenderPipeRenderLayerEnable() // updateRenderPipeRenderLayerFilters() // updateRenderPipeRenderLayerLayout( int $doLayers, int $doPasses ) // updateRenderPipeRenderLayerOptions () // updateRenderPipeRenderLayerPassEnable() // updateRenderPipeRenderQuality () // global proc createRenderPipeGlobalsTab() { string $parentForm = `setParent -query`; scrollLayout -horizontalScrollBarThickness 0 RenderPipeGlobalsScrollLayout; columnLayout -adjustableColumn true; // RenderPipe globals section frameLayout -label "RenderPipe" -cll true -cl 0 rpRenderPipeFrame; createRenderPipeGlobals ("rpRenderPipeFrame"); setParent ..; // Anti-aliasing quality section // frameLayout -label "Anti-aliasing Quality" -cll true -cl 1 -preExpandCommand "createRenderPipeRenderQuality (\"RenderPipeQualityFrame\")" RenderPipeQualityFrame; setParent ..; // Field Options // frameLayout -label "Field Options" -cll true -cl 1 -preExpandCommand "createRenderPipeFieldOptions (\"rpFieldOptionsFrame\")" rpFieldOptionsFrame; setParent ..; // Motion Blur // frameLayout -label "Motion Blur" -cll true -cl 1 -preExpandCommand "createRenderPipeMotionBlur (\"rpBlurFrame\")" rpBlurFrame; setParent ..; // Render Options // frameLayout -label "Render Options" -cll true -cl 1 -preExpandCommand "createRenderPipeRenderOptions (\"rpOptionSoftwareFrame\")" rpOptionSoftwareFrame; setParent ..; // Render Layer/Pass Options // frameLayout -label "Render Layer/Pass Control" -cll true -cl 1 -preExpandCommand "createRenderPipeRenderLayerOptions (\"rpRenderLayerFrame\")" rpRenderLayerFrame; setParent ..; setParent ..; setParent ..; formLayout -edit -af RenderPipeGlobalsScrollLayout "top" 0 -af RenderPipeGlobalsScrollLayout "bottom" 0 -af RenderPipeGlobalsScrollLayout "left" 0 -af RenderPipeGlobalsScrollLayout "right" 0 $parentForm; } // Description: This procedure is called to create the render quality // frame in the maysSoftware tab in the unified render globals // window. // global proc createRenderPipeRenderQuality (string $parent) // // Procedure Name: // createRenderPipeRenderQuality // // Description: // Creates the UI in the "Anti-aliasing Quality" // expand/collapse section. // { setUITemplate -pushTemplate attributeEditorTemplate; setParent $parent; // If the UI is created already then reset the command with the correct // render quality + update the attribute values. string $rendQual[] = `listConnections defaultRenderGlobals.qual`; if (`columnLayout -exists RenderPipeQualityLayout`) { updateRenderPipeRenderQuality; return; } columnLayout -adjustableColumn true RenderPipeQualityLayout; // frameLayout // -labelVisible false -borderVisible true // -borderStyle "etchedIn" // -collapsable false -collapse true; // columnLayout -adjustableColumn true; // // optionMenuGrp -label "Quality" rpQualityPresetMenu; // optionMenuGrp -edit -cc setRenderPipeDefaultQuality -cw 2 240 rpQualityPresetMenu; // // menuItem -label "Custom" rpCustomQuality; // menuItem -label "Preview Quality" rpPreviewQuality; // menuItem -label "Intermediate Quality" rpIntermediateQuality; // menuItem -label "Production Quality" rpProductionQuality; // menuItem -label "Contrast Sensitive Production" rpContrastProductionQuality; // menuItem -label "3D Motion Blur Production" rpMotionBlurQuality; // // optionMenuGrp -label "Edge Anti-aliasing" // -cc setRenderPipeEdgeQuality edgeMenu; // // menuItem -label "Low Quality"; // menuItem -label "Medium Quality"; // menuItem -label "High Quality"; // menuItem -label "Highest Quality"; // // setParent ..; // setParent ..; // frameLayout -label "Number of Samples" // -labelVisible true -borderVisible true // -borderStyle "etchedIn" // -labelAlign "center" -labelWidth 150 // -collapsable false -collapse true; // columnLayout -adjustableColumn true; // // string $attr = $rendQual[0]+ ".shadingSamples"; // attrControlGrp -label "Shading" // -attribute $attr // -cc "updateRenderPipeRenderQuality" // rpShadingSamplesField; // // $attr = $rendQual[0]+ ".maxShadingSamples"; // attrControlGrp -label "Max Shading" // -attribute $attr // -cc "updateRenderPipeRenderQuality" // rpMaxShadingSamplesField; // // $attr = $rendQual[0]+ ".visibilitySamples"; // attrControlGrp -label "3D Blur Visib." // -attribute $attr // -cc "updateRenderPipeRenderQuality" // rpVisSamplesField; // // $attr = $rendQual[0]+ ".maxVisibilitySamples"; // attrControlGrp -label "Max 3D Blur Visib." // -attribute $attr // -cc "updateRenderPipeRenderQuality" // rpMaxVisSamplesField; // // $attr = $rendQual[0]+ ".particleSamples"; // attrControlGrp -label "Particles" // -attribute $attr // -cc "updateRenderPipeRenderQuality" // rpParticlesSamplesField; // // setParent ..; // setParent ..; frameLayout -label "Multi-pixel Filtering" -labelVisible true -borderVisible true -borderStyle "etchedIn" -labelAlign "center" -labelWidth 150 -collapsable false -collapse true; columnLayout -adjustableColumn true; $attr = $rendQual[0]+ ".useMultiPixelFilter"; attrControlGrp -label "Use Multi Pixel Filter" -attribute $attr -cc "updateRenderPipeRenderQuality" rpPixelCheck; optionMenuGrp -label "Pixel Filter Type" -cc "setRenderPipePixelFilterType" rpPixelFilterMenu; menuItem -label "Box Filter"; menuItem -label "Triangle Filter"; menuItem -label "Gaussian Filter"; menuItem -label "Quadratic B-Spline Filter"; menuItem -label "Plug-in Filter"; $attr = $rendQual[0]+ ".pixelFilterWidthX"; attrControlGrp -label "Pixel Filter Width X" -attribute $attr rpFilterXField; $attr = $rendQual[0]+ ".pixelFilterWidthY"; attrControlGrp -label "Pixel Filter Width Y" -attribute $attr rpFilterYField; setParent ..; setParent ..; // frameLayout -label "Contrast Threshold" // -labelVisible true -borderVisible true // -borderStyle "etchedIn" // -labelAlign "center" -labelWidth 150 // -collapsable false -collapse true; // columnLayout -adjustableColumn true; // // $attr = $rendQual[0]+ ".redThreshold"; // attrControlGrp -label "Red" // -attribute $attr // -cc "updateRenderPipeRenderQuality" // rpContrastRedField; // // $attr = $rendQual[0]+ ".greenThreshold"; // attrControlGrp -label "Green" // -attribute $attr // -cc "updateRenderPipeRenderQuality" // rpContrastGreenField; // // $attr = $rendQual[0]+ ".blueThreshold"; // attrControlGrp -label "Blue" // -attribute $attr // -cc "updateRenderPipeRenderQuality" // rpContrastBlueField; // // $attr = $rendQual[0]+ ".coverageThreshold"; // attrControlGrp -label "Coverage" // -attribute $attr // -cc "updateRenderPipeRenderQuality" // rpContrastCoverField; // // setParent ..; // setParent ..; setParent ..; setUITemplate -popTemplate; // Make sure the values are right // updateRenderPipeRenderQuality; } // Description: This procedure is called to create the field options // frame in the maysSoftware tab in the unified render globals // window. // global proc createRenderPipeFieldOptions (string $parent) // // Procedure Name: // createRenderPipeFieldOptions // // Description: // Creates the UI in the "Field Options" expand/collapse section. // { setUITemplate -pushTemplate attributeEditorTemplate; setParent $parent; // If the UI is created already then just update the attribute values. // if (`columnLayout -exists rpFieldLayout`) { updateRenderPipeFieldOptions; return; } columnLayout -adjustableColumn true rpFieldLayout; optionMenuGrp -label "Render" -cc changeRenderPipeFieldOptions rpFieldMenu; menuItem -label "Frames"; menuItem -label "Both Fields, Interlaced"; menuItem -label "Both Fields, Separate"; menuItem -label "Odd Fields"; menuItem -label "Even Fields"; scriptJob -p $parent -ac "defaultResolution.fields" "updateRenderPipeFieldOptions;"; optionMenuGrp -label "Field Dominance" -cc "changeRenderPipeFieldOptions" rpFieldDominanceMenu; menuItem -label "Odd Field (NTSC)" rpOddField; menuItem -label "Even Field (PAL)" rpEvenField; radioButtonGrp -numberOfRadioButtons 2 -label "Zeroth Scanline" -label1 "At Top" -label2 "At Bottom" -on1 "setAttr defaultResolution.zerothScanline 0" -on2 "setAttr defaultResolution.zerothScanline 1" rpScanlineButtons; scriptJob -p $parent -ac "defaultResolution.zerothScanline" "updateRenderPipeFieldOptions"; separator; radioButtonGrp -numberOfRadioButtons 1 -label "" -label1 "No Field Extension" -onc changeRenderPipeFieldOptions rpFieldButton1; radioButtonGrp -numberOfRadioButtons 1 -shareCollection rpFieldButton1 -label1 "Default Field Extension (o and e)" -onc changeRenderPipeFieldOptions rpFieldButton2; radioButtonGrp -numberOfRadioButtons 1 -shareCollection rpFieldButton1 -label1 "Custom Extension:" -onc changeRenderPipeFieldOptions rpFieldButton3; // This works on the above 3 radio buttons // scriptJob -p $parent -ac "defaultRenderGlobals.fieldExtControl" "updateRenderPipeFieldOptions;"; // Make these fields small to indicate that // only a single character is accepted. // There's a SUG on this. #87405 // textFieldGrp -label "Odd Field" -cw 2 30 -cc changeRenderPipeFieldOptions rpOddFieldExt; scriptJob -p $parent -ac "defaultRenderGlobals.oddFieldExt" "updateRenderPipeFieldOptions;"; textFieldGrp -label "Even Field" -cw 2 30 -cc changeRenderPipeFieldOptions rpEvenFieldExt; scriptJob -p $parent -ac "defaultRenderGlobals.evenFieldExt" "updateRenderPipeFieldOptions;"; setParent ..; setUITemplate -popTemplate; // Make sure the values are right // updateRenderPipeFieldOptions; } // Description: This procedure is called to create the render quality // frame in the maysSoftware tab in the unified render globals // window. // global proc updateRenderPipeRenderQuality () // // Procedure Name: // updateRenderPipeRenderQuality // // Description: // Gets the real values from the nodes and sets the UI based // on these values. This procedure updates all of the quality // values. // { if (!`columnLayout -exists RenderPipeQualityLayout`) { return; } string $rendQual[] = `listConnections defaultRenderGlobals.qual`; // int $useBlur = `getAttr defaultRenderGlobals.motionBlur`; // int $blur2d = (`getAttr defaultRenderGlobals.motionBlurType` == 0); int $enableMultiPixelFilter = true; int $enableFilterAttrs = false; // int $shadingSamples = `getAttr ($rendQual[0] + ".shadingSamples")`; // // int $maxShadingSamples = `getAttr ($rendQual[0] + ".maxShadingSamples")`; // // int $visibilitySamples = `getAttr ($rendQual[0] + ".visibilitySamples")`; // // int $maxVisibilitySamples // = `getAttr ($rendQual[0] + ".maxVisibilitySamples")`; // // int $particleSamples = `getAttr ($rendQual[0] + ".particleSamples")`; // // // The edge AA settings go from 0-3 for Highest down to Low // // But we choose to display the menu items in _ascending_ order, // // for consistency with the order of presets. // // Thus we must remap the values here // // // int $edgeAA = `getAttr ($rendQual[0] + ".edgeAntiAliasing")`; // int $edgeMenuItem; // if ($edgeAA == 0) { // Highest // $edgeMenuItem = 4; // } else if ($edgeAA == 1) { // High // $edgeMenuItem = 3; // } else if ($edgeAA == 2) { // Medium // $edgeMenuItem = 2; // } else if ($edgeAA == 3) { // Low // $edgeMenuItem = 1; // } // optionMenuGrp -edit -sl $edgeMenuItem edgeMenu; int $useMultiPixelFilter = `getAttr ($rendQual[0] + ".useMultiPixelFilter")`; // // Check against the contrast threshold values. The below // // tolerance check is due to MEL's poor numerical accuracy. // // E.g., setting a 0.4 value will not result in a 0.4 setting. // // // float $numerialTol = 0.001; // float $highContrastRed = 0.4; // float $highContrastGreen = 0.3; // float $highContrastBlue = 0.6; // float $lowContrastRed = 0.2; // float $lowContrastGreen = 0.15; // float $lowContrastBlue = 0.3; // // float $redTol = `getAttr ($rendQual[0] + ".redThreshold")`; // float $greenTol = `getAttr ($rendQual[0] + ".greenThreshold")`; // float $blueTol = `getAttr ($rendQual[0] + ".blueThreshold")`; // // float $redDiff = $redTol - $highContrastRed; // float $greenDiff = $greenTol - $highContrastGreen; // float $blueDiff = $blueTol - $highContrastBlue; // int $highContrast = $redDiff < $numerialTol && $redDiff > -$numerialTol && // $greenDiff < $numerialTol && $greenDiff > -$numerialTol && // $blueDiff < $numerialTol && $blueDiff > -$numerialTol; // // $redDiff = $redTol - $lowContrastRed; // $greenDiff = $greenTol - $lowContrastGreen; // $blueDiff = $blueTol - $lowContrastBlue; // int $lowContrast = $redDiff < $numerialTol && $redDiff > -$numerialTol && // $greenDiff < $numerialTol && $greenDiff > -$numerialTol && // $blueDiff < $numerialTol && $blueDiff > -$numerialTol; // // // See if the current settings of the 6 attributes we just queried // // match any preset settings, and set the Presets menu state // // accordingly // // // if ($shadingSamples == 1 && $maxShadingSamples == 1 // && $visibilitySamples == 1 && $maxVisibilitySamples == 4 // && $edgeAA == 3 && $useMultiPixelFilter == 0 && $highContrast) { // optionMenuGrp -edit -sl 2 rpQualityPresetMenu; // Preview Quality // } else if ($shadingSamples == 1 && $maxShadingSamples == 8 // && $visibilitySamples == 1 && $maxVisibilitySamples == 4 // && $edgeAA == 0 && $useMultiPixelFilter == 0 && $highContrast) { // optionMenuGrp -edit -sl 3 rpQualityPresetMenu; // Intermediate Quality // } else if ($shadingSamples == 2 && $maxShadingSamples == 8 // && $visibilitySamples == 1 && $maxVisibilitySamples == 4 // && $edgeAA == 0 && $useMultiPixelFilter == 1 && $highContrast) { // optionMenuGrp -edit -sl 4 rpQualityPresetMenu; // Production Quality // } else if ($shadingSamples == 2 && $maxShadingSamples == 8 // && $visibilitySamples == 1 && $maxVisibilitySamples == 4 // && $edgeAA == 0 && $useMultiPixelFilter == 1 && $lowContrast) { // optionMenuGrp -edit -sl 5 rpQualityPresetMenu; // Contrast Sensitive Production Quality // } else if ($shadingSamples == 3 && $maxShadingSamples == 8 // && $visibilitySamples == 1 && $maxVisibilitySamples == 4 // && $edgeAA == 0 && $useMultiPixelFilter == 1 && $highContrast) { // optionMenuGrp -edit -sl 6 rpQualityPresetMenu; // Motion Blur Production // } else { // optionMenuGrp -edit -sl 1 rpQualityPresetMenu; // custom // } int $filterType = `getAttr ($rendQual[0] + ".pixelFilterType")`; if ($filterType == 0) { // Box Filter optionMenuGrp -edit -sl 1 rpPixelFilterMenu; } else if ($filterType == 2) { // Triangle Filter optionMenuGrp -edit -sl 2 rpPixelFilterMenu; } else if ($filterType == 4) { // Gaussian Filter optionMenuGrp -edit -sl 3 rpPixelFilterMenu; } else if ($filterType == 5) { // Quadratic B-Spline Filter optionMenuGrp -edit -sl 4 rpPixelFilterMenu; } else if ($filterType == 1000) { // Plug-in Filter optionMenuGrp -edit -sl 5 rpPixelFilterMenu; } // attrControlGrp -edit // -enable ($useBlur && !$blur2d) rpContrastCoverField; optionMenuGrp -edit -enable $useMultiPixelFilter rpPixelFilterMenu; attrControlGrp -edit -enable $useMultiPixelFilter rpFilterXField; attrControlGrp -edit -enable $useMultiPixelFilter rpFilterYField; // // Now dim out items that are not applicable, // // based on the current settings // // // if ($edgeAA == 3) { // Low // attrControlGrp -edit -enable false rpPixelCheck; // optionMenuGrp -edit -enable false rpPixelFilterMenu; // attrControlGrp -edit -enable false rpFilterXField; // attrControlGrp -edit -enable false rpFilterYField; // attrControlGrp -edit -enable false rpContrastRedField; // attrControlGrp -edit -enable false rpContrastGreenField; // attrControlGrp -edit -enable false rpContrastBlueField; // attrControlGrp -edit -enable false rpMaxShadingSamplesField; // attrControlGrp -edit -enable ($useBlur && !$blur2d) rpVisSamplesField; // attrControlGrp -edit -enable false rpMaxVisSamplesField; // } else if ($edgeAA == 2) { // Medium // attrControlGrp -edit -enable false rpPixelCheck; // optionMenuGrp -edit -enable false rpPixelFilterMenu; // attrControlGrp -edit -enable false rpFilterXField; // attrControlGrp -edit -enable false rpFilterYField; // attrControlGrp -edit -enable false rpContrastRedField; // attrControlGrp -edit -enable false rpContrastGreenField; // attrControlGrp -edit -enable false rpContrastBlueField; // attrControlGrp -edit -enable false rpMaxShadingSamplesField; // attrControlGrp -edit -enable ($useBlur && !$blur2d) rpVisSamplesField; // attrControlGrp -edit -enable false rpMaxVisSamplesField; // } else if ($edgeAA == 1) { // High // $enableMultiPixelFilter = true; // attrControlGrp -edit -enable false rpContrastRedField; // attrControlGrp -edit -enable false rpContrastGreenField; // attrControlGrp -edit -enable false rpContrastBlueField; // attrControlGrp -edit -enable false rpMaxShadingSamplesField; // attrControlGrp -edit -enable ($useBlur && !$blur2d) rpVisSamplesField; // attrControlGrp -edit -enable false rpMaxVisSamplesField; // } else if ($edgeAA == 0) { // Highest // $enableMultiPixelFilter = true; // attrControlGrp -edit -enable true rpContrastRedField; // attrControlGrp -edit -enable true rpContrastGreenField; // attrControlGrp -edit -enable true rpContrastBlueField; // attrControlGrp -edit -enable true rpMaxShadingSamplesField; // attrControlGrp -edit -enable ($useBlur && !$blur2d) rpVisSamplesField; // attrControlGrp -edit -enable ($useBlur && !$blur2d) rpMaxVisSamplesField; // } if ($enableMultiPixelFilter) { $enableFilterAttrs = `getAttr ($rendQual[0] + ".useMultiPixelFilter")`; } attrControlGrp -edit -enable $enableMultiPixelFilter rpPixelCheck; optionMenuGrp -edit -enable $enableFilterAttrs rpPixelFilterMenu; attrControlGrp -edit -enable $enableFilterAttrs rpFilterXField; attrControlGrp -edit -enable $enableFilterAttrs rpFilterYField; } global proc createRenderPipeMotionBlur (string $parent) // // Procedure Name: // createRenderPipeMotionBlur // // Description: // Creates the UI in the "Motion Blur" expand/collapse section. // { setUITemplate -pushTemplate attributeEditorTemplate; setParent $parent; // If the UI is created already then just update attribute values. if (`columnLayout -exists rpBlurLayout`) { updateRenderPipeMotionBlur; return; } columnLayout -adjustableColumn true rpBlurLayout; attrControlGrp -label "Motion Blur" -attribute "defaultRenderGlobals.motionBlur" -cc "updateRenderPipeMotionBlur; updateRenderPipeRenderQuality;" rpBlurCheck; radioButtonGrp -numberOfRadioButtons 1 -label "Motion Blur Type" -label1 "2D" -onc "setAttr defaultRenderGlobals.motionBlurType 0" rpBlurButton1; radioButtonGrp -numberOfRadioButtons 1 -shareCollection rpBlurButton1 -label "" -label1 "3D" -onc "setAttr defaultRenderGlobals.motionBlurType 1" rpBlurButton2; // Any time the motion blur type changes we also need to call // updateRenderPipeMotionBlur and updateRenderPipeRenderQuality. This is done through // a script job watching for an attribute change. // scriptJob -p $parent -ac "defaultRenderGlobals.motionBlurType" "updateRenderPipeMotionBlur; updateRenderPipeRenderQuality;"; attrControlGrp -label "Blur by Frame" -attribute "defaultRenderGlobals.motionBlurByFrame" rpBlurFrameField; attrControlGrp -label "Blur Length" -attribute "defaultRenderGlobals.blurLength" rpBlurLengthField; // attrControlGrp -label "Blur Sharpness" // -attribute "defaultRenderGlobals.blurSharpness" // rpBlurSharpField; // // radioButtonGrp -label "Smooth" // -numberOfRadioButtons 2 // -label1 "Alpha" // -label2 "Color" // -on1 "setAttr defaultRenderGlobals.smoothColor 0" // -on2 "setAttr defaultRenderGlobals.smoothColor 1" // rpBlurSmoothRadio; // scriptJob -p $parent // -ac "defaultRenderGlobals.smoothColor" "updateRenderPipeMotionBlur"; // // attrControlGrp -label "Smooth Value" // -attribute "defaultRenderGlobals.smoothValue" // rpBlurSmoothField; // // attrControlGrp -label "Keep Motion Vectors" // -attribute "defaultRenderGlobals.keepMotionVector" // rpBlurVectorCheck; // // if(!`about -mac`){ // attrControlGrp -label "Use 2d Blur Memory Limit" // -attribute "defaultRenderGlobals.useBlur2DMemoryCap" // -cc "updateRenderPipeMotionBlur" // rpBlurMemoryCapCheck; // // attrControlGrp -label "2d Blur Memory Limit" // -attribute "defaultRenderGlobals.blur2DMemoryCap" // rpBlurMemoryCapField; // } setParent ..; setUITemplate -popTemplate; // Make sure the values are right // updateRenderPipeMotionBlur; } global proc createRenderPipeRenderOptions (string $parent) // // Procedure Name: // createRenderPipeRenderOptions // // Description: // Creates the UI in the "Render Options" expand/collapse section. // { setUITemplate -pushTemplate attributeEditorTemplate; setParent $parent; if (`columnLayout -exists rpOptionsLayout`) { return; } columnLayout -adjustableColumn true rpOptionsLayout; attrNavigationControlGrp -l "Environment Fog" -at defaultRenderGlobals.fogGeometry rpEnvFogControl; // if (`isTrue MayaCreatorExists`) { // attrControlGrp -label "Apply Fog in Post" // -attribute "defaultRenderGlobals.applyFogInPost" // -cc "attrControlGrp -edit -enable `getAttr defaultRenderGlobals.applyFogInPost` postFogBlurField" // rpApplyFogInPostCheck; // attrControlGrp -label "Post Fog Blur" // -attribute "defaultRenderGlobals.postFogBlur" // -enable `getAttr defaultRenderGlobals.applyFogInPost` // rpPostFogBlurField; // separator; // } // attrControlGrp -label "Shadows Obey Light Linking" // -attribute "defaultRenderGlobals.shadowsObeyLightLinking" // rpShadowLightLinkCheck; // attrControlGrp -label "Enable Depth Maps" // -attribute "defaultRenderGlobals.enableDepthMaps" // rpDepthMapCheck; attrControlGrp -label "Ignore Film Gate" -attribute "defaultRenderGlobals.ignoreFilmGate" rpFilmGateCheck; // attrControlGrp -label "Clip Final Shaded Color" // -attribute "defaultRenderGlobals.clipFinalShadedColor" // rpClipCheck; // attrControlGrp -label "Jitter Final Color" // -attribute "defaultRenderGlobals.jitterFinalColor" // rpJitterColor; attrControlGrp -label "Gamma Correction" -attribute "defaultRenderGlobals.gammaCorrection" rpGammaField; // separator; // // checkBoxGrp -label1 "Premultiply" // -cc "RenderPipePremultiplyCtrlChanged" // RenderPipePremultiplyCtrl; // // scriptJob -p "RenderPipePremultiplyCtrl" // -ac "defaultRenderGlobals.composite" // "updateRenderPipePremultiplyCtrl"; // // attrControlGrp -label "Premultiply Threshold" // -attribute "defaultRenderGlobals.compositeThreshold" // rpPremultiplyThresholdCtrl; // update the premultiply controls // updateRenderPipePremultiplyCtrl(); setParent ..; setUITemplate -popTemplate; } // Description: This procedure is called when the "Premultiply" control // is changed by the user. // global proc RenderPipePremultiplyCtrlChanged() { // int $premultiply = // `checkBoxGrp -query -value1 RenderPipePremultiplyCtrl`; // int $composite = !$premultiply; // setAttr defaultRenderGlobals.composite $composite; // attrControlGrp -edit -enable $composite rpPremultiplyThresholdCtrl; } // Description: This procedure is called when the attribute // renderGlobals.composite // is changed and we need to update the "Premultiply" control // to reflect this change. // global proc updateRenderPipePremultiplyCtrl() { // int $composite = `getAttr defaultRenderGlobals.composite`; // int $premultiply = !$composite; // checkBoxGrp -edit -value1 $premultiply RenderPipePremultiplyCtrl; // attrControlGrp -edit -enable $composite rpPremultiplyThresholdCtrl; } global proc createRenderPipeRenderLayerOptions (string $parent) // // Procedure Name: // createRenderPipeRenderLayerOptions // // Description: // Creates the UI in the "Render Layer/Pass Control" // expand/collapse section. // { setUITemplate -pushTemplate attributeEditorTemplate; setParent $parent; // Set up the spreadsheet filters updateRenderPipeRenderLayerFilters; // If the UI is created already then just update the attribute values. if (`columnLayout -exists rpRenderLayerLayout`) { updateRenderPipeRenderLayerOptions; return; } columnLayout -adjustableColumn true rpRenderLayerLayout; attrControlGrp -label "Enable Render Layers" -attribute "defaultRenderGlobals.renderLayerEnable" -cc "updateRenderPipeRenderLayerEnable" rpRenderLayerEnable; // attrControlGrp -label "Enable Render Layer Passes" // -attribute "defaultRenderGlobals.renderLayerPassEnable" // -cc "updateRenderPipeRenderLayerPassEnable" // rpRenderLayerPassEnable; // attrControlGrp -label "Enable Global Passes" // -attribute "defaultRenderGlobals.renderGlobalPassEnable" // -cc "updateRenderPipeRenderGlobalPassEnable" // rpRenderGlobalPassEnable; // separator; // // attrControlGrp -label "Output to Subdirectories" // -attribute "defaultRenderGlobals.renderLayerSubdirs" // rpRenderLayerSubdirs; frameLayout -label "Render Layers" -labelVisible false -borderVisible false -collapsable false rpLayerAttrLayout; columnLayout -adjustableColumn true rpLayerLyt; separator; selectionConnection -wl -parent rpLayerLyt rpAList; spreadSheetEditor -mainListConnection rpAList -ko false -ln true -fal {"rndr"} -filter renderLayerFilter rpLayerOutliner; setParent ..; setParent ..; setParent ..; setUITemplate -popTemplate; // Make sure the values are right updateRenderPipeRenderLayerOptions; } // Description: This procedure is used to update the controls in // frame Render Layer/Pass. // global proc updateRenderPipeRenderLayerFilters() { // The itemFilters are destrnew scene is loaded so // ths UI might exist without them, check here. Only one check // is done since the actions that would destroy the filters // will destroy all of them if( !`itemFilter -exists glblRenderFilter` ) { itemFilter -bn globalRender glblRenderFilter; itemFilter -bn globalRender -neg true notGlblRenderFilter; itemFilter -bt renderLayer allRenderLayerFilter; itemFilter -difference allRenderLayerFilter glblRenderFilter renderLayerFilter; } } // Description: This procedure is called when a particular // quality preset is chosen in the render quality frame. // It sets some attributes according to the chosen quality preset. // global proc setRenderPipeDefaultQuality () { // string $rendQual[] = `listConnections defaultRenderGlobals.qual`; // string $curr = `optionMenuGrp -q -v rpQualityPresetMenu`; // if ($curr == "Preview Quality") { // setAttr ($rendQual[0] + ".edgeAntiAliasing") 3; // setAttr ($rendQual[0] + ".useMultiPixelFilter") 0; // setAttr ($rendQual[0] + ".shadingSamples") 1; // setAttr ($rendQual[0] + ".maxShadingSamples") 1; // setAttr ($rendQual[0] + ".visibilitySamples") 1; // setAttr ($rendQual[0] + ".maxVisibilitySamples") 4; // setAttr ($rendQual[0] + ".redThreshold") 0.4; // setAttr ($rendQual[0] + ".greenThreshold") 0.3; // setAttr ($rendQual[0] + ".blueThreshold") 0.6; // setAttr ($rendQual[0] + ".reflections") 1; // setAttr ($rendQual[0] + ".refractions") 6; // setAttr ($rendQual[0] + ".shadows") 2; // } else if ($curr == "Intermediate Quality") { // setAttr ($rendQual[0] + ".edgeAntiAliasing") 0; // setAttr ($rendQual[0] + ".useMultiPixelFilter") 0; // setAttr ($rendQual[0] + ".shadingSamples") 1; // setAttr ($rendQual[0] + ".maxShadingSamples") 8; // setAttr ($rendQual[0] + ".visibilitySamples") 1; // setAttr ($rendQual[0] + ".maxVisibilitySamples") 4; // setAttr ($rendQual[0] + ".redThreshold") 0.4; // setAttr ($rendQual[0] + ".greenThreshold") 0.3; // setAttr ($rendQual[0] + ".blueThreshold") 0.6; // setAttr ($rendQual[0] + ".reflections") 1; // setAttr ($rendQual[0] + ".refractions") 6; // setAttr ($rendQual[0] + ".shadows") 2; // } else if ($curr == "Production Quality") { // setAttr ($rendQual[0] + ".edgeAntiAliasing") 0; // setAttr ($rendQual[0] + ".useMultiPixelFilter") 1; // setAttr ($rendQual[0] + ".shadingSamples") 2; // setAttr ($rendQual[0] + ".maxShadingSamples") 8; // setAttr ($rendQual[0] + ".visibilitySamples") 1; // setAttr ($rendQual[0] + ".maxVisibilitySamples") 4; // setAttr ($rendQual[0] + ".redThreshold") 0.4; // setAttr ($rendQual[0] + ".greenThreshold") 0.3; // setAttr ($rendQual[0] + ".blueThreshold") 0.6; // setAttr ($rendQual[0] + ".reflections") 10; // setAttr ($rendQual[0] + ".refractions") 10; // setAttr ($rendQual[0] + ".shadows") 10; // } else if ($curr == "Contrast Sensitive Production") { // setAttr ($rendQual[0] + ".edgeAntiAliasing") 0; // setAttr ($rendQual[0] + ".useMultiPixelFilter") 1; // setAttr ($rendQual[0] + ".shadingSamples") 2; // setAttr ($rendQual[0] + ".maxShadingSamples") 8; // setAttr ($rendQual[0] + ".visibilitySamples") 1; // setAttr ($rendQual[0] + ".maxVisibilitySamples") 4; // setAttr ($rendQual[0] + ".redThreshold") 0.2; // setAttr ($rendQual[0] + ".greenThreshold") 0.15; // setAttr ($rendQual[0] + ".blueThreshold") 0.3; // setAttr ($rendQual[0] + ".reflections") 10; // setAttr ($rendQual[0] + ".refractions") 10; // setAttr ($rendQual[0] + ".shadows") 10; // } else if ($curr == "3D Motion Blur Production") { // setAttr ($rendQual[0] + ".edgeAntiAliasing") 0; // setAttr ($rendQual[0] + ".useMultiPixelFilter") 1; // setAttr ($rendQual[0] + ".shadingSamples") 3; // setAttr ($rendQual[0] + ".maxShadingSamples") 8; // setAttr ($rendQual[0] + ".visibilitySamples") 1; // setAttr ($rendQual[0] + ".maxVisibilitySamples") 4; // setAttr ($rendQual[0] + ".redThreshold") 0.4; // setAttr ($rendQual[0] + ".greenThreshold") 0.3; // setAttr ($rendQual[0] + ".blueThreshold") 0.6; // setAttr ($rendQual[0] + ".reflections") 10; // setAttr ($rendQual[0] + ".refractions") 10; // setAttr ($rendQual[0] + ".shadows") 10; // } // updateRenderPipeRenderQuality; // // if (`columnLayout -exists rpRaytraceLayout`) updateRenderPipeRaytraceQuality; } // Description: This procedure is called when a particular // edge quality is chosen in the render quality frame. // It sets some attributes according to the chosen edge quality. // global proc setRenderPipeEdgeQuality() { // string $rendQual[] = `listConnections defaultRenderGlobals.qual`; // string $curr = `optionMenuGrp -q -v edgeMenu`; // if ($curr == "Low Quality") { // setAttr ($rendQual[0] + ".edgeAntiAliasing") 3; // } else if ($curr == "Medium Quality") { // setAttr ($rendQual[0] + ".edgeAntiAliasing") 2; // } else if ($curr == "High Quality") { // setAttr ($rendQual[0] + ".edgeAntiAliasing") 1; // } else { // setAttr ($rendQual[0] + ".edgeAntiAliasing") 0; // } // // updateRenderPipeRenderQuality; } // Description: This procedure is called when the pixel filter is // chosen. The quality render globals' pixelFilterType attribute // will be set accordingly. // global proc setRenderPipePixelFilterType() { string $rendQual[] = `listConnections defaultRenderGlobals.qual`; string $curr = `optionMenuGrp -q -v rpPixelFilterMenu`; if ($curr == "Box Filter") { setAttr ($rendQual[0] + ".pixelFilterType") 0; } else if ($curr == "Triangle Filter") { setAttr ($rendQual[0] + ".pixelFilterType") 2; } else if ($curr == "Gaussian Filter") { setAttr ($rendQual[0] + ".pixelFilterType") 4; } else if ($curr == "Quadratic B-Spline Filter") { setAttr ($rendQual[0] + ".pixelFilterType") 5; } else if ($curr == "Plug-in Filter") { setAttr ($rendQual[0] + ".pixelFilterType") 1000; } updateRenderPipeRenderQuality; } global proc RGsetPixelFilterType() { string $rendQual[] = `listConnections defaultRenderGlobals.qual`; string $curr = `optionMenuGrp -q -v rpPixelFilterMenu`; if ($curr == "Box Filter") { setAttr ($rendQual[0] + ".pixelFilterType") 0; } else if ($curr == "Triangle Filter") { setAttr ($rendQual[0] + ".pixelFilterType") 2; } else if ($curr == "Gaussian Filter") { setAttr ($rendQual[0] + ".pixelFilterType") 4; } else if ($curr == "Quadratic B-Spline Filter") { setAttr ($rendQual[0] + ".pixelFilterType") 5; } else if ($curr == "Plug-in Filter") { setAttr ($rendQual[0] + ".pixelFilterType") 1000; } updateRenderPipeRenderQuality; } global proc updateRenderPipeFieldOptions () // // Procedure Name: // updateRenderPipeFieldOptions // // Description: // Gets the real values from the nodes and sets the UI based // on these values. This procedure updates all of the field // values. // { int $fieldType = `getAttr defaultResolution.fields` + 1; int $useFields = ($fieldType != 1); int $autoInterlace = ($fieldType == 4); // Because of 123444, the ordering of the menu and the actual // saved fields values are not the same, which is why the // below convoluted code. // switch ($fieldType) { case 1: optionMenuGrp -edit -select 1 rpFieldMenu; break; case 2: case 3: optionMenuGrp -edit -select ($fieldType + 2) rpFieldMenu; break; case 4: case 5: optionMenuGrp -edit -select ($fieldType - 2) rpFieldMenu; break; } optionMenuGrp -edit -enable $useFields rpFieldDominanceMenu; int $oddFieldFirst = `getAttr defaultResolution.oddFieldFirst`; int $whichDominance = $oddFieldFirst ? 1 : 2; optionMenuGrp -edit -sl $whichDominance rpFieldDominanceMenu; if ($fieldType == 1 || $fieldType == 4) radioButtonGrp -edit -select (`getAttr defaultResolution.zerothScanline` + 1) -enable 0 rpScanlineButtons; else radioButtonGrp -edit -select (`getAttr defaultResolution.zerothScanline` + 1) -enable 1 rpScanlineButtons; int $useCustom = 0; if (`getAttr "defaultRenderGlobals.fieldExtControl"` == 1) radioButtonGrp -edit -select 1 rpFieldButton1; else if (`getAttr "defaultRenderGlobals.fieldExtControl"` == 0) radioButtonGrp -edit -select 1 rpFieldButton2; else { radioButtonGrp -edit -select 1 rpFieldButton3; $useCustom = 1; } radioButtonGrp -edit -enable ($useFields && !$autoInterlace) rpFieldButton1; radioButtonGrp -edit -enable ($useFields && !$autoInterlace) rpFieldButton2; radioButtonGrp -edit -enable ($useFields && !$autoInterlace) rpFieldButton3; textFieldGrp -edit -text `getAttr "defaultRenderGlobals.oddFieldExt"` -enable ($useFields && $useCustom) rpOddFieldExt; textFieldGrp -edit -text `getAttr "defaultRenderGlobals.evenFieldExt"` -enable ($useFields && $useCustom) rpEvenFieldExt; } global proc changeRenderPipeFieldOptions () // // Procedure Name: // changeRenderPipeFieldOptions // // Description: // This procedure is called when the user changes any of the // values for fields. It sets the internal representation // and then updates the example to show the changes. // { // Note that we stored the fields values internally different // from what's presented in the menu. That is why the below // convoluted case statement. Sorry - see 123444. int $realFieldsValue = (`optionMenuGrp -q -sl rpFieldMenu` - 1); switch ($realFieldsValue) { case 0: setAttr "defaultResolution.fields" 0; break; case 1: case 2: setAttr "defaultResolution.fields" ($realFieldsValue + 2); break; case 3: case 4: setAttr "defaultResolution.fields" ($realFieldsValue - 2); break; } int $whichDominance = `optionMenuGrp -q -sl rpFieldDominanceMenu`; if ($whichDominance == 1) { setAttr "defaultResolution.oddFieldFirst" true; } else { setAttr "defaultResolution.oddFieldFirst" false; } setAttr "defaultResolution.zerothScanline" (`radioButtonGrp -q -sl rpScanlineButtons` -1); if (`radioButtonGrp -q -sl rpFieldButton1`) { setAttr "defaultRenderGlobals.fieldExtControl" 1; } else if (`radioButtonGrp -q -sl rpFieldButton2`) { setAttr "defaultRenderGlobals.fieldExtControl" 0; } else { setAttr "defaultRenderGlobals.fieldExtControl" 2; } string $test = `textFieldGrp -q -text rpOddFieldExt`; if (size($test) > 1) { catch (error ("Field extensions must be a single character.")); } else { setAttr -type "string" "defaultRenderGlobals.oddFieldExt" $test; } $test = `textFieldGrp -q -text rpEvenFieldExt`; if (size($test) > 1) { catch (error ("Field extensions must be a single character.")); } else { setAttr -type "string" "defaultRenderGlobals.evenFieldExt" $test; } updateRenderPipeFieldOptions; updateRenderPipeFileOutputFeedback; } global proc updateRenderPipeFileOutputFeedback () // // Procedure Name: // updateRenderPipeFileOutputFeedback // // Description: // Updates lines of text that allow the user to see // what files are going to be created when they render. // { // string $title1 = " File Name: "; // string $title2 = " To: "; // // string $prefix = `textFieldGrp -query -text RenderPipeFileName`; // if ($prefix == "(not set; using filename)") { // string $sceneName = `file -q -sn`; // if (size($sceneName) == 0) { // $prefix = "untitled"; // } else { // string $buffer[]; // tokenize $sceneName "/\\" $buffer; // string $tail = $buffer[size($buffer) - 1]; // tokenize $tail "." $buffer; // $tail = $buffer[0]; // $prefix = $tail; // } // } // // // Image extension // // // string $imageType; // int $imageUse = `getAttr "defaultRenderGlobals.outFormatControl"`; // if ($imageUse == 1) { // // Don't use extension // $imageType = ""; // } else if ($imageUse == 0) { // // Show the extension // global string $imgExt[]; // This is the actual file extension // global int $imgExtNum[]; // This is the corresponding internal value // // int $imageNum = `getAttr "defaultRenderGlobals.imageFormat"`; // for ($i=0; $i < size($imgExtNum); ++$i) { // if ($imageNum == $imgExtNum[$i]) { // $imageType = "."+$imgExt[$i]; // break; // } // } // } else if ($imageUse == 2) { // // User specified // // // $imageType = "."+`getAttr "defaultRenderGlobals.outFormatExt"` ; // } // // // Frames number extension // string $frame1 = ""; // string $frame2 = ""; // int $useAnim = `getAttr "defaultRenderGlobals.animation"`; // if ($useAnim) { // // // if useAnim, make sure it's not a movie format, or else // // bad extension names will be printed out to the window. // // // int $imgFormat = `getAttr "defaultRenderGlobals.imageFormat"`; // if ($imgFormat == 21 || $imgFormat == 22 || $imgFormat == 23) // $useAnim = 0; // } // if ($useAnim) { // float $byf = `getAttr defaultRenderGlobals.byFrameStep`; // if ($byf == 0.0) $byf = 0.00001; // // int $pad = `getAttr "defaultRenderGlobals.extensionPadding"`; // int $f1 = `getAttr "defaultRenderGlobals.startFrame"`; // int $f2 = `getAttr "defaultRenderGlobals.endFrame"`; // int $numFrames = ($f2 - $f1) / $byf; // // // Check to see if the numbers are being modified // if (`getAttr "defaultRenderGlobals.modifyExtension"`) { // $f1 = `getAttr defaultRenderGlobals.startExtension`; // $f2 = $f1 + ($numFrames * `getAttr defaultRenderGlobals.byExtension`); // } // // // Convert to strings // // // $frame1 = $f1; // $frame2 = $f2; // // // Pad the numbers // for ($i=size($frame1); $i<$pad; $i++) { // $frame1 = "0"+$frame1; // } // if (`getAttr "defaultRenderGlobals.periodInExt"`) // $frame1 = "."+$frame1; // // for ($i=size($frame2); $i<$pad; $i++) { // $frame2 = "0"+$frame2; // } // if (`getAttr "defaultRenderGlobals.periodInExt"`) // $frame2 = "."+$frame2; // } // // // Check for fields // // string $fieldExt = ""; // int $whichFields = `getAttr defaultResolution.fields`; // int $useFields = ($whichFields != 0); // int $useFieldExt = (`getAttr "defaultRenderGlobals.fieldExtControl"` != 1); // int $defFieldExt = (`getAttr "defaultRenderGlobals.fieldExtControl"` == 0); // int $useCustom = (`getAttr "defaultRenderGlobals.fieldExtControl"` == 2); // // // Note that I am not using a "." in front of these. // // That's the way the code works now. // // I think that there should be a "." // // // if ($useFields && $useFieldExt) { // // Add fields to the file name // if ($defFieldExt) { // if ($whichFields == 1) $fieldExt = "o"; // if ($whichFields == 2) $fieldExt = "e"; // if ($whichFields == 3 || $whichFields == 4) $fieldExt = "e (o)"; // } else if ($useCustom) { // if ($whichFields == 1) $fieldExt = `getAttr "defaultRenderGlobals.oddFieldExt"`; // if ($whichFields == 2) $fieldExt = `getAttr "defaultRenderGlobals.evenFieldExt"`; // if ($whichFields == 3 || $whichFields == 4) $fieldExt = `getAttr "defaultRenderGlobals.oddFieldExt"` // + " (" + `getAttr "defaultRenderGlobals.evenFieldExt"` + ")"; // } // } // // // Now put them all together to show what is going to happen // int $frameBeforeExt = `getAttr "defaultRenderGlobals.putFrameBeforeExt"`; // 0=ext.frame, 1=frame.ext // if ($frameBeforeExt == 0) { // text -edit -label ($title1+$prefix+$imageType+$frame1+$fieldExt) rpStartFileName; // if ($useAnim) { // text -edit -label ($title2+$prefix+$imageType+$frame2+$fieldExt) rpEndFileName; // } else { // text -edit -label "" rpEndFileName; // } // } else { // text -edit -label ($title1+$prefix+$frame1+$fieldExt+$imageType) rpStartFileName; // if ($useAnim) { // text -edit -label ($title2+$prefix+$frame2+$fieldExt+$imageType) rpEndFileName; // } else { // text -edit -label "" rpEndFileName; // } // } } global proc updateRenderPipeMotionBlur () // // Procedure Name: // updateRenderPipeMotionBlur // // Description: // Gets the real values from the nodes and sets the UI based // on these values. This procedure updates all of the motion // blur values. // { int $useBlur = `getAttr defaultRenderGlobals.motionBlur`; // checkBoxGrp -edit -v1 $useBlur rpBlurCheck; int $blur2d = (`getAttr defaultRenderGlobals.motionBlurType` == 0); if ($blur2d) { radioButtonGrp -edit -select 1 rpBlurButton1; } else { radioButtonGrp -edit -select 1 rpBlurButton2; } radioButtonGrp -edit -enable $useBlur rpBlurButton1; radioButtonGrp -edit -enable $useBlur rpBlurButton2; int $keepMotionVector = (`getAttr defaultRenderGlobals.keepMotionVector` == 1); if ($useBlur && $blur2d && $keepMotionVector) { global string $imgExt[]; // This is the actual file extension global int $imgExtNum[]; // This is the corresponding internal value string $imageFormatExt = ""; int $imageFormatNum = `getAttr defaultRenderGlobals.imageFormat`; // Get the corresponding imgExt for this imageFormat. for ($i = 0; $i < size($imgExtNum); $i += 1) { if ($imageFormatNum == $imgExtNum[$i]) { $imageFormatExt = $imgExt[$i]; break; } } // Check if the image format is not IFF. // // Note: there are two IFF image types. One for 8 bit images // and one for 16 bit images. They both have an imgExt of iff. if ($imageFormatExt != "iff" ) { warning ("Non-IFF image formats are not supported when writing"+ " 2D motion vectors; setting image format to IFF"); // Set globals imageFormat to Maya IFF setAttr defaultRenderGlobals.imageFormat 7; } } attrControlGrp -edit -enable $useBlur rpBlurFrameField; attrControlGrp -edit -enable ($useBlur && $blur2d) rpBlurLengthField; // attrControlGrp -edit -enable ($useBlur && $blur2d) rpBlurSharpField; // // attrControlGrp -edit -enable ($useBlur && $blur2d) rpBlurSmoothField; // // int $smoothColor = `getAttr defaultRenderGlobals.smoothColor`; // radioButtonGrp -edit // -enable ($useBlur && $blur2d) // -select ($smoothColor + 1) // rpBlurSmoothRadio; // // attrControlGrp -edit -enable ($useBlur && $blur2d) rpBlurVectorCheck; // // if(!`about -mac`){ // int $useMemoryCap = `getAttr defaultRenderGlobals.useBlur2DMemoryCap`; // attrControlGrp -edit // -enable ($useBlur && $blur2d) rpBlurMemoryCapCheck; // // attrControlGrp -edit // -enable ($useBlur && $blur2d && $useMemoryCap) // rpBlurMemoryCapField; // } } // Description: This procedure is called to update the render layer // enabled control. // global proc updateRenderPipeRenderLayerEnable() { int $doPasses = false; int $doLayers = `getAttr defaultRenderGlobals.renderLayerEnable`; // if ( $doLayers ) { // $doPasses = `getAttr defaultRenderGlobals.renderLayerPassEnable`; // } // else { // $doPasses = `getAttr defaultRenderGlobals.renderGlobalPassEnable`; // } updateRenderPipeRenderLayerLayout( $doLayers, $doPasses ); } // Description: This procedure is called to update the render layer // pass enabled control. // global proc updateRenderPipeRenderLayerPassEnable() { // int $doLayers = `getAttr defaultRenderGlobals.renderLayerEnable`; // int $doPasses = `getAttr defaultRenderGlobals.renderLayerPassEnable`; // updateRenderPipeRenderLayerLayout( $doLayers, $doPasses ); } // Description: This procedure is called to update the render layout // control. // global proc updateRenderPipeRenderLayerLayout( int $doLayers, int $doPasses ) { updateRenderPipeRenderLayerFilters; if ( $doLayers ) { if ( $doPasses ) { spreadSheetEditor -e -filter renderLayerFilter -fal {"rndr","b","cp","s","di","sp"} "rpLayerOutliner"; } else { spreadSheetEditor -e -filter renderLayerFilter -fal {"rndr"} "rpLayerOutliner"; } // attrControlGrp -edit -enable true rpRenderLayerPassEnable; // attrControlGrp -edit -enable false rpRenderGlobalPassEnable; frameLayout -e -m true "rpLayerAttrLayout"; } else { if ( $doPasses ) { spreadSheetEditor -e -filter glblRenderFilter -fal {"b","cp","s","di","sp"} "rpLayerOutliner"; frameLayout -e -m true "rpLayerAttrLayout"; } else { frameLayout -e -m false "rpLayerAttrLayout"; } // attrControlGrp -edit -enable true rpRenderGlobalPassEnable; // attrControlGrp -edit -enable false rpRenderLayerPassEnable; } } // Description: This procedure is called to update the render globals // pass enable control. // global proc updateRenderPipeRenderGlobalPassEnable() { // int $doLayers = `getAttr defaultRenderGlobals.renderLayerEnable`; // int $doPasses = `getAttr defaultRenderGlobals.renderGlobalPassEnable`; // updateRenderPipeRenderLayerLayout( $doLayers, $doPasses ); } global proc updateRenderPipeRenderLayerOptions () // // Procedure Name: // updateRenderPipeRenderLayerOptions // // Description: // Gets the real values from the option vars and sets the UI based // on these values. This procedure updates all of the RL/RP // values. // { int $doLayers = `getAttr "defaultRenderGlobals.renderLayerEnable"`; int $doLayerPasses = false; // `getAttr "defaultRenderGlobals.renderLayerPassEnable"`; int $doGlobalPasses = false; // `getAttr "defaultRenderGlobals.renderGlobalPassEnable"`; int $doSubdirs = false; // `getAttr "defaultRenderGlobals.renderLayerSubdirs"`; if ( $doLayers ) { updateRenderPipeRenderLayerLayout( true, $doLayerPasses ); } else { updateRenderPipeRenderLayerLayout( false, $doGlobalPasses ); } } global proc RenderPipeGlobalsRevertToDefault() { // Call the maya software version of this function to reset the // defaultRenderGlobals, the defaultQuality and the // defaultResolution mayaSoftwareGlobalsRevertToDefault(); } // Description: This procedure is called to update all the frames // in the RenderPipe render globals tab. // global proc updateRenderPipeGlobalsTab() { updateRenderPipeFileOutputFeedback; // if (`frameLayout -q -cl RenderPipeQualityFrame` == 0) { // updateRenderPipeRenderQuality; // } if (`frameLayout -q -cl rpFieldOptionsFrame` == 0) { updateRenderPipeFieldOptions; } if (`frameLayout -q -cl rpBlurFrame` == 0) { updateRenderPipeMotionBlur; } // if (`frameLayout -q -cl rpRenderLayerFrame` == 0) { // updateRenderPipeRenderLayerOptions; // } }