// // HDR Shop Light control // HdrShopLightControl.mel global proc brock_lightgencontrol() { // create UI layout - vars for global sizing int $uiLabelWidth = 120; int $uiInputWidth = 100; int $uiWidth = $uiLabelWidth + $uiInputWidth ; // delete UI function on close/open if ( `window -exists HdrShopLightControl` == true ) deleteUI HdrShopLightControl; window -title ":: HdrShopLightControl ::" -maximizeButton false -minimizeButton true -sizeable true -resizeToFitChildren true -menuBar true -menuBarVisible true HdrShopLightControl; // menu creation // OpenHdrLight menu -label "File" OpenHdrLight; menuItem -label "HDR Shop Script Open" -c "ConnectControl"; // Help menu -label "Help" -tearOff true; menuItem -label "Help with HdrShopLightControl" -c "HdrShopLightControl_help 1"; menuItem -label "About HdrShopLightControl" -c "HdrShopLightControl_help 2"; //scrollLayout // -hst 16 // -vst 16 //-childResizable true // -minChildWidth $uiWidth; //columnLayout // -adjustableColumn true // -rowSpacing 6; frameLayout -label "HDR Shop Light Control" -labelAlign "center" -cll true -mh 5 -mw 10 -bs "etchedOut" -bv true -lw 150 HdrShopLightControlFrame; // begin input area columnLayout -adjustableColumn true; // HdrLight string $HdrSet[] = `ls "*_control"`; int $sizeHdrSet = `size ($HdrSet)`; rowLayout -numberOfColumns 2 -cat 1 "right" 5 -columnWidth 1 $uiLabelWidth -columnWidth 2 $uiInputWidth; text -l "HDR Light Set"; optionMenu -cc "HdrLightBeforeValue" HdrLightSelect; if ($sizeHdrSet==0) { menuItem -label "None HDRLight Set"; } else { int $HdrSetNum; for ( $HdrSetNum = 0; $HdrSetNum<$sizeHdrSet; $HdrSetNum++) { string $colletName = `substitute "_control" $HdrSet[$HdrSetNum] ""`; menuItem -label $colletName; } } setParent ..; rowLayout -numberOfColumns 2 -cat 1 "right" 5 -columnWidth 1 $uiLabelWidth -columnWidth 2 $uiInputWidth; text -l "Visibility"; checkBoxGrp -h 20 -numberOfCheckBoxes 1 -v1 0 -cc "HdrLightControl" Hdrvisibility; setParent ..; // Dimmer rowLayout -numberOfColumns 2 -cat 1 "right" 5 -columnWidth 1 $uiLabelWidth -columnWidth 2 $uiInputWidth; text -l "Dimmer"; floatSliderGrp -field true -precision 3 -sliderStep .1 -value 1 -minValue 0 -maxValue 100 -cc "HdrLightControl" -dc "HdrLightControl" Dimmer; setParent ..; separator -h 5; // DiffuseSpecular rowLayout -numberOfColumns 2 -cat 1 "right" 5 -columnWidth 1 $uiLabelWidth -columnWidth 2 $uiInputWidth; text -l ""; checkBoxGrp -h 20 -numberOfCheckBoxes 2 -labelArray2 "Diffuse" "Specular" -v1 1 -v2 1 -cc "HdrLightControl" DiffuseSpecular; setParent ..; // LightHue rowLayout -numberOfColumns 2 -cat 1 "right" 5 -columnWidth 1 $uiLabelWidth -columnWidth 2 $uiInputWidth; text -l "Light Hue"; floatSliderGrp -field true -precision 2 -sliderStep 1 -value 0 -minValue 0 -maxValue 360 -cc "HdrLightColorControl" -dc "HdrLightColorControl" LightHue; setParent ..; // LightSat rowLayout -numberOfColumns 2 -cat 1 "right" 5 -columnWidth 1 $uiLabelWidth -columnWidth 2 $uiInputWidth; text -l "Light saturation"; floatSliderGrp -field true -precision 3 -sliderStep .1 -value 0 -minValue -1 -maxValue 1 -cc "HdrLightColorControl" -dc "HdrLightColorControl" LightSat; setParent ..; // LightVal rowLayout -numberOfColumns 2 -cat 1 "right" 5 -columnWidth 1 $uiLabelWidth -columnWidth 2 $uiInputWidth; text -l "Light Val"; floatSliderGrp -field true -precision 3 -sliderStep .1 -value 0 -minValue -1 -maxValue 1 -cc "HdrLightColorControl" -dc "HdrLightColorControl" LightVal; setParent ..; separator -h 5; // ShadowColor rowLayout -numberOfColumns 2 -cat 1 "right" 5 -columnWidth 1 $uiLabelWidth -columnWidth 2 $uiInputWidth; text -l "Shadow Color"; colorSliderGrp -rgb 0 0 0 -cc "HdrLightControl" -dc "HdrLightControl" ShadowColor; setParent ..; separator -h 5; // DmapRadio; rowLayout -numberOfColumns 2 -cat 1 "right" 5 -columnWidth 1 $uiLabelWidth -columnWidth 2 $uiInputWidth; text -l "Use Dmap Shadow"; radioButtonGrp -numberOfRadioButtons 4 -cw 1 65 -cw 2 65 -cw 3 65 -cw 4 65 -labelArray4 "None" "Upper" "Lower" "All" -select 1 -cc "HdrLightControl" DmapRadio; setParent ..; // DmapResolution rowLayout -numberOfColumns 2 -cat 1 "right" 5 -columnWidth 1 $uiLabelWidth -columnWidth 2 $uiInputWidth; text -l "Dmap Resolution"; intSliderGrp -field true -sliderStep 1 -value 512 -minValue 0 -maxValue 2048 -cc "HdrLightControl" -dc "HdrLightControl" DmapResolution; setParent ..; // DmapFilterSize rowLayout -numberOfColumns 2 -cat 1 "right" 5 -columnWidth 1 $uiLabelWidth -columnWidth 2 $uiInputWidth; text -l "Dmap Filter Size"; intSliderGrp -field true -sliderStep 1 -value 1 -minValue 0 -maxValue 20 -cc "HdrLightControl" -dc "HdrLightControl" DmapFilterSize; setParent ..; // DmapBias rowLayout -numberOfColumns 2 -cat 1 "right" 5 -columnWidth 1 $uiLabelWidth -columnWidth 2 $uiInputWidth; text -l "Dmap Bias"; floatSliderGrp -field true -precision 3 -sliderStep .1 -value 0.001 -minValue 0 -maxValue 1 -cc "HdrLightControl" -dc "HdrLightControl" DmapBias; setParent ..; separator -h 5; // RaytraceRadio rowLayout -numberOfColumns 2 -cat 1 "right" 5 -columnWidth 1 $uiLabelWidth -columnWidth 2 $uiInputWidth; text -l "Use Raytrace Shadow"; radioButtonGrp -numberOfRadioButtons 4 -cw 1 65 -cw 2 65 -cw 3 65 -cw 4 65 -labelArray4 "None" "Upper" "Lower" "All" -select 1 -cc "HdrLightControl" RaytraceRadio; setParent ..; // LightAngle rowLayout -numberOfColumns 2 -cat 1 "right" 5 -columnWidth 1 $uiLabelWidth -columnWidth 2 $uiInputWidth; text -l "Light Angle"; floatSliderGrp -field true -precision 3 -sliderStep .1 -value 0 -minValue 0 -maxValue 360 -cc "HdrLightControl" -dc "HdrLightControl" LightAngle; setParent ..; // ShadowRay rowLayout -numberOfColumns 2 -cat 1 "right" 5 -columnWidth 1 $uiLabelWidth -columnWidth 2 $uiInputWidth; text -l "Shadow Rays"; intSliderGrp -field true -sliderStep 1 -value 1 -minValue 1 -maxValue 40 -cc "HdrLightControl" ShadowRay; setParent ..; // RayDepthLimit rowLayout -numberOfColumns 2 -cat 1 "right" 5 -columnWidth 1 $uiLabelWidth -columnWidth 2 $uiInputWidth; text -l "Ray Depth Limit"; intSliderGrp -field true -sliderStep 1 -value 1 -minValue 0 -maxValue 10 -cc "HdrLightControl" RayDepthLimit; setParent ..; separator -h 5; // break connections rowLayout -numberOfColumns 3 -cat 1 "right" 5 -columnWidth 1 $uiLabelWidth; text -l "Break Connections"; button -label "Intensity" -command "HdrBreakIntensity" btnIntensity; button -label "Everything" -command "HdrBreakAllConnections" btnEverything; setParent ..; separator -h 5; // import top rowLayout -numberOfColumns 2 -cat 1 "right" 5 -columnWidth 1 $uiLabelWidth; text -l "Additional Lights"; button -label "Generate..." -command "HdrReimportTop" btnImportTop; setParent ..; rowLayout -numberOfColumns 2 -cat 1 "right" 5 -columnWidth 1 $uiLabelWidth -columnWidth 2 $uiInputWidth; text -l "Keep Top Percent"; intSliderGrp -field true -sliderStep 1 -value 25 -minValue 0 -maxValue 100 KeepPercent; setParent ..; setParent ..; setParent ..; setParent ..; showWindow HdrShopLightControl; HdrLightBeforeValue; } global proc ConnectControl() { string $HdrScript = `fileDialog -dm "*.mel"`; string $bufferHdr[]; int $prefixNum = `tokenize $HdrScript "/." $bufferHdr`-2; string $prefixHdr = $bufferHdr[$prefixNum]; string $prefixHdrCheck[] = `ls ($prefixHdr+"_control")`; if (`size($prefixHdrCheck)`==0) { string $openScript = "source " + "\"" + $HdrScript + "\""; eval ($openScript); rename "lightgen_control" ($prefixHdr+"_control"); } else { warning "Same HDR LightSet existing"; return; } addAttr -ln HueOffset -at double -min 0 -max 360 -dv 0 ($prefixHdr+"_control"); setAttr -e -keyable true ($prefixHdr+"_control.HueOffset"); setAttr ($prefixHdr+"_control.HueOffset") 0; addAttr -ln SatOffset -at double -min -1 -max 1 -dv 0 ($prefixHdr+"_control"); setAttr -e -keyable true ($prefixHdr+"_control.SatOffset"); setAttr ($prefixHdr+"_control.SatOffset") 0; addAttr -ln ValOffset -at double -min -1 -max 1 -dv 0 ($prefixHdr+"_control"); setAttr -e -keyable true ($prefixHdr+"_control.ValOffset"); setAttr ($prefixHdr+"_control.ValOffset") 0; addAttr -ln emitDiffuse -at bool ($prefixHdr+"_control"); setAttr -e -keyable true ($prefixHdr+"_control.emitDiffuse"); setAttr ($prefixHdr+"_control.emitDiffuse") 1; addAttr -ln emitSpecular -at bool ($prefixHdr+"_control"); setAttr -e -keyable true ($prefixHdr+"_control.emitSpecular"); setAttr ($prefixHdr+"_control.emitSpecular") 1; addAttr -ln _______________1 -at bool ($prefixHdr+"_control"); setAttr -e -keyable true ($prefixHdr+"_control._______________1"); addAttr -ln useDMapUpper -at bool ($prefixHdr+"_control"); setAttr -e -keyable true ($prefixHdr+"_control.useDMapUpper"); setAttr ($prefixHdr+"_control.useDMapUpper") 0; addAttr -ln useDMapLower -at bool ($prefixHdr+"_control"); setAttr -e -keyable true ($prefixHdr+"_control.useDMapLower"); setAttr ($prefixHdr+"_control.useDMapLower") 0; addAttr -ln shadowColor -at float3 -uac ($prefixHdr+"_control"); addAttr -ln shadColorR -at "float" -p shadowColor ($prefixHdr+"_control"); addAttr -ln shadColorG -at "float" -p shadowColor ($prefixHdr+"_control"); addAttr -ln shadColorB -at "float" -p shadowColor ($prefixHdr+"_control"); setAttr -e -keyable true ($prefixHdr+"_control.shadColorR"); setAttr -e -keyable true ($prefixHdr+"_control.shadColorG"); setAttr -e -keyable true ($prefixHdr+"_control.shadColorB"); setAttr -type double3 ($prefixHdr+"_control.shadowColor") 0 0 0; addAttr -ln dmapResolution -at long -min 0 -dv 512 ($prefixHdr+"_control"); setAttr -e -keyable true ($prefixHdr+"_control.dmapResolution"); setAttr ($prefixHdr+"_control.dmapResolution") 512; addAttr -ln dmapFilterSize -at long -min 0 -dv 1 ($prefixHdr+"_control"); setAttr -e -keyable true ($prefixHdr+"_control.dmapFilterSize"); setAttr ($prefixHdr+"_control.dmapFilterSize") 1; addAttr -ln dmapBias -at double -min 0 -dv 0.001 ($prefixHdr+"_control"); setAttr -e -keyable true ($prefixHdr+"_control.dmapBias"); setAttr ($prefixHdr+"_control.dmapBias") 0.001; addAttr -ln _______________2 -at bool ($prefixHdr+"_control"); setAttr -e -keyable true ($prefixHdr+"_control._______________2"); setAttr -lock true ($prefixHdr+"_control._______________2"); addAttr -ln useRayshadUpper -at bool ($prefixHdr+"_control"); setAttr -e -keyable true ($prefixHdr+"_control.useRayshadUpper"); setAttr ($prefixHdr+"_control.useRayshadUpper") 0; addAttr -ln useRayshadLower -at bool ($prefixHdr+"_control"); setAttr -e -keyable true ($prefixHdr+"_control.useRayshadLower"); setAttr ($prefixHdr+"_control.useRayshadLower") 0; addAttr -ln lightAngle -at double -min 0 -dv 0 ($prefixHdr+"_control"); setAttr -e -keyable true ($prefixHdr+"_control.lightAngle"); setAttr ($prefixHdr+"_control.lightAngle") 0; addAttr -ln shadowRays -at long -min 0 -dv 0 ($prefixHdr+"_control"); setAttr -e -keyable true ($prefixHdr+"_control.shadowRays"); setAttr ($prefixHdr+"_control.shadowRays") 1; addAttr -ln rayDepthLimit -at long -min 0 -dv 0 ($prefixHdr+"_control"); setAttr -e -keyable true ($prefixHdr+"_control.rayDepthLimit"); setAttr ($prefixHdr+"_control.rayDepthLimit") 1; group -em -name ($prefixHdr+"_UpperLite"); group -em -name ($prefixHdr+"_LowerLite"); parent ($prefixHdr+"_UpperLite") ($prefixHdr+"_LowerLite") ($prefixHdr+"_control"); // HdrLightBaseColor shadingNode -at ramp -n ($prefixHdr+"palette"); setAttr ($prefixHdr+"palette.type") 0; setAttr ($prefixHdr+"palette.interpolation") 0; setAttr -l true ($prefixHdr+"palette.type"); setAttr -l true ($prefixHdr+"palette.interpolation"); connectAttr -f ($prefixHdr+"palette.noise") ($prefixHdr+"_control._______________1"); setAttr -lock true ($prefixHdr+"_control._______________1"); int $LiteNum; for ($LiteNum=0; $LiteNum < 20; $LiteNum++) { string $lightName = `rename ("lightgen_light"+$LiteNum) ($prefixHdr+"_FillLight"+$LiteNum)`; string $lightShapeName = $prefixHdr+"_FillLightShape"+$LiteNum; HdrConnectAttrs($prefixHdr, $lightName, $lightShapeName, $LiteNum); } select -r ($prefixHdr+"_control"); HdrShopLightControl; //Hdr Light SetÀ» À§ÇÑ HdrLightBeforeValue; } // "HdrLightControl" global proc HdrLightControl() { string $HdrSetName = `optionMenu -q -v HdrLightSelect`; int $Hdrvisibility = `checkBoxGrp -q -v1 Hdrvisibility`; float $Dimmer = `floatSliderGrp -q -v Dimmer`; int $Diffuse = `checkBoxGrp -q -v1 DiffuseSpecular`; int $Specular = `checkBoxGrp -q -v2 DiffuseSpecular`; float $ShadowColor[] =`colorSliderGrp -q -rgb ShadowColor`; int $DmapResolution = `intSliderGrp -q -v DmapResolution`; int $DmapFilterSize = `intSliderGrp -q -v DmapFilterSize`; float $DmapBias = `floatSliderGrp -q -v DmapBias`; float $LightAngle = `floatSliderGrp -q -v LightAngle`; int $ShadowRay = `intSliderGrp -q -v ShadowRay`; int $RayDepthLimit = `intSliderGrp -q -v RayDepthLimit`; setAttr ($HdrSetName+"_control.dimmer") $Dimmer; setAttr ($HdrSetName+"_control.visibility") $Hdrvisibility; setAttr ($HdrSetName+"_control.emitDiffuse") $Diffuse; setAttr ($HdrSetName+"_control.emitSpecular") $Specular; int $DmapCheck = `radioButtonGrp -q -select DmapRadio`; if ($DmapCheck ==1) { setAttr ($HdrSetName+"_control.useDMapUpper") 0; setAttr ($HdrSetName+"_control.useDMapLower") 0; } if ($DmapCheck ==2) { setAttr ($HdrSetName+"_control.useDMapUpper") 1; setAttr ($HdrSetName+"_control.useDMapLower") 0; } if ($DmapCheck ==3) { setAttr ($HdrSetName+"_control.useDMapUpper") 0; setAttr ($HdrSetName+"_control.useDMapLower") 1; } if ($DmapCheck ==4) { setAttr ($HdrSetName+"_control.useDMapUpper") 1; setAttr ($HdrSetName+"_control.useDMapLower") 1; } setAttr -type double3 ($HdrSetName+"_control.shadowColor") $ShadowColor[0] $ShadowColor[1] $ShadowColor[2]; setAttr ($HdrSetName+"_control.dmapResolution") $DmapResolution; setAttr ($HdrSetName+"_control.dmapFilterSize") $DmapFilterSize; setAttr ($HdrSetName+"_control.dmapBias") $DmapBias; if (`radioButtonGrp -q -select RaytraceRadio` ==1) { setAttr ($HdrSetName+"_control.useRayshadUpper") 0; setAttr ($HdrSetName+"_control.useRayshadLower") 0; } if (`radioButtonGrp -q -select RaytraceRadio` ==2) { setAttr ($HdrSetName+"_control.useRayshadUpper") 1; setAttr ($HdrSetName+"_control.useRayshadLower") 0; } if (`radioButtonGrp -q -select RaytraceRadio` ==3) { setAttr ($HdrSetName+"_control.useRayshadUpper") 0; setAttr ($HdrSetName+"_control.useRayshadLower") 1; } if (`radioButtonGrp -q -select RaytraceRadio` ==4) { setAttr ($HdrSetName+"_control.useRayshadUpper") 1; setAttr ($HdrSetName+"_control.useRayshadLower") 1; } setAttr ($HdrSetName+"_control.lightAngle") $LightAngle; setAttr ($HdrSetName+"_control.shadowRays") $ShadowRay; setAttr ($HdrSetName+"_control.rayDepthLimit") $RayDepthLimit; HdrLightBeforeValue; } // HdrLightColorControl global proc HdrLightColorControl() { string $HdrSetName = `optionMenu -q -v HdrLightSelect`; float $LightHue = `floatSliderGrp -q -v LightHue`; float $LightSat = `floatSliderGrp -q -v LightSat`; float $LightVal = `floatSliderGrp -q -v LightVal`; setAttr ($HdrSetName+"_control.HueOffset") $LightHue; setAttr ($HdrSetName+"_control.SatOffset") $LightSat; setAttr ($HdrSetName+"_control.ValOffset") $LightVal; int $LNum; for ($LNum=0; $LNum < 20; $LNum++) { float $HdrColorTemp[] = `getAttr ($HdrSetName+"palette.colorEntryList[" + $LNum + "].color")`; vector $ToHSV = `rgb_to_hsv <<$HdrColorTemp[0],$HdrColorTemp[1],$HdrColorTemp[2]>>`; float $ConvertH = (($LightHue + ($ToHSV.x*360))%360)/360; float $ConvertS = ($LightSat + $ToHSV.y); float $ConvertV = ($LightVal + $ToHSV.z); vector $ToRGB = `hsv_to_rgb <<$ConvertH,$ConvertS,$ConvertV>>`; float $ConvertR = $ToRGB.x; float $ConvertG = $ToRGB.y; float $ConvertB = $ToRGB.z; setAttr ($HdrSetName+"_lightShape"+$LNum+".color") -type double3 $ConvertR $ConvertG $ConvertB; } HdrLightBeforeValue; } global proc HdrLightBeforeValue() { string $HdrSetName = `optionMenu -q -v HdrLightSelect`; string $HdrCheck[] = `ls "*_control.dimmer"`; if (`size($HdrCheck)` >= 1) { float $B_Dimmer = `getAttr ($HdrSetName+"_control.dimmer")`; floatSliderGrp -e -v $B_Dimmer Dimmer; float $B_Hdrvisibility = `getAttr ($HdrSetName+"_control.visibility")`; checkBoxGrp -e -v1 $B_Hdrvisibility Hdrvisibility; float $B_HueOffset = `getAttr ($HdrSetName+"_control.HueOffset")`; floatSliderGrp -e -v $B_HueOffset LightHue; float $B_SatOffset = `getAttr ($HdrSetName+"_control.SatOffset")`; floatSliderGrp -e -v $B_SatOffset LightSat; float $B_ValOffset = `getAttr ($HdrSetName+"_control.ValOffset")`; floatSliderGrp -e -v $B_ValOffset LightVal; float $B_Diffuse = `getAttr ($HdrSetName+"_control.emitDiffuse")`; checkBoxGrp -e -v1 $B_Diffuse DiffuseSpecular; float $B_Specular = `getAttr ($HdrSetName+"_control.emitSpecular")`; checkBoxGrp -e -v2 $B_Specular DiffuseSpecular; float $B_ShadowColor[] = `getAttr ($HdrSetName+"_control.shadowColor")`; colorSliderGrp -e -rgb $B_ShadowColor[0] $B_ShadowColor[1] $B_ShadowColor[2] ShadowColor; int $B_DmapRadioUp = `getAttr ($HdrSetName+"_control.useDMapUpper")`; int $B_DmapRadioLo = `getAttr ($HdrSetName+"_control.useDMapLower")`; if ($B_DmapRadioUp == 1) { if ($B_DmapRadioLo == 1) { radioButtonGrp -e -select 4 DmapRadio; } else { radioButtonGrp -e -select 2 DmapRadio; } } else { if($B_DmapRadioLo == 1 ) { radioButtonGrp -e -select 3 DmapRadio; } else { radioButtonGrp -e -select 1 DmapRadio; } } int $B_dmapResolution = `getAttr ($HdrSetName+"_control.dmapResolution")`; intSliderGrp -e -v $B_dmapResolution DmapResolution; int $B_dmapFilterSize = `getAttr ($HdrSetName+"_control.dmapFilterSize")`; intSliderGrp -e -v $B_dmapFilterSize DmapFilterSize; float $B_dmapBias = `getAttr ($HdrSetName+"_control.dmapBias")`; floatSliderGrp -e -v $B_dmapBias DmapBias; int $B_RaytraceRadioUp = `getAttr ($HdrSetName+"_control.useRayshadUpper")`; int $B_RaytraceRadioLo = `getAttr ($HdrSetName+"_control.useRayshadLower")`; if ($B_RaytraceRadioUp == 1) { if ($B_RaytraceRadioLo == 1) { radioButtonGrp -e -select 4 RaytraceRadio; } else { radioButtonGrp -e -select 2 RaytraceRadio; } } else { if($B_RaytraceRadioLo == 1 ) { radioButtonGrp -e -select 3 RaytraceRadio; } else { radioButtonGrp -e -select 0 RaytraceRadio; } } float $B_LightAngle = `getAttr ($HdrSetName+"_control.lightAngle")`; floatSliderGrp -e -v $B_LightAngle LightAngle; int $B_ShadowRay = `getAttr ($HdrSetName+"_control.shadowRays")`; intSliderGrp -e -v $B_ShadowRay ShadowRay; int $B_RayDepthLimit = `getAttr ($HdrSetName+"_control.rayDepthLimit")`; intSliderGrp -e -v $B_RayDepthLimit RayDepthLimit; // select -r ($HdrSetName+"_control"); // Dim Check if ($B_Hdrvisibility==0) { dimWhen -false 1 Dimmer; dimWhen -false 1 DiffuseSpecular; dimWhen -false 1 LightHue; dimWhen -false 1 LightSat; dimWhen -false 1 LightVal; dimWhen -false 1 ShadowColor; dimWhen -false 1 DmapRadio; dimWhen -false 1 DmapResolution; dimWhen -false 1 DmapFilterSize; dimWhen -false 1 DmapBias; dimWhen -false 1 RaytraceRadio; dimWhen -false 1 LightAngle; dimWhen -false 1 ShadowRay; dimWhen -false 1 RayDepthLimit; dimWhen -false 1 KeepPercent; dimWhen -false 1 btnIntensity; dimWhen -false 1 btnEverything; dimWhen -false 1 btnImportTop; } else { dimWhen -true 1 Dimmer; dimWhen -true 1 DiffuseSpecular; dimWhen -true 1 LightHue; dimWhen -true 1 LightSat; dimWhen -true 1 LightVal; dimWhen -true 1 ShadowColor; dimWhen -true 1 DmapRadio; dimWhen -true 1 DmapResolution; dimWhen -true 1 DmapFilterSize; dimWhen -true 1 DmapBias; dimWhen -true 1 RaytraceRadio; dimWhen -true 1 LightAngle; dimWhen -true 1 ShadowRay; dimWhen -true 1 RayDepthLimit; dimWhen -true 1 KeepPercent; dimWhen -true 1 btnIntensity; dimWhen -true 1 btnEverything; dimWhen -true 1 btnImportTop; if ($B_DmapRadioUp==0 && $B_DmapRadioLo==0) { dimWhen -false 1 DmapResolution; dimWhen -false 1 DmapFilterSize; dimWhen -false 1 DmapBias; dimWhen -true 1 RaytraceRadio; } else { dimWhen -true 1 DmapResolution; dimWhen -true 1 DmapFilterSize; dimWhen -true 1 DmapBias; dimWhen -false 1 RaytraceRadio; dimWhen -false 1 LightAngle; dimWhen -false 1 ShadowRay; dimWhen -false 1 RayDepthLimit; } if ($B_RaytraceRadioUp==0 && $B_RaytraceRadioLo==0) { dimWhen -false 1 LightAngle; dimWhen -false 1 ShadowRay; dimWhen -false 1 RayDepthLimit; dimWhen -true 1 DmapRadio; } else { dimWhen -false 1 DmapRadio; dimWhen -false 1 DmapResolution; dimWhen -false 1 DmapFilterSize; dimWhen -false 1 DmapBias; dimWhen -true 1 LightAngle; dimWhen -true 1 ShadowRay; dimWhen -true 1 RayDepthLimit; } } } else //if (`size($HdrCheck)` >= 1) { dimWhen -false 1 Hdrvisibility; dimWhen -false 1 Dimmer; dimWhen -false 1 DiffuseSpecular; dimWhen -false 1 LightHue; dimWhen -false 1 LightSat; dimWhen -false 1 LightVal; dimWhen -false 1 ShadowColor; dimWhen -false 1 DmapRadio; dimWhen -false 1 DmapResolution; dimWhen -false 1 DmapFilterSize; dimWhen -false 1 DmapBias; dimWhen -false 1 RaytraceRadio; dimWhen -false 1 LightAngle; dimWhen -false 1 ShadowRay; dimWhen -false 1 RayDepthLimit; dimWhen -false 1 KeepPercent; dimWhen -false 1 btnIntensity; dimWhen -false 1 btnEverything; dimWhen -false 1 btnImportTop; } } //HdrShopLightControl; //HdrLightBeforeValue; // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ // everything below this point was added by Brent M. Watkins // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ global proc HdrBreakIntensity() { string $HdrSetName = `optionMenu -q -v HdrLightSelect`; HdrBreakConnections($HdrSetName, {"intensity"}); } global proc HdrBreakAllConnections() { string $HdrSetName = `optionMenu -q -v HdrLightSelect`; // get the control string $lights[] = `ls -lights ($HdrSetName + "*LightShape*")`; // get connections string $connections[] = `listConnections -source yes -destination no -plugs yes -connections yes $lights[0]`; // iterate over connections to get attribute names string $attrs[]; for ($connection in $connections) { string $tokens[]; tokenize $connection "." $tokens; if ($tokens[0] == $lights[0]) { $attrs[size($attrs)] = $tokens[1]; } } HdrBreakConnections($HdrSetName, $attrs); } global proc HdrBreakConnections(string $HdrSetName, string $attrs[]) { // assume lights named in this way string $lights[] = `ls -lights ($HdrSetName + "*LightShape*")`; for ($light in $lights) { for ($attr in $attrs) { string $dest = $light + "." + $attr; string $source = `connectionInfo -sourceFromDestination $dest`; if ( size($source) > 0 ) { if ($attr == "intensity") { // for some reason, intensity reverts to the default float $intensity = `getAttr $dest`; disconnectAttr $source $dest; setAttr $dest $intensity; } else { disconnectAttr $source $dest; } // if the incoming connection was from an anim curve, // delete the curve string $tokens[]; int $token_num = `tokenize $source "." $tokens`-2; string $curve_name = $tokens[$token_num]; string $curve_type = `objectType $curve_name`; if (`gmatch $curve_type "animCurve*"`) { delete $curve_name; } } } } } global proc HdrConnectAttrs(string $prefixHdr, string $lightName, string $lightShapeName, int $LiteNum) { string $controlName = $prefixHdr + "_control"; connectAttr -f ($controlName+".emitDiffuse") ($lightShapeName+".emitDiffuse"); connectAttr -f ($controlName+".emitSpecular") ($lightShapeName+".emitSpecular"); connectAttr -f ($controlName+".shadowColor") ($lightShapeName+".shadowColor"); connectAttr -f ($controlName+".dmapResolution") ($lightShapeName+".dmapResolution"); connectAttr -f ($controlName+".dmapFilterSize") ($lightShapeName+".dmapFilterSize"); connectAttr -f ($controlName+".dmapBias") ($lightShapeName+".dmapBias"); connectAttr -f ($controlName+".lightAngle") ($lightShapeName+".lightAngle"); connectAttr -f ($controlName+".shadowRays") ($lightShapeName+".shadowRays"); connectAttr -f ($controlName+".rayDepthLimit") ($lightShapeName+".rayDepthLimit"); selectKey -add -k -f 1 ($lightShapeName+".intensity"); keyframe -animation keys -option over -absolute -floatChange 1; // +-+-+-+-+-+-+-+ // added by Brent // +-+-+-+-+-+-+-+ string $curves[] = `keyframe -query -name $lightShapeName`; for ( $curve in $curves ) { string $tokens[]; tokenize $curve "_" $tokens; rename $curve ($lightShapeName + "_" + $tokens[2]); } // get // HdrLightBaseColor float $HdrColorTemp[] = `getAttr ($lightShapeName+".color")`; setAttr ($prefixHdr+"palette.colorEntryList[" + $LiteNum + "].color") -type double3 $HdrColorTemp[0] $HdrColorTemp[1] $HdrColorTemp[2]; setAttr -l true ($prefixHdr+"palette.colorEntryList[" + $LiteNum + "].color"); /*** what the hell is this attribute for?? float $CRposit = ($LiteNum+1)*0.05; setAttr ($prefixHdr+"palette.colorEntryList[" + $LiteNum + "].position") $CRposit; setAttr -l true ($prefixHdr+"palette.colorEntryList[" + $LiteNum + "].position"); ***/ float $underCheck = `getAttr ($lightName+".translateY")`; if ($underCheck <= 0) { connectAttr -f ($controlName+".useDMapLower") ($lightShapeName+".useDepthMapShadows"); connectAttr -f ($controlName+".useRayshadLower") ($lightShapeName+".useRayTraceShadows"); parent ($lightName) ($prefixHdr+"_LowerLite"); } else { connectAttr -f ($controlName+".useDMapUpper") ($lightShapeName+".useDepthMapShadows"); connectAttr -f ($controlName+".useRayshadUpper") ($lightShapeName+".useRayTraceShadows"); parent ($lightName) ($prefixHdr+"_UpperLite"); } } global proc HdrReimportTop() { string $HdrScript = `fileDialog -dm "*.mel"`; string $openScript = "source " + "\"" + $HdrScript + "\""; eval ($openScript); string $HdrSetName = `optionMenu -q -v HdrLightSelect`; string $oldControl = "lightgen_control"; string $newControl = $HdrSetName + "_control"; // how many lights were there? int $start_num = size(`ls -transforms ($HdrSetName + "*Light*")`); float $intensitys[]; string $lights[] = `ls -transforms "lightgen_light*"`; int $num_lights = `size($lights)`; for ($light in $lights) { int $num = `substring ($light) 15 (size($light))`; string $newname = `rename $light ($HdrSetName + "_AdditionalLight" +$num)`; $intensitys[size($intensitys)] = getAttr ($newname + ".intensity"); } int $keep_pct = `intSliderGrp -q -v KeepPercent`; int $keep = $num_lights * $keep_pct / 100; float $sorted_intensitys[] = sort($intensitys); float $cutoff; if ($keep == 0) { // pick a cutoff bigger than everything $cutoff = $sorted_intensitys[size($sorted_intensitys)-1] + 1; } else { $cutoff = $sorted_intensitys[size($sorted_intensitys)-$keep]; } // remove weaklings $lights = `ls -transforms ($HdrSetName + "_AdditionalLight*")`; for ($light in $lights) { float $intensity = `getAttr ($light + ".intensity")`; if ($intensity < $cutoff) { delete $light; } } // what is left? $lights = `ls -transforms ($HdrSetName + "_AdditionalLight*")`; // connect their attributes for ($light in $lights) { string $shapes[] = `listRelatives $light`; string $shape = $shapes[0]; // connect stuff from imported control to actual control string $conns[] = `listConnections -s yes -d no -p yes $shape`; for ($conn in $conns) { string $tokens[]; tokenize $conn "." $tokens; string $obj = $tokens[0]; string $obj_type = `objectType $obj`; string $source, $dest; if (`gmatch $obj_type "animCurve*"`) { $dest = $obj + ".input"; $source = `connectionInfo -sfd $dest`; } else { $source = $conn; $dest = `connectionInfo -dfs $source`; } tokenize $source "." $tokens; if ($tokens[0] == $oldControl) { disconnectAttr $source $dest; connectAttr ($newControl + "." + $tokens[1]) $dest; } } // connect other stuff HdrConnectAttrs($HdrSetName, $light, $shape, $start_num++); } delete $oldControl; }