// =========================================================================== // 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 script lays out the attribute editor // for textureBakeSet nodes. // global proc overrideUvSetChanged (string $nodeName) { string $nodeAttr = $nodeName + ".overrideUvSet"; int $value = `getAttr $nodeAttr`; if( $value == 0 ) { editorTemplate -dimControl $nodeName "uvSetName" true; } else { editorTemplate -dimControl $nodeName "uvSetName" false; } } global proc uvRangeChanged (string $nodeName) { string $nodeAttr = $nodeName + ".uvRange"; int $value = `getAttr $nodeAttr`; if( $value == 2 ) { editorTemplate -dimControl $nodeName "uMin" false; editorTemplate -dimControl $nodeName "uMax" false; editorTemplate -dimControl $nodeName "vMin" false; editorTemplate -dimControl $nodeName "vMax" false; } else { editorTemplate -dimControl $nodeName "uMin" true; editorTemplate -dimControl $nodeName "uMax" true; editorTemplate -dimControl $nodeName "vMin" true; editorTemplate -dimControl $nodeName "vMax" true; } } global proc textureBakeAlphaChanged (string $nodeName) { string $nodeAttr = $nodeName + ".bakeAlpha"; int $value = `getAttr $nodeAttr`; if( $value == 1 ) { editorTemplate -dimControl $nodeName "alphaMode" false; } else { editorTemplate -dimControl $nodeName "alphaMode" true; } } // // update bitsPerChannel based on the texture format. // Only tiff can have 8/16/32 bits per channel // global proc updateBitsPerChannel(string $nodeName) { // tif if( `getAttr ($nodeName + ".fileFormat")` == 1 ) { editorTemplate -dimControl $nodeName "bitsPerChannel" false; } else { setAttr ($nodeName + ".bitsPerChannel") 1; editorTemplate -dimControl $nodeName "bitsPerChannel" true; } } global proc AEtextureBakeFormatNew (string $formatAttribute) { setUITemplate -pst attributeEditorTemplate; optionMenuGrp -label (uiRes("m_AEtextureBakeSetTemplate.kFileFormat")) textureBakeFormat; menuItem -label (uiRes("m_AEtextureBakeSetTemplate.kTIF")) -data 1; menuItem -label (uiRes("m_AEtextureBakeSetTemplate.kIFF")) -data 2; menuItem -label (uiRes("m_AEtextureBakeSetTemplate.kJPG")) -data 3; menuItem -label (uiRes("m_AEtextureBakeSetTemplate.kRGB")) -data 4; menuItem -label (uiRes("m_AEtextureBakeSetTemplate.kRLA")) -data 5; menuItem -label (uiRes("m_AEtextureBakeSetTemplate.kTGA")) -data 6; menuItem -label (uiRes("m_AEtextureBakeSetTemplate.kBMP")) -data 7; menuItem -label (uiRes("m_AEtextureBakeSetTemplate.kHDR")) -data 8; setUITemplate -ppt; AEtextureBakeFormatReplace $formatAttribute; } global proc AEtextureBakeFormatReplace (string $formatAttribute) { connectControl -index 2 textureBakeFormat $formatAttribute; string $buffer[]; tokenize($formatAttribute, ".", $buffer); string $nodeName = (size($buffer) > 0) ? $buffer[0] : ""; optionMenuGrp -e -cc ("updateBitsPerChannel " + $nodeName) textureBakeFormat; } global proc AEmentalrayBackgroundChanged (string $node) { int $mode = `getAttr ($node + ".backgroundMode")`; int $dimColor = ($mode != 1); // enable color control if background mode is Custom Color int $dimFill = ($mode == 2); // dim fill texture seams if extend edge color editorTemplate -dc $node "backgroundColor" $dimColor; editorTemplate -dc $node "fillTextureSeams" $dimFill; } global proc AEtextureBakeSetTemplate( string $nodeName ) { editorTemplate -beginScrollLayout; editorTemplate -beginLayout (uiRes("m_AEtextureBakeSetTemplate.kTextureBakeSetAttribute")) -collapse false; AEbakeSetTemplate $nodeName; editorTemplate -addSeparator; editorTemplate -label (uiRes("m_AEtextureBakeSetTemplate.kFilenamePefix")) -addControl "prefix"; editorTemplate -addControl "xResolution"; editorTemplate -addControl "yResolution"; editorTemplate -callCustom "AEtextureBakeFormatNew" "AEtextureBakeFormatReplace" "fileFormat"; editorTemplate -addControl "bitsPerChannel"; editorTemplate -label (uiRes("m_AEtextureBakeSetTemplate.kNumberOfSamples")) -addControl "samples"; editorTemplate -beginNoOptimize; editorTemplate -addControl "bakeToOneMap" "updateBitsPerChannel"; editorTemplate -addControl "bakeAlpha" "textureBakeAlphaChanged"; editorTemplate -addControl "alphaMode"; editorTemplate -endNoOptimize; editorTemplate -addSeparator; editorTemplate -addControl "finalGatherQuality"; editorTemplate -addControl "finalGatherReflect"; editorTemplate -addSeparator; editorTemplate -addControl "uvRange" "uvRangeChanged"; editorTemplate -addControl "uMin"; editorTemplate -addControl "uMax"; editorTemplate -addControl "vMin"; editorTemplate -addControl "vMax"; editorTemplate -addControl "backgroundMode" "AEmentalrayBackgroundChanged"; editorTemplate -addControl "backgroundColor"; editorTemplate -addControl "fillTextureSeams"; editorTemplate -addSeparator; editorTemplate -label (uiRes("m_AEtextureBakeSetTemplate.kOverrideMeshUVsetAssig")) -addControl "overrideUvSet" "overrideUvSetChanged"; editorTemplate -addControl "uvSetName"; editorTemplate -endLayout; // include/call base class/node attributes AEobjectSetNoScroll $nodeName; editorTemplate -suppress "fillScale"; editorTemplate -addExtraControls; editorTemplate -endScrollLayout; }