mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-02-26 18:13:47 +00:00
frontend work. stubbs in a glowMul slider, and a glow mask channel for composites (defaults to writing to the alpha chan)
This commit is contained in:
parent
e465c09f6e
commit
069925f834
2 changed files with 360 additions and 3 deletions
|
|
@ -571,7 +571,7 @@
|
|||
profile = "ToolsGuiTransparentProfile";
|
||||
isContainer = "1";
|
||||
position = "0 0";
|
||||
Extent = "185 44";
|
||||
Extent = "185 68";
|
||||
HorizSizing = "width";
|
||||
|
||||
new GuiTextCtrl() {
|
||||
|
|
@ -580,6 +580,7 @@
|
|||
position = "9 4";
|
||||
Extent = "72 16";
|
||||
text = "Smoothness";
|
||||
Profile = "ToolsGuiTextProfile";
|
||||
};
|
||||
|
||||
new GuiTextCtrl() {
|
||||
|
|
@ -588,6 +589,16 @@
|
|||
position = "9 26";
|
||||
Extent = "72 16";
|
||||
text = "Metalness";
|
||||
Profile = "ToolsGuiTextProfile";
|
||||
};
|
||||
|
||||
new GuiTextCtrl() {
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
position = "9 48";
|
||||
Extent = "72 16";
|
||||
text = "GlowMul";
|
||||
Profile = "ToolsGuiTextProfile";
|
||||
};
|
||||
|
||||
new GuiControl() {
|
||||
|
|
@ -689,6 +700,55 @@
|
|||
text = "0";
|
||||
};
|
||||
};
|
||||
new GuiControl() {
|
||||
class = "AggregateControl";
|
||||
position = "91 48";
|
||||
Extent = "96 20";
|
||||
|
||||
new GuiSliderCtrl() {
|
||||
canSaveDynamicFields = "0";
|
||||
internalName = "GlowMulSlider";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
Profile = "ToolsGuiSliderProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
position = "0 1";
|
||||
Extent = "61 14";
|
||||
MinExtent = "8 2";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
Command = "MaterialEditorGui.updateActiveMaterial(\"GlowMul[\" @ MaterialEditorGui.currentLayer @ \"]\", $ThisControl.getValue(), true, true);";
|
||||
AltCommand = "$ThisControl.getParent().updateFromChild($ThisControl); MaterialEditorGui.updateActiveMaterial(\"GlowMul[\" @ MaterialEditorGui.currentLayer @ \"]\", $ThisControl.getValue(), true, false);";
|
||||
tooltipprofile = "ToolsGuiDefaultProfile";
|
||||
ToolTip = "Sets GlowMul.";
|
||||
hovertime = "1000";
|
||||
range = "0 1";
|
||||
ticks = "0";
|
||||
value = "0";
|
||||
};
|
||||
new GuiTextEditCtrl() {
|
||||
canSaveDynamicFields = "0";
|
||||
internalName = "GlowMulTextEdit";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
Profile = "ToolsGuiTextEditProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
position = "64 0";
|
||||
Extent = "29 18";
|
||||
MinExtent = "8 2";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
Command = "$ThisControl.getParent().updateFromChild($ThisControl); MaterialEditorGui.updateActiveMaterial(\"GlowMul[\" @ MaterialEditorGui.currentLayer @ \"]\", $ThisControl.getValue());";
|
||||
hovertime = "1000";
|
||||
AnchorTop = "1";
|
||||
AnchorBottom = "0";
|
||||
AnchorLeft = "1";
|
||||
AnchorRight = "0";
|
||||
text = "0";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
new GuiContainer(){ // spec Map options
|
||||
|
|
@ -1676,6 +1736,241 @@
|
|||
canSaveDynamicFields = "0";
|
||||
};
|
||||
};
|
||||
new GuiContainer() {
|
||||
margin = "0 0 0 0";
|
||||
padding = "0 0 0 0";
|
||||
anchorTop = "1";
|
||||
anchorBottom = "0";
|
||||
anchorLeft = "1";
|
||||
anchorRight = "0";
|
||||
position = "6 364";
|
||||
extent = "185 52";
|
||||
minExtent = "8 2";
|
||||
horizSizing = "width";
|
||||
vertSizing = "bottom";
|
||||
profile = "GuiDefaultProfile";
|
||||
visible = "1";
|
||||
active = "1";
|
||||
tooltipProfile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
isContainer = "1";
|
||||
canSave = "1";
|
||||
canSaveDynamicFields = "0";
|
||||
new GuiBitmapCtrl() {
|
||||
bitmap = "tools/materialeditor/gui/unknownImage";
|
||||
wrap = "0";
|
||||
position = "1 1";
|
||||
extent = "48 48";
|
||||
minExtent = "8 2";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
profile = "ToolsGuiButtonProfile";
|
||||
visible = "1";
|
||||
active = "1";
|
||||
tooltipProfile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
isContainer = "0";
|
||||
internalName = "glowMapDisplayBitmap";
|
||||
canSave = "1";
|
||||
canSaveDynamicFields = "0";
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
text = "glow";
|
||||
maxLength = "1024";
|
||||
margin = "0 0 0 0";
|
||||
padding = "0 0 0 0";
|
||||
anchorTop = "1";
|
||||
anchorBottom = "0";
|
||||
anchorLeft = "1";
|
||||
anchorRight = "0";
|
||||
position = "56 5";
|
||||
extent = "35 8";
|
||||
minExtent = "8 2";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
profile = "ToolsGuiTextProfile";
|
||||
visible = "1";
|
||||
active = "1";
|
||||
tooltipProfile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
isContainer = "0";
|
||||
canSave = "1";
|
||||
canSaveDynamicFields = "0";
|
||||
};
|
||||
new GuiBitmapButtonCtrl() {
|
||||
bitmap = "tools/materialEditor/gui/cubemapBtnBorder";
|
||||
bitmapMode = "Stretched";
|
||||
autoFitExtents = "0";
|
||||
useModifiers = "0";
|
||||
useStates = "1";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
useMouseEvents = "0";
|
||||
position = "1 1";
|
||||
extent = "48 48";
|
||||
minExtent = "8 2";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
profile = "ToolsGuiButtonProfile";
|
||||
visible = "1";
|
||||
active = "1";
|
||||
command = "MaterialEditorGui.updateglowMap(1);";
|
||||
tooltipProfile = "GuiToolTipProfile";
|
||||
tooltip = "Change the glowness Map for this layer.";
|
||||
hovertime = "1000";
|
||||
isContainer = "0";
|
||||
canSave = "1";
|
||||
canSaveDynamicFields = "0";
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
text = "None";
|
||||
maxLength = "1024";
|
||||
margin = "0 0 0 0";
|
||||
padding = "0 0 0 0";
|
||||
anchorTop = "1";
|
||||
anchorBottom = "0";
|
||||
anchorLeft = "1";
|
||||
anchorRight = "0";
|
||||
position = "56 17";
|
||||
extent = "143 17";
|
||||
minExtent = "8 2";
|
||||
horizSizing = "width";
|
||||
vertSizing = "bottom";
|
||||
profile = "ToolsGuiTextProfile";
|
||||
visible = "1";
|
||||
active = "1";
|
||||
tooltipProfile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
isContainer = "0";
|
||||
internalName = "glowMapNameText";
|
||||
canSave = "1";
|
||||
canSaveDynamicFields = "0";
|
||||
};
|
||||
new GuiButtonCtrl() {
|
||||
text = "Edit";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
useMouseEvents = "0";
|
||||
position = "134 34";
|
||||
extent = "40 16";
|
||||
minExtent = "8 2";
|
||||
horizSizing = "left";
|
||||
vertSizing = "bottom";
|
||||
profile = "ToolsGuiButtonProfile";
|
||||
visible = "1";
|
||||
active = "1";
|
||||
command = "MaterialEditorGui.updateglowMap(1);";
|
||||
tooltipProfile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
isContainer = "0";
|
||||
canSave = "1";
|
||||
canSaveDynamicFields = "0";
|
||||
};
|
||||
new GuiBitmapButtonCtrl() {
|
||||
bitmap = "tools/gui/images/delete";
|
||||
bitmapMode = "Stretched";
|
||||
autoFitExtents = "0";
|
||||
useModifiers = "0";
|
||||
useStates = "1";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
useMouseEvents = "0";
|
||||
position = "177 34";
|
||||
extent = "16 16";
|
||||
minExtent = "8 2";
|
||||
horizSizing = "left";
|
||||
vertSizing = "bottom";
|
||||
profile = "ToolsGuiButtonProfile";
|
||||
visible = "1";
|
||||
active = "1";
|
||||
command = "MaterialEditorGui.updateglowMap(0);";
|
||||
tooltipProfile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
isContainer = "0";
|
||||
canSave = "1";
|
||||
canSaveDynamicFields = "0";
|
||||
};
|
||||
new GuiRadioCtrl(glowChanBtn0) {
|
||||
text = "R";
|
||||
groupNum = "3";
|
||||
buttonType = "RadioButton";
|
||||
useMouseEvents = "0";
|
||||
position = "100 5";
|
||||
extent = "20 10";
|
||||
minExtent = "8 2";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
profile = "ToolsGuiRadioProfile";
|
||||
visible = "1";
|
||||
active = "1";
|
||||
command = "MaterialEditorGui.setglowChan(0);";
|
||||
tooltipProfile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
isContainer = "0";
|
||||
canSave = "1";
|
||||
canSaveDynamicFields = "0";
|
||||
};
|
||||
new GuiRadioCtrl(glowChanBtn1) {
|
||||
text = "G";
|
||||
groupNum = "3";
|
||||
buttonType = "RadioButton";
|
||||
useMouseEvents = "0";
|
||||
position = "121 5";
|
||||
extent = "20 10";
|
||||
minExtent = "8 2";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
profile = "ToolsGuiRadioProfile";
|
||||
visible = "1";
|
||||
active = "1";
|
||||
command = "MaterialEditorGui.setglowChan(1);";
|
||||
tooltipProfile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
isContainer = "0";
|
||||
canSave = "1";
|
||||
canSaveDynamicFields = "0";
|
||||
};
|
||||
new GuiRadioCtrl(glowChanBtn2) {
|
||||
text = "B";
|
||||
groupNum = "3";
|
||||
buttonType = "RadioButton";
|
||||
useMouseEvents = "0";
|
||||
position = "142 5";
|
||||
extent = "20 10";
|
||||
minExtent = "8 2";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
profile = "ToolsGuiRadioProfile";
|
||||
visible = "1";
|
||||
active = "1";
|
||||
command = "MaterialEditorGui.setglowChan(2);";
|
||||
tooltipProfile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
isContainer = "0";
|
||||
canSave = "1";
|
||||
canSaveDynamicFields = "0";
|
||||
};
|
||||
new GuiRadioCtrl(glowChanBtn3) {
|
||||
text = "A";
|
||||
groupNum = "3";
|
||||
buttonType = "RadioButton";
|
||||
useMouseEvents = "0";
|
||||
position = "163 5";
|
||||
extent = "20 10";
|
||||
minExtent = "8 2";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
profile = "ToolsGuiRadioProfile";
|
||||
visible = "1";
|
||||
active = "1";
|
||||
command = "MaterialEditorGui.setglowChan(3);";
|
||||
tooltipProfile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
isContainer = "0";
|
||||
canSave = "1";
|
||||
canSaveDynamicFields = "0";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
new GuiRolloutCtrl(advancedTextureMapsRollout) {
|
||||
|
|
|
|||
|
|
@ -614,6 +614,13 @@ function MaterialEditorGui::convertTextureFields(%this)
|
|||
%metalMap = MaterialEditorGui.searchForTexture(MaterialEditorGui.currentMaterial, %metalMap);
|
||||
MaterialEditorGui.currentMaterial.metalMap[%metalI] = %metalMap;
|
||||
}
|
||||
|
||||
for(%glowI = 0; %glowI < 4; %glowI++)
|
||||
{
|
||||
%glowMap = MaterialEditorGui.currentMaterial.glowMap[%glowI];
|
||||
%glowMap = MaterialEditorGui.searchForTexture(MaterialEditorGui.currentMaterial, %glowMap);
|
||||
MaterialEditorGui.currentMaterial.glowMap[%glowI] = %glowMap;
|
||||
}
|
||||
}
|
||||
|
||||
// still needs to be optimized further
|
||||
|
|
@ -943,6 +950,17 @@ function MaterialEditorGui::guiSync( %this, %material )
|
|||
MaterialEditorPropertiesWindow-->metalMapDisplayBitmap.setBitmap( (%material).metalMap[%layer] );
|
||||
}
|
||||
|
||||
if((%material).glowMap[%layer] $= "")
|
||||
{
|
||||
MaterialEditorPropertiesWindow-->glowMapNameText.setText( "None" );
|
||||
MaterialEditorPropertiesWindow-->glowMapDisplayBitmap.setBitmap( "tools/materialeditor/gui/unknownImage" );
|
||||
}
|
||||
else
|
||||
{
|
||||
MaterialEditorPropertiesWindow-->glowMapNameText.setText( (%material).glowMap[%layer] );
|
||||
MaterialEditorPropertiesWindow-->glowMapDisplayBitmap.setBitmap( (%material).glowMap[%layer] );
|
||||
}
|
||||
|
||||
MaterialEditorPropertiesWindow-->accuScaleTextEdit.setText((%material).accuScale[%layer]);
|
||||
MaterialEditorPropertiesWindow-->accuScaleTextEdit.setText((%material).accuScale[%layer]);
|
||||
MaterialEditorPropertiesWindow-->accuDirectionTextEdit.setText((%material).accuDirection[%layer]);
|
||||
|
|
@ -964,6 +982,8 @@ function MaterialEditorGui::guiSync( %this, %material )
|
|||
MaterialEditorPropertiesWindow-->SmoothnessSlider.setValue((%material).Smoothness[%layer]);
|
||||
MaterialEditorPropertiesWindow-->MetalnessTextEdit.setText((%material).Metalness[%layer]);
|
||||
MaterialEditorPropertiesWindow-->MetalnessSlider.setValue((%material).Metalness[%layer]);
|
||||
MaterialEditorPropertiesWindow-->glowMulTextEdit.setText((%material).glowMul[%layer]);
|
||||
MaterialEditorPropertiesWindow-->glowMulSlider.setValue((%material).glowMul[%layer]);
|
||||
MaterialEditorPropertiesWindow-->glowCheckbox.setValue((%material).glow[%layer]);
|
||||
MaterialEditorPropertiesWindow-->emissiveCheckbox.setValue((%material).emissive[%layer]);
|
||||
MaterialEditorPropertiesWindow-->parallaxTextEdit.setText((%material).parallaxScale[%layer]);
|
||||
|
|
@ -1038,6 +1058,7 @@ function MaterialEditorGui::guiSync( %this, %material )
|
|||
%this.getRoughChan((%material).SmoothnessChan[%layer]);
|
||||
%this.getAOChan((%material).AOChan[%layer]);
|
||||
%this.getMetalChan((%material).metalChan[%layer]);
|
||||
%this.getGlowChan((%material).glowChan[%layer]);
|
||||
%this.preventUndo = false;
|
||||
}
|
||||
|
||||
|
|
@ -1059,6 +1080,11 @@ function MaterialEditorGui::getMetalChan(%this, %channel)
|
|||
%guiElement = metalChanBtn @ %channel;
|
||||
%guiElement.setStateOn(true);
|
||||
}
|
||||
function MaterialEditorGui::getGlowChan(%this, %channel)
|
||||
{
|
||||
%guiElement = glowChanBtn @ %channel;
|
||||
%guiElement.setStateOn(true);
|
||||
}
|
||||
//=======================================
|
||||
// Material Update Functionality
|
||||
|
||||
|
|
@ -1354,6 +1380,34 @@ function MaterialEditorGui::updatemetalMap(%this,%action)
|
|||
MaterialEditorGui.guiSync( materialEd_previewMaterial );
|
||||
}
|
||||
|
||||
function MaterialEditorGui::updateGlowMap(%this,%action)
|
||||
{
|
||||
%layer = MaterialEditorGui.currentLayer;
|
||||
|
||||
if( %action )
|
||||
{
|
||||
%texture = MaterialEditorGui.openFile("texture");
|
||||
if( %texture !$= "" )
|
||||
{
|
||||
MaterialEditorPropertiesWindow-->GlowMapDisplayBitmap.setBitmap(%texture);
|
||||
|
||||
%bitmap = MaterialEditorPropertiesWindow-->GlowMapDisplayBitmap.bitmap;
|
||||
%bitmap = strreplace(%bitmap,"tools/materialEditor/scripts/","");
|
||||
MaterialEditorPropertiesWindow-->GlowMapDisplayBitmap.setBitmap(%bitmap);
|
||||
MaterialEditorPropertiesWindow-->GlowMapNameText.setText(%bitmap);
|
||||
MaterialEditorGui.updateActiveMaterial("glowMap[" @ %layer @ "]","\"" @ %bitmap @ "\"");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
MaterialEditorPropertiesWindow-->GlowMapNameText.setText("None");
|
||||
MaterialEditorPropertiesWindow-->GlowMapDisplayBitmap.setBitmap("tools/materialeditor/gui/unknownImage");
|
||||
MaterialEditorGui.updateActiveMaterial("glowMap[" @ %layer @ "]","");
|
||||
}
|
||||
|
||||
MaterialEditorGui.guiSync( materialEd_previewMaterial );
|
||||
}
|
||||
|
||||
function MaterialEditorGui::updateRotationOffset(%this, %isSlider, %onMouseUp)
|
||||
{
|
||||
%layer = MaterialEditorGui.currentLayer;
|
||||
|
|
@ -2476,6 +2530,12 @@ function MaterialEditorGui::setMetalChan(%this, %value)
|
|||
MaterialEditorGui.guiSync( materialEd_previewMaterial );
|
||||
}
|
||||
|
||||
function MaterialEditorGui::setGlowChan(%this, %value)
|
||||
{
|
||||
MaterialEditorGui.updateActiveMaterial("glowChan[" @ MaterialEditorGui.currentLayer @ "]", %value);
|
||||
MaterialEditorGui.guiSync( materialEd_previewMaterial );
|
||||
}
|
||||
|
||||
function MaterialEditorGui::saveCompositeMap(%this)
|
||||
{
|
||||
%saveAs = "";
|
||||
|
|
@ -2501,13 +2561,15 @@ function MaterialEditorGui::saveCompositeMap(%this)
|
|||
%roughMap = %material.roughMap[%layer];
|
||||
%aoMap = %material.aoMap[%layer];
|
||||
%metalMap = %material.metalMap[%layer];
|
||||
%glowMap = %material.glowMap[%layer];
|
||||
|
||||
%smooth = %material.SmoothnessChan[%layer];
|
||||
%ao = %material.AOChan[%layer];
|
||||
%metal = %material.metalChan[%layer];
|
||||
%glow = %material.glowChan[%layer];
|
||||
|
||||
%channelKey = %smooth SPC %ao SPC %metal SPC 3;
|
||||
%channelKey = %smooth SPC %ao SPC %metal SPC %glow;
|
||||
error("Storing: \"" @ %roughMap @"\" \""@ %aoMap @"\" \""@ %metalMap @"\" \""@ %channelKey @"\" \""@ %saveAs @"\"");
|
||||
saveCompositeTexture(%roughMap,%aoMap,%metalMap,"",%channelKey, %saveAs);
|
||||
saveCompositeTexture(%roughMap,%aoMap,%metalMap,%glowMap,%channelKey, %saveAs);
|
||||
%dlg.delete();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue