mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-12 15:14:35 +00:00
Updated Assimp
Added initial behavior for ImageAssets to hold a list of GFX resources of different texture profiles to avoid mem leaks with incorrect-typed usages Added function to ImageAsset to get best-fit asset, allowing for fallbacks if the requested assetID is not found Added function to ShapeAsset to get best-fit asset, allowing for fallbacks if the requested assetID is not found Disabled fields for dynamic and static shadowmap refresh rates Moved noShape model to core/rendering/shapes to place it in a more logical module position Added an include to avoid undefined type compile error and removed unneeded semicolon from zone code Added call to reload probe textures when a reloadTextures call is made Adjusted default directional light shadowmap settings to not be as extreme Added utility function to probe manager to allow any class to request a 'best fit' list of probes that would affect a given location, allowing other classes such as fog or particles to utilize IBL. Also updated probeManager's forward rendering to utilize same function to reduce code duplication. Shifted shape loader code to utilize assimp for loader consistency and testing Changed render bin used for SSAO postfx so it runs at the right time Made Core_Rendering module scan for assets Updated loose file references to a number of assets to follow proper formatting Refactored asset import code to follow a more consistent object heirarchy structure on importing assets, allowing more reliable cross-referencing between inbound items Updated asset import logic for materials/images so that they properly utilize ImageType. Images correctly save out the assigned image type, materials reference the images' type to know what map slot they should be used in. Importer logic also updated to better find-and-add associated images based on type. Cleaned up a bunch of old, outdated code in the asset importer Added initial handling for in-place importing of files without needing to process them through the UI. Added ability to edit module script from RMB context menu if torsion path is set Updated list field code for variable inspector to utilize correct ownerObject field
This commit is contained in:
parent
2d015bc426
commit
6ade6f08ce
545 changed files with 15077 additions and 8437 deletions
|
|
@ -61,26 +61,6 @@ function AssetBrowser::onWake(%this)
|
|||
//First, build our our list of active modules
|
||||
%modulesList = ModuleDatabase.findModules(true);
|
||||
|
||||
%nonDefaultModuleCount = 0;
|
||||
|
||||
for(%i=0; %i < getWordCount(%modulesList); %i++)
|
||||
{
|
||||
%moduleName = getWord(%modulesList, %i).ModuleId;
|
||||
|
||||
%moduleGroup = getWord(%modulesList, %i).Group;
|
||||
if((%moduleGroup $= "Core" && !%this.coreModulesFilter) || (%moduleGroup $= "Tools" && !%this.toolsModulesFilter))
|
||||
continue;
|
||||
|
||||
%nonDefaultModuleCount++;
|
||||
}
|
||||
|
||||
if(%nonDefaultModuleCount == 0)
|
||||
{
|
||||
MessageBoxYesNo( "Import Template Content?",
|
||||
"You have no modules or content. Do you want to import a module from the template content?",
|
||||
"AssetBrowser.ImportTemplateModules();", "" );
|
||||
}
|
||||
|
||||
%this.setPreviewSize(EditorSettings.value("Assets/Browser/previewTileSize", "small"));
|
||||
|
||||
AssetBrowser.toggleAssetTypeFilter(0);
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -9,10 +9,6 @@ function ImportAssetConfigList::onSelect( %this, %id, %text )
|
|||
ImportActivityLog.add("Asset Import Configs set to " @ %text);
|
||||
ImportActivityLog.add("");
|
||||
|
||||
ImportAssetWindow.importAssetUnprocessedListArray.empty();
|
||||
ImportAssetWindow.importAssetUnprocessedListArray.duplicate(AssetBrowser.importAssetNewListArray);
|
||||
ImportAssetWindow.importAssetFinalListArray.empty();
|
||||
|
||||
ImportAssetWindow.activeImportConfigIndex = %id;
|
||||
ImportAssetWindow.activeImportConfig = ImportAssetWindow.importConfigsList.getKey(%id);
|
||||
|
||||
|
|
|
|||
|
|
@ -33,10 +33,10 @@ function AssetImportConfigList::onSelect( %this, %id, %text )
|
|||
%this.populateConfigListByGroup("General");
|
||||
%this.populateConfigListByGroup("Meshes");
|
||||
%this.populateConfigListByGroup("Materials");
|
||||
//%this.populateConfigListByGroup("Animations");
|
||||
//%this.populateConfigListByGroup("Images");
|
||||
//%this.populateConfigListByGroup("Collision");
|
||||
//%this.populateConfigListByGroup("Sound");
|
||||
%this.populateConfigListByGroup("Animations");
|
||||
%this.populateConfigListByGroup("Images");
|
||||
%this.populateConfigListByGroup("Collision");
|
||||
%this.populateConfigListByGroup("Sound");
|
||||
|
||||
ImportOptionsConfigList.update();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
function AssetBrowser::prepareImportImageAsset(%this, %assetItem)
|
||||
{
|
||||
if(getAssetImportConfigValue("Images/GenerateMaterialOnImport", "1") == 1 && %assetItem.parentAssetItem $= "")
|
||||
if((getAssetImportConfigValue("Images/GenerateMaterialOnImport", "1") == 1 && %assetItem.parentAssetItem $= "") || %assetItem.parentAssetItem !$= "")
|
||||
{
|
||||
//First, see if this already has a suffix of some sort based on our import config logic. Many content pipeline tools like substance automatically appends them
|
||||
%foundSuffixType = ImportAssetWindow.parseImageSuffixes(%assetItem);
|
||||
%foundSuffixType = parseImageSuffixes(%assetItem);
|
||||
|
||||
if(%foundSuffixType $= "")
|
||||
{
|
||||
|
|
@ -20,31 +20,42 @@ function AssetBrowser::prepareImportImageAsset(%this, %assetItem)
|
|||
%materialAsset = ImportAssetWindow.findImportingAssetByName(%noSuffixName);
|
||||
%cratedNewMaterial = false;
|
||||
|
||||
//Sanity catch in the case we have some naming convention shenanigans in play
|
||||
if(%materialAsset != 0 && %materialAsset.assetType !$= "MaterialAsset")
|
||||
%materialAsset = 0;
|
||||
|
||||
if(%materialAsset == 0)
|
||||
{
|
||||
%filePath = %assetItem.filePath;
|
||||
if(%filePath !$= "")
|
||||
%materialAsset = AssetBrowser.addImportingAsset("MaterialAsset", "", "", %noSuffixName);
|
||||
|
||||
%materialAsset.filePath = filePath(%assetItem.filePath) @ "/" @ %noSuffixName;
|
||||
//%materialAsset.filePath = filePath(%assetItem.filePath) @ "/" @ %noSuffixName;
|
||||
|
||||
ImportAssetItems.add(%materialAsset);
|
||||
|
||||
%cratedNewMaterial = true;
|
||||
}
|
||||
|
||||
if(isObject(%materialAsset))
|
||||
{
|
||||
//Establish parentage
|
||||
%itemId = ImportAssetTree.findItemByObjectId(%assetItem);
|
||||
%materialItemId = ImportAssetTree.findItemByObjectId(%materialAsset);
|
||||
if(%assetItem.parentAssetItem !$= "")
|
||||
{
|
||||
%parentIndex = %assetItem.parentAssetItem.childAssetItems.getIndexFromKey(%assetItem);
|
||||
%assetItem.parentAssetItem.childAssetItems.erase(%parentIndex);
|
||||
}
|
||||
else
|
||||
{
|
||||
//if we didn't have a parent until now, we're going to pull from it from our ImportAssetItems list
|
||||
%itemIndex = ImportAssetItems.getIndexFromKey(%assetItem);
|
||||
ImportAssetItems.erase(%itemIndex);
|
||||
}
|
||||
|
||||
%assetItem.parentId = %materialItemId;
|
||||
//Establish parentage
|
||||
%materialAsset.childAssetItems.add(%assetItem);
|
||||
%assetItem.parentAssetItem = %materialAsset;
|
||||
|
||||
ImportAssetTree.reparentItem(%itemId, %materialItemId);
|
||||
|
||||
ImportAssetWindow.assetHeirarchyChanged = true;
|
||||
|
||||
ImportAssetTree.buildVisibleTree(true);
|
||||
}
|
||||
|
||||
//Lets do some cleverness here. If we're generating a material we can parse like assets being imported(similar file names) but different suffixes
|
||||
|
|
@ -81,7 +92,7 @@ function AssetBrowser::prepareImportImageAsset(%this, %assetItem)
|
|||
if(getAssetImportConfigValue("Materials/PopulateMaterialMaps", "1") == 1)
|
||||
{
|
||||
if(%foundSuffixType $= "diffuse")
|
||||
%assetItem.ImageType = "Abledo";
|
||||
%assetItem.ImageType = "Albedo";
|
||||
else if(%foundSuffixType $= "normal")
|
||||
%assetItem.ImageType = "Normal";
|
||||
else if(%foundSuffixType $= "metalness")
|
||||
|
|
@ -98,13 +109,15 @@ function AssetBrowser::prepareImportImageAsset(%this, %assetItem)
|
|||
}
|
||||
|
||||
//If we JUST created this material, we need to do a process pass on it to do any other setup for it
|
||||
if(%cratedNewMaterial)
|
||||
/*if(%cratedNewMaterial)
|
||||
{
|
||||
AssetBrowser.prepareImportMaterialAsset(%materialAsset);
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
|
||||
%assetItem.processed = true;
|
||||
|
||||
refreshImportAssetWindow();
|
||||
}
|
||||
|
||||
function AssetBrowser::inspectImportingImageAsset(%this, %assetItem)
|
||||
|
|
@ -136,6 +149,7 @@ function AssetBrowser::importImageAsset(%this, %assetItem)
|
|||
versionId = 1;
|
||||
imageFile = fileName(%filePath);
|
||||
originalFilePath = %filePath;
|
||||
imageType = %assetItem.imageType;
|
||||
};
|
||||
|
||||
%assetImportSuccessful = TAMLWrite(%newAsset, %assetPath @ "/" @ %assetName @ ".asset.taml");
|
||||
|
|
@ -170,7 +184,18 @@ function AssetBrowser::buildImageAssetPreview(%this, %assetDef, %previewData)
|
|||
|
||||
%previewData.assetFriendlyName = %assetDef.assetName;
|
||||
%previewData.assetDesc = %assetDef.description;
|
||||
%previewData.tooltip = %assetDef.friendlyName @ "\n" @ %assetDef;
|
||||
|
||||
//image info
|
||||
%info = %assetDef.getImageInfo();
|
||||
|
||||
%previewData.tooltip = "Asset Name: " @ %assetDef.assetName @ "\n" @
|
||||
"Asset Type: Image Asset\n" @
|
||||
"Asset Defition ID: " @ %assetDef @ "\n" @
|
||||
"Image Type: " @ %assetDef.imageType @ "\n" @
|
||||
"Format: " @ getWord(%info, 0) @ "\n" @
|
||||
"Height: " @ getWord(%info, 1) @ "\n" @
|
||||
"Width: " @ getWord(%info, 2) @ "\n" @
|
||||
"Depth: " @ getWord(%info, 3);
|
||||
}
|
||||
|
||||
//Renames the asset
|
||||
|
|
@ -226,4 +251,176 @@ function GuiInspectorTypeImageAssetPtr::onControlDropped( %this, %payload, %posi
|
|||
}
|
||||
|
||||
EWorldEditor.isDirty = true;
|
||||
}
|
||||
|
||||
function parseImageSuffixes(%assetItem)
|
||||
{
|
||||
//diffuse
|
||||
%suffixCount = getTokenCount(getAssetImportConfigValue("Images/DiffuseTypeSuffixes", ""), ",;");
|
||||
for(%sfx = 0; %sfx < %suffixCount; %sfx++)
|
||||
{
|
||||
%suffixToken = getToken(getAssetImportConfigValue("Images/DiffuseTypeSuffixes", ""), ",;", %sfx);
|
||||
if(strIsMatchExpr("*"@%suffixToken, %assetItem.AssetName))
|
||||
{
|
||||
%assetItem.imageSuffixType = %suffixToken;
|
||||
return "diffuse";
|
||||
}
|
||||
}
|
||||
|
||||
//normal
|
||||
%suffixCount = getTokenCount(getAssetImportConfigValue("Images/NormalTypeSuffixes", ""), ",;");
|
||||
for(%sfx = 0; %sfx < %suffixCount; %sfx++)
|
||||
{
|
||||
%suffixToken = getToken(getAssetImportConfigValue("Images/NormalTypeSuffixes", ""), ",;", %sfx);
|
||||
if(strIsMatchExpr("*"@%suffixToken, %assetItem.AssetName))
|
||||
{
|
||||
%assetItem.imageSuffixType = %suffixToken;
|
||||
return "normal";
|
||||
}
|
||||
}
|
||||
|
||||
//roughness
|
||||
%suffixCount = getTokenCount(getAssetImportConfigValue("Images/RoughnessTypeSuffixes", ""), ",;");
|
||||
for(%sfx = 0; %sfx < %suffixCount; %sfx++)
|
||||
{
|
||||
%suffixToken = getToken(getAssetImportConfigValue("Images/RoughnessTypeSuffixes", ""), ",;", %sfx);
|
||||
if(strIsMatchExpr("*"@%suffixToken, %assetItem.AssetName))
|
||||
{
|
||||
%assetItem.imageSuffixType = %suffixToken;
|
||||
return "roughness";
|
||||
}
|
||||
}
|
||||
|
||||
//Ambient Occlusion
|
||||
%suffixCount = getTokenCount(getAssetImportConfigValue("Images/AOTypeSuffixes", ""), ",;");
|
||||
for(%sfx = 0; %sfx < %suffixCount; %sfx++)
|
||||
{
|
||||
%suffixToken = getToken(getAssetImportConfigValue("Images/AOTypeSuffixes", ""), ",;", %sfx);
|
||||
if(strIsMatchExpr("*"@%suffixToken, %assetItem.AssetName))
|
||||
{
|
||||
%assetItem.imageSuffixType = %suffixToken;
|
||||
return "AO";
|
||||
}
|
||||
}
|
||||
|
||||
//metalness
|
||||
%suffixCount = getTokenCount(getAssetImportConfigValue("Images/MetalnessTypeSuffixes", ""), ",;");
|
||||
for(%sfx = 0; %sfx < %suffixCount; %sfx++)
|
||||
{
|
||||
%suffixToken = getToken(getAssetImportConfigValue("Images/MetalnessTypeSuffixes", ""), ",;", %sfx);
|
||||
if(strIsMatchExpr("*"@%suffixToken, %assetItem.AssetName))
|
||||
{
|
||||
%assetItem.imageSuffixType = %suffixToken;
|
||||
return "metalness";
|
||||
}
|
||||
}
|
||||
|
||||
//composite
|
||||
%suffixCount = getTokenCount(getAssetImportConfigValue("Images/CompositeTypeSuffixes", ""), ",;");
|
||||
for(%sfx = 0; %sfx < %suffixCount; %sfx++)
|
||||
{
|
||||
%suffixToken = getToken(getAssetImportConfigValue("Images/CompositeTypeSuffixes", ""), ",;", %sfx);
|
||||
if(strIsMatchExpr("*"@%suffixToken, %assetItem.AssetName))
|
||||
{
|
||||
%assetItem.imageSuffixType = %suffixToken;
|
||||
return "composite";
|
||||
}
|
||||
}
|
||||
|
||||
//specular
|
||||
/*%suffixCount = getTokenCount(ImportAssetWindow.activeImportConfig.SpecularTypeSuffixes, ",;");
|
||||
for(%sfx = 0; %sfx < %suffixCount; %sfx++)
|
||||
{
|
||||
%suffixToken = getToken(ImportAssetWindow.activeImportConfig.SpecularTypeSuffixes, ",;", %sfx);
|
||||
if(strIsMatchExpr("*"@%suffixToken, %assetItem.AssetName))
|
||||
{
|
||||
%assetItem.imageSuffixType = %suffixToken;
|
||||
return "specular";
|
||||
}
|
||||
}*/
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
function parseImagePathSuffixes(%filePath)
|
||||
{
|
||||
//diffuse
|
||||
%diffuseSuffixes = getAssetImportConfigValue("Images/DiffuseTypeSuffixes", "");
|
||||
%suffixCount = getTokenCount(%diffuseSuffixes, ",;");
|
||||
for(%sfx = 0; %sfx < %suffixCount; %sfx++)
|
||||
{
|
||||
%suffixToken = getToken(%diffuseSuffixes, ",;", %sfx);
|
||||
if(strIsMatchExpr("*"@%suffixToken, %filePath))
|
||||
{
|
||||
return "diffuse";
|
||||
}
|
||||
}
|
||||
|
||||
//normal
|
||||
%suffixCount = getTokenCount(ImportAssetWindow.activeImportConfig.NormalTypeSuffixes, ",;");
|
||||
for(%sfx = 0; %sfx < %suffixCount; %sfx++)
|
||||
{
|
||||
%suffixToken = getToken(ImportAssetWindow.activeImportConfig.NormalTypeSuffixes, ",;", %sfx);
|
||||
if(strIsMatchExpr("*"@%suffixToken, %filePath))
|
||||
{
|
||||
return "normal";
|
||||
}
|
||||
}
|
||||
|
||||
//roughness
|
||||
%suffixCount = getTokenCount(ImportAssetWindow.activeImportConfig.RoughnessTypeSuffixes, ",;");
|
||||
for(%sfx = 0; %sfx < %suffixCount; %sfx++)
|
||||
{
|
||||
%suffixToken = getToken(ImportAssetWindow.activeImportConfig.RoughnessTypeSuffixes, ",;", %sfx);
|
||||
if(strIsMatchExpr("*"@%suffixToken, %filePath))
|
||||
{
|
||||
return "roughness";
|
||||
}
|
||||
}
|
||||
|
||||
//Ambient Occlusion
|
||||
%suffixCount = getTokenCount(ImportAssetWindow.activeImportConfig.AOTypeSuffixes, ",;");
|
||||
for(%sfx = 0; %sfx < %suffixCount; %sfx++)
|
||||
{
|
||||
%suffixToken = getToken(ImportAssetWindow.activeImportConfig.AOTypeSuffixes, ",;", %sfx);
|
||||
if(strIsMatchExpr("*"@%suffixToken, %filePath))
|
||||
{
|
||||
return "AO";
|
||||
}
|
||||
}
|
||||
|
||||
//metalness
|
||||
%suffixCount = getTokenCount(ImportAssetWindow.activeImportConfig.MetalnessTypeSuffixes, ",;");
|
||||
for(%sfx = 0; %sfx < %suffixCount; %sfx++)
|
||||
{
|
||||
%suffixToken = getToken(ImportAssetWindow.activeImportConfig.MetalnessTypeSuffixes, ",;", %sfx);
|
||||
if(strIsMatchExpr("*"@%suffixToken, %filePath))
|
||||
{
|
||||
return "metalness";
|
||||
}
|
||||
}
|
||||
|
||||
//composite
|
||||
%suffixCount = getTokenCount(ImportAssetWindow.activeImportConfig.CompositeTypeSuffixes, ",;");
|
||||
for(%sfx = 0; %sfx < %suffixCount; %sfx++)
|
||||
{
|
||||
%suffixToken = getToken(ImportAssetWindow.activeImportConfig.CompositeTypeSuffixes, ",;", %sfx);
|
||||
if(strIsMatchExpr("*"@%suffixToken, %filePath))
|
||||
{
|
||||
return "composite";
|
||||
}
|
||||
}
|
||||
|
||||
//specular
|
||||
%suffixCount = getTokenCount(ImportAssetWindow.activeImportConfig.SpecularTypeSuffixes, ",;");
|
||||
for(%sfx = 0; %sfx < %suffixCount; %sfx++)
|
||||
{
|
||||
%suffixToken = getToken(ImportAssetWindow.activeImportConfig.SpecularTypeSuffixes, ",;", %sfx);
|
||||
if(strIsMatchExpr("*"@%suffixToken, %filePath))
|
||||
{
|
||||
return "specular";
|
||||
}
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
|
@ -84,7 +84,7 @@ function AssetBrowser::moveMaterialAsset(%this, %assetDef, %destination)
|
|||
|
||||
function AssetBrowser::prepareImportMaterialAsset(%this, %assetItem)
|
||||
{
|
||||
ImportActivityLog.add("Preparing Shape for Import: " @ %assetItem.assetName);
|
||||
ImportActivityLog.add("Preparing Material for Import: " @ %assetItem.assetName);
|
||||
|
||||
//Iterate over to find appropriate images for
|
||||
|
||||
|
|
@ -93,6 +93,8 @@ function AssetBrowser::prepareImportMaterialAsset(%this, %assetItem)
|
|||
%fileName = fileBase(%assetItem.filePath);
|
||||
%fileExt = fileExt(%assetItem.filePath);
|
||||
|
||||
%assetItem.generatedAsset = true;
|
||||
|
||||
//Check if we need to filter this material out or not
|
||||
if(getAssetImportConfigValue("Materials/IgnoreMaterials", "") !$= "")
|
||||
{
|
||||
|
|
@ -117,7 +119,20 @@ function AssetBrowser::prepareImportMaterialAsset(%this, %assetItem)
|
|||
{
|
||||
ImportActivityLog.add("Attempting to Auto-Populate Material Maps");
|
||||
|
||||
%materialItemId = ImportAssetTree.findItemByObjectId(%assetItem);
|
||||
for(%i=0; %i < %assetItem.childAssetItems.count(); %i++)
|
||||
{
|
||||
%childAssetItem = %assetItem.childAssetItems.getKey(%i);
|
||||
|
||||
if(!isObject(%childAssetItem) || %childAssetItem.skip || %childAssetItem.processed == true || %childAssetItem.assetType !$= "ImageAsset")
|
||||
return;
|
||||
|
||||
if(%childAssetItem.imageType $= "Albedo")
|
||||
{
|
||||
%assetItem.diffuseImageAsset = %childAssetItem;
|
||||
}
|
||||
}
|
||||
|
||||
/*%materialItemId = ImportAssetTree.findItemByObjectId(%assetItem);
|
||||
|
||||
if(%assetItem.diffuseImageAsset $= "")
|
||||
{
|
||||
|
|
@ -129,7 +144,7 @@ function AssetBrowser::prepareImportMaterialAsset(%this, %assetItem)
|
|||
{
|
||||
ImportActivityLog.add("Auto-Populated Diffuse Map Image Asset via file: " @ %targetFilePath);
|
||||
|
||||
%diffuseAsset = AssetBrowser.addImportingAsset("Image", %targetFilePath, %assetItem);
|
||||
%diffuseAsset = AssetBrowser.addImportingAsset("ImageAsset", %targetFilePath, %assetItem);
|
||||
%assetItem.diffuseImageAsset = %diffuseAsset;
|
||||
}
|
||||
}
|
||||
|
|
@ -146,7 +161,7 @@ function AssetBrowser::prepareImportMaterialAsset(%this, %assetItem)
|
|||
{
|
||||
ImportActivityLog.add("Auto-Populated Normal Map Image Asset via file: " @ %targetFilePath);
|
||||
|
||||
%normalAsset = AssetBrowser.addImportingAsset("Image", %targetFilePath, %assetItem);
|
||||
%normalAsset = AssetBrowser.addImportingAsset("ImageAsset", %targetFilePath, %assetItem);
|
||||
%assetItem.normalImageAsset = %normalAsset;
|
||||
}
|
||||
}
|
||||
|
|
@ -161,7 +176,7 @@ function AssetBrowser::prepareImportMaterialAsset(%this, %assetItem)
|
|||
{
|
||||
ImportActivityLog.add("Auto-Populated Metalness Map Image Asset via file: " @ %targetFilePath);
|
||||
|
||||
%metalAsset = AssetBrowser.addImportingAsset("Image", %targetFilePath, %assetItem);
|
||||
%metalAsset = AssetBrowser.addImportingAsset("ImageAsset", %targetFilePath, %assetItem);
|
||||
%assetItem.metalImageAsset = %metalAsset;
|
||||
}
|
||||
}
|
||||
|
|
@ -176,7 +191,7 @@ function AssetBrowser::prepareImportMaterialAsset(%this, %assetItem)
|
|||
{
|
||||
ImportActivityLog.add("Auto-Populated Roughness Map Image Asset via file: " @ %targetFilePath);
|
||||
|
||||
%roughnessAsset = AssetBrowser.addImportingAsset("Image", %targetFilePath, %assetItem);
|
||||
%roughnessAsset = AssetBrowser.addImportingAsset("ImageAsset", %targetFilePath, %assetItem);
|
||||
%assetItem.roughnessImageAsset = %roughnessAsset;
|
||||
}
|
||||
}
|
||||
|
|
@ -191,7 +206,7 @@ function AssetBrowser::prepareImportMaterialAsset(%this, %assetItem)
|
|||
{
|
||||
ImportActivityLog.add("Auto-Populated Smoothness Map Image Asset via file: " @ %targetFilePath);
|
||||
|
||||
%smoothnessAsset = AssetBrowser.addImportingAsset("Image", %targetFilePath, %assetItem);
|
||||
%smoothnessAsset = AssetBrowser.addImportingAsset("ImageAsset", %targetFilePath, %assetItem);
|
||||
%assetItem.SmoothnessImageAsset = %smoothnessAsset;
|
||||
}
|
||||
}
|
||||
|
|
@ -206,7 +221,7 @@ function AssetBrowser::prepareImportMaterialAsset(%this, %assetItem)
|
|||
{
|
||||
ImportActivityLog.add("Auto-Populated AO Map Image Asset via file: " @ %targetFilePath);
|
||||
|
||||
%AOAsset = AssetBrowser.addImportingAsset("Image", %targetFilePath, %assetItem);
|
||||
%AOAsset = AssetBrowser.addImportingAsset("ImageAsset", %targetFilePath, %assetItem);
|
||||
%assetItem.AOImageAsset = %AOAsset;
|
||||
}
|
||||
}
|
||||
|
|
@ -221,7 +236,7 @@ function AssetBrowser::prepareImportMaterialAsset(%this, %assetItem)
|
|||
{
|
||||
ImportActivityLog.add("Auto-Populated Composite Map Image Asset via file: " @ %targetFilePath);
|
||||
|
||||
%compositeAsset = AssetBrowser.addImportingAsset("Image", %targetFilePath, %assetItem);
|
||||
%compositeAsset = AssetBrowser.addImportingAsset("ImageAsset", %targetFilePath, %assetItem);
|
||||
%assetItem.compositeImageAsset = %compositeAsset;
|
||||
}
|
||||
}
|
||||
|
|
@ -240,15 +255,17 @@ function AssetBrowser::prepareImportMaterialAsset(%this, %assetItem)
|
|||
|
||||
ImportActivityLog.add("Auto-Generated Composite Map from ORM maps");
|
||||
|
||||
%compositeAsset = AssetBrowser.addImportingAsset("Image", "", %assetItem, %assetItem.assetName @ "_composite");
|
||||
%compositeAsset = AssetBrowser.addImportingAsset("ImageAsset", "", %assetItem, %assetItem.assetName @ "_composite");
|
||||
%compositeAsset.generatedAsset = true;
|
||||
%compositeAsset.filePath = %saveAsPath;
|
||||
|
||||
%assetItem.compositeImageAsset = %compositeAsset;
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
%assetItem.processed = true;
|
||||
|
||||
refreshImportAssetWindow();
|
||||
}
|
||||
|
||||
function AssetBrowser::findMaterialMapFileWSuffix(%this, %fileDir, %filename, %fileExt, %suffixesList)
|
||||
|
|
@ -307,31 +324,21 @@ function AssetBrowser::importMaterialAsset(%this, %assetItem)
|
|||
};
|
||||
|
||||
//check dependencies
|
||||
%importItem = ImportAssetTree.findItemByObjectId(%assetItem);
|
||||
if(ImportAssetTree.isParentItem(%importItem))
|
||||
%dependencySlotId = 0;
|
||||
for(%i=0; %i < %assetItem.childAssetItems.count(); %i++)
|
||||
{
|
||||
%imageSlot = 0;
|
||||
%childId = ImportAssetTree.getChild(%importItem);
|
||||
while(%childId > 0)
|
||||
{
|
||||
%dependencyAssetItem = ImportAssetTree.getItemObject(%childId);
|
||||
|
||||
if(%dependencyAssetItem.skip)
|
||||
{
|
||||
%childId = ImportAssetTree.getNextSibling(%childId);
|
||||
continue;
|
||||
}
|
||||
|
||||
%depAssetType = %dependencyAssetItem.assetType;
|
||||
if(%depAssetType $= "Image")
|
||||
{
|
||||
%matSet = "%newAsset.imageMap"@%imageSlot@"=\"@Asset="@%moduleName@":"@%dependencyAssetItem.assetName@"\";";
|
||||
eval(%matSet);
|
||||
}
|
||||
|
||||
%childId = ImportAssetTree.getNextSibling(%childId);
|
||||
%imageSlot++;
|
||||
}
|
||||
%childAssetItem = %assetItem.childAssetItems.getKey(%i);
|
||||
|
||||
if(!isObject(%childAssetItem) || %childAssetItem.skip || %childAssetItem.processed == false)
|
||||
continue;
|
||||
|
||||
%depAssetType = %childAssetItem.assetType;
|
||||
if(%depAssetType $= "ImageAsset")
|
||||
{
|
||||
%matSet = "%newAsset.imageMap"@%dependencySlotId@"=\"@Asset="@%moduleName@":"@%childAssetItem.assetName@"\";";
|
||||
eval(%matSet);
|
||||
%dependencySlotId++;
|
||||
}
|
||||
}
|
||||
|
||||
%assetImportSuccessful = TamlWrite(%newAsset, %tamlpath);
|
||||
|
|
@ -368,46 +375,34 @@ function AssetBrowser::importMaterialAsset(%this, %assetItem)
|
|||
//TODO: pass along the shape's target material for this just to be sure
|
||||
%file.writeLine(" mapTo = \"" @ %assetName @ "\";");
|
||||
|
||||
if(%assetItem.diffuseImageAsset !$= "")
|
||||
//now we re-iterate back over our child items so we can map them correctly
|
||||
for(%i=0; %i < %assetItem.childAssetItems.count(); %i++)
|
||||
{
|
||||
%diffuseAssetPath = %assetPath @ fileName(%assetItem.diffuseImageAsset.filePath);
|
||||
%file.writeline(" DiffuseMap[0] = \"" @ %diffuseAssetPath @"\";");
|
||||
%file.writeline(" DiffuseMapAsset[0] = \"" @ %moduleName @ ":" @ %assetItem.diffuseImageAsset.assetName @"\";");
|
||||
}
|
||||
if(%assetItem.normalImageAsset)
|
||||
{
|
||||
%normalAssetPath = %assetPath @ fileName(%assetItem.normalImageAsset.filePath);
|
||||
%file.writeline(" NormalMap[0] = \"" @ %normalAssetPath @"\";");
|
||||
%file.writeline(" NormalMapAsset[0] = \"" @ %moduleName @ ":" @ %assetItem.normalImageAsset.assetName @"\";");
|
||||
}
|
||||
if(%assetItem.roughnessImageAsset && %assetItem.roughnessImageAsset.skip == false)
|
||||
{
|
||||
%roughAssetPath = %assetPath @ fileName(%assetItem.roughnessImageAsset.filePath);
|
||||
%file.writeline(" RoughMap[0] = \"" @ %roughAssetPath @"\";");
|
||||
%file.writeline(" RoughMapAsset[0] = \"" @ %moduleName @ ":" @ %assetItem.roughnessImageAsset.assetName @"\";");
|
||||
}
|
||||
if(%assetItem.smoothnessImageAsset && %assetItem.smoothnessImageAsset.skip == false)
|
||||
{
|
||||
%smoothnessAssetPath = %assetPath @ fileName(%assetItem.smoothnessImageAsset.filePath);
|
||||
%file.writeline(" SmoothnessMap[0] = \"" @ %smoothnessAssetPath @"\";");
|
||||
%file.writeline(" SmoothnessMapAsset[0] = \"" @ %moduleName @ ":" @ %assetItem.smoothnessImageAsset.assetName @"\";");
|
||||
}
|
||||
if(%assetItem.metalnessImageAsset && %assetItem.metalnessImageAsset.skip == false)
|
||||
{
|
||||
%metalAssetPath = %assetPath @ fileName(%assetItem.metalnessImageAsset.filePath);
|
||||
%file.writeline(" MetalMap[0] = \"" @ %metalAssetPath @"\";");
|
||||
%file.writeline(" MetalMapAsset[0] = \"" @ %moduleName @ ":" @ %assetItem.metalnessImageAsset.assetName @"\";");
|
||||
}
|
||||
if(%assetItem.AOImageAsset && %assetItem.AOImageAsset.skip == false)
|
||||
{
|
||||
%AOAssetPath = %assetPath @ fileName(%assetItem.AOImageAsset.filePath);
|
||||
%file.writeline(" AOMap[0] = \"" @ %AOAssetPath @"\";");
|
||||
%file.writeline(" AOMapAsset[0] = \"" @ %moduleName @ ":" @ %assetItem.AOImageAsset.assetName @"\";");
|
||||
}
|
||||
if(%assetItem.PBRConfigMapImageAsset)
|
||||
{
|
||||
%file.writeline(" PBRConfigMap[0] = \"" @ %assetItem.compositeImageAsset.filePath @"\";");
|
||||
%file.writeline(" PBRConfigMapAsset[0] = \"" @ %moduleName @ ":" @ %assetItem.compositeImageAsset.assetName @"\";");
|
||||
%childAssetItem = %assetItem.childAssetItems.getKey(%i);
|
||||
|
||||
if(!isObject(%childAssetItem) || %childAssetItem.skip || %childAssetItem.processed == false)
|
||||
continue;
|
||||
|
||||
if(%childAssetItem.assetType $= "ImageAsset")
|
||||
{
|
||||
%mapFieldName = "";
|
||||
if(%childAssetItem.imageType $= "Albedo")
|
||||
%mapFieldName = "DiffuseMap";
|
||||
else if(%childAssetItem.imageType $= "Normal")
|
||||
%mapFieldName = "NormalMap";
|
||||
else if(%childAssetItem.imageType $= "Metalness")
|
||||
%mapFieldName = "MetalMap";
|
||||
else if(%childAssetItem.imageType $= "Roughness")
|
||||
%mapFieldName = "RoughnessMap";
|
||||
else if(%childAssetItem.imageType $= "AO")
|
||||
%mapFieldName = "AOMap";
|
||||
else if(%childAssetItem.imageType $= "Composite")
|
||||
%mapFieldName = "PBRConfigMap";
|
||||
|
||||
%assetPath = fileName(%childAssetItem.filePath);
|
||||
%file.writeline(" "@ %mapFieldName @ "[0] = \"" @ %assetPath @"\";");
|
||||
%file.writeline(" "@ %mapFieldName @ "Asset[0] = \"" @ %moduleName @ ":" @ %childAssetItem.assetName @"\";");
|
||||
}
|
||||
}
|
||||
%file.writeline("};");
|
||||
%file.writeline("//--- OBJECT WRITE END ---");
|
||||
|
|
@ -453,7 +448,9 @@ function AssetBrowser::buildMaterialAssetPreview(%this, %assetDef, %previewData)
|
|||
|
||||
%previewData.assetFriendlyName = %assetDef.assetName;
|
||||
%previewData.assetDesc = %assetDef.description;
|
||||
%previewData.tooltip = %assetDef.friendlyName @ "\n" @ %assetDef;
|
||||
%previewData.tooltip = "Asset Name: " @ %assetDef.assetName @ "\n" @
|
||||
"Asset Type: Material Asset\n" @
|
||||
"Asset Defition ID: " @ %assetDef;
|
||||
}
|
||||
|
||||
function AssetBrowser::onMaterialAssetEditorDropped(%this, %assetDef, %position)
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ function AssetBrowser::prepareImportShapeAsset(%this, %assetItem)
|
|||
%shapeCount = %assetItem.shapeInfo._meshCount;
|
||||
%shapeItem = %assetItem.shapeInfo.findItemByName("Meshes");
|
||||
|
||||
%shapeId = ImportAssetTree.findItemByObjectId(%assetItem);
|
||||
//%shapeId = ImportAssetTree.findItemByObjectId(%assetItem);
|
||||
|
||||
if(getAssetImportConfigValue("Meshes/ImportMesh", "1") == 1 && %shapeCount > 0)
|
||||
{
|
||||
|
|
@ -132,30 +132,27 @@ function AssetBrowser::importShapeAsset(%this, %assetItem)
|
|||
};
|
||||
|
||||
//check dependencies
|
||||
%importItem = ImportAssetTree.findItemByObjectId(%assetItem);
|
||||
if(ImportAssetTree.isParentItem(%importItem))
|
||||
%dependencySlotId = 0;
|
||||
for(%i=0; %i < %assetItem.childAssetItems.count(); %i++)
|
||||
{
|
||||
%matSlotId = 0;
|
||||
%childId = ImportAssetTree.getChild(%importItem);
|
||||
while(%childId > 0)
|
||||
{
|
||||
%dependencyAssetItem = ImportAssetTree.getItemObject(%childId);
|
||||
|
||||
%depAssetType = %dependencyAssetItem.assetType;
|
||||
if(%depAssetType $= "MaterialAsset")
|
||||
{
|
||||
%matSet = "%newAsset.materialSlot"@%matSlotId@"=\"@Asset="@%moduleName@":"@%dependencyAssetItem.assetName@"\";";
|
||||
eval(%matSet);
|
||||
}
|
||||
if(%depAssetType $= "AnimationAsset")
|
||||
{
|
||||
%matSet = "%newAsset.animationSequence"@%matSlotId@"=\"@Asset="@%moduleName@":"@%dependencyAssetItem.assetName@"\";";
|
||||
eval(%matSet);
|
||||
}
|
||||
|
||||
%childId = ImportAssetTree.getNextSibling(%childId);
|
||||
%matSlotId++;
|
||||
}
|
||||
%childAssetItem = %assetItem.childAssetItems.getKey(%i);
|
||||
|
||||
if(!isObject(%childAssetItem) || %childAssetItem.skip || %childAssetItem.processed == false)
|
||||
continue;
|
||||
|
||||
%depAssetType = %childAssetItem.assetType;
|
||||
if(%childAssetItem.assetType $= "MaterialAsset")
|
||||
{
|
||||
%matSet = "%newAsset.materialSlot"@%dependencySlotId@"=\"@Asset="@%moduleName@":"@%childAssetItem.assetName@"\";";
|
||||
eval(%matSet);
|
||||
%dependencySlotId++;
|
||||
}
|
||||
else if(%depAssetType $= "AnimationAsset")
|
||||
{
|
||||
%matSet = "%newAsset.animationSequence"@%dependencySlotId@"=\"@Asset="@%moduleName@":"@%childAssetItem.assetName@"\";";
|
||||
eval(%matSet);
|
||||
%dependencySlotId++;
|
||||
}
|
||||
}
|
||||
|
||||
%assetImportSuccessful = TAMLWrite(%newAsset, %assetPath @ %assetName @ ".asset.taml");
|
||||
|
|
@ -223,7 +220,7 @@ function AssetBrowser::importShapeAsset(%this, %assetItem)
|
|||
ShapeEditor.saveConstructor( %constructor );
|
||||
|
||||
//now, force-load the file if it's collada
|
||||
%fileExt = fileExt(%assetFullPath);
|
||||
/*%fileExt = fileExt(%assetFullPath);
|
||||
if(isSupportedFormat(getSubStr(%fileExt,1)))
|
||||
{
|
||||
%tempShape = new TSStatic()
|
||||
|
|
@ -232,7 +229,7 @@ function AssetBrowser::importShapeAsset(%this, %assetItem)
|
|||
};
|
||||
|
||||
%tempShape.delete();
|
||||
}
|
||||
}*/
|
||||
|
||||
%moduleDef = ModuleDatabase.findModule(%moduleName,1);
|
||||
|
||||
|
|
@ -251,7 +248,9 @@ function AssetBrowser::buildShapeAssetPreview(%this, %assetDef, %previewData)
|
|||
|
||||
%previewData.assetFriendlyName = %assetDef.assetName;
|
||||
%previewData.assetDesc = %assetDef.description;
|
||||
%previewData.tooltip = %assetDef.friendlyName @ "\n" @ %assetDef;
|
||||
%previewData.tooltip = "Asset Name: " @ %assetDef.assetName @ "\n" @
|
||||
"Asset Type: Shape Asset\n" @
|
||||
"Asset Defition ID: " @ %assetDef;
|
||||
}
|
||||
|
||||
function AssetBrowser::onShapeAssetEditorDropped(%this, %assetDef, %position)
|
||||
|
|
@ -324,7 +323,13 @@ function processShapeMaterialInfo(%assetItem, %materialItem)
|
|||
//could be a stale path reference, such as if it was downloaded elsewhere. Trim to just the filename and see
|
||||
//if we can find it there
|
||||
%shapePathBase = filePath(%assetItem.filePath);
|
||||
%imageFileName = %shapePathBase @ "/" @ fileName(%filePath);
|
||||
|
||||
%filename = fileName(%filePath);
|
||||
|
||||
%suffixPos = strpos(strlwr(%filename), " (not found)", 0);
|
||||
%filename = getSubStr(%filename, 0, %suffixPos);
|
||||
|
||||
%imageFileName = %shapePathBase @ "/" @ %filename;
|
||||
if(isFile(%imageFileName))
|
||||
%filePath = %imageFileName;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -139,6 +139,15 @@ function AssetBrowser::editModuleInfo(%this)
|
|||
ModuleEditInspector.endGroup();
|
||||
}
|
||||
|
||||
function AssetBrowser::editModuleScript(%this)
|
||||
{
|
||||
%moduleDef = ModuleDatabase.findModule(AssetBrowser.selectedModule, 1);
|
||||
|
||||
%scriptFile = %moduleDef.ModuleScriptFilePath;
|
||||
|
||||
EditorOpenFileInTorsion(makeFullPath(%scriptFile), 0);
|
||||
}
|
||||
|
||||
function AssetBrowser::renameModule(%this)
|
||||
{
|
||||
|
||||
|
|
|
|||
|
|
@ -192,7 +192,8 @@ function LooseFileAuditWindow::importImage(%this)
|
|||
if(!ImportAssetWindow.isAwake())
|
||||
ImportAssetWindow.showDialog();
|
||||
|
||||
AssetBrowser.addImportingAsset("ImageAsset", LooseFileList.itemPath, "", "");
|
||||
%assetItem = AssetBrowser.addImportingAsset("ImageAsset", LooseFileList.itemPath, "", "");
|
||||
ImportAssetItems.add(%assetItem);
|
||||
LooseFileList.removeItem(LooseFileList.selectedItem, false);
|
||||
LooseFileList.buildVisibleTree(true);
|
||||
LooseFileList.expandItem(0);
|
||||
|
|
|
|||
|
|
@ -178,14 +178,15 @@ function AssetBrowser::buildPopupMenus(%this)
|
|||
|
||||
item[ 0 ] = "New Asset" TAB AddNewAssetPopup;
|
||||
item[ 1 ] = "Reload Module" TAB "" TAB "AssetBrowser.reloadModule();";
|
||||
Item[ 2 ] = "-";
|
||||
Item[ 3 ] = "Edit Module" TAB "" TAB "AssetBrowser.editModuleInfo();";
|
||||
Item[ 4 ] = "-";
|
||||
Item[ 5 ] = "Duplicate Module" TAB "" TAB "AssetBrowser.copyModule();";
|
||||
Item[ 6 ] = "-";
|
||||
Item[ 7 ] = "Delete Module" TAB "" TAB "AssetBrowser.deleteModule();";
|
||||
item[ 8 ] = "-";
|
||||
item[ 9 ] = "Import Loose Files" TAB "" TAB "AssetBrowser.importLooseFiles();";
|
||||
Item[ 2 ] = "Edit Module" TAB "" TAB "AssetBrowser.editModuleScript();";
|
||||
Item[ 3 ] = "-";
|
||||
Item[ 4 ] = "Module Properties" TAB "" TAB "AssetBrowser.editModuleInfo();";
|
||||
Item[ 5 ] = "-";
|
||||
Item[ 6 ] = "Duplicate Module" TAB "" TAB "AssetBrowser.copyModule();";
|
||||
Item[ 7 ] = "-";
|
||||
Item[ 8 ] = "Delete Module" TAB "" TAB "AssetBrowser.deleteModule();";
|
||||
item[ 9 ] = "-";
|
||||
item[ 10 ] = "Import Loose Files" TAB "" TAB "AssetBrowser.importLooseFiles();";
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue