From 68c6b343d55a3fcb5d67185144c8a9214e0b6844 Mon Sep 17 00:00:00 2001 From: AzaezelX Date: Sat, 28 Aug 2021 19:27:53 -0500 Subject: [PATCH 1/4] DiffuseRenderPassManager.addManager "cleanups" adds bintypes where they're lacking, since that's an active object-type filter to avoid accidently rendering things twice. (particleBin being like glowmanager, a seperate flow, that acts up if filtered in that manner) basiconly likewise is intended to avoid multiple-pass insertions, despite the varname. --- .../game/core/rendering/scripts/renderManager.tscript | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Templates/BaseGame/game/core/rendering/scripts/renderManager.tscript b/Templates/BaseGame/game/core/rendering/scripts/renderManager.tscript index 3f14a4569..1eefa6cf5 100644 --- a/Templates/BaseGame/game/core/rendering/scripts/renderManager.tscript +++ b/Templates/BaseGame/game/core/rendering/scripts/renderManager.tscript @@ -53,14 +53,14 @@ function initRenderManager() DiffuseRenderPassManager.addManager( new RenderObjectMgr(BeginBin) { bintype = "Begin"; renderOrder = 0.2; processAddOrder = 0.2; } ); // Normal mesh rendering. - DiffuseRenderPassManager.addManager( new RenderTerrainMgr(TerrainBin) { renderOrder = 0.4; processAddOrder = 0.4; basicOnly = true; } ); + DiffuseRenderPassManager.addManager( new RenderTerrainMgr(TerrainBin) { bintype = "Terrain"; renderOrder = 0.4; processAddOrder = 0.4; basicOnly = true; } ); DiffuseRenderPassManager.addManager( new RenderMeshMgr(MeshBin) { bintype = "Mesh"; renderOrder = 0.5; processAddOrder = 0.5; basicOnly = true; } ); - DiffuseRenderPassManager.addManager( new RenderImposterMgr(ImposterBin) { renderOrder = 0.56; processAddOrder = 0.56; } ); + DiffuseRenderPassManager.addManager( new RenderImposterMgr(ImposterBin) { bintype = "Imposter"; renderOrder = 0.56; processAddOrder = 0.56; } ); DiffuseRenderPassManager.addManager( new RenderObjectMgr(ObjectBin) { bintype = "Object"; renderOrder = 0.6; processAddOrder = 0.6; } ); DiffuseRenderPassManager.addManager( new RenderObjectMgr(ShadowBin) { bintype = "Shadow"; renderOrder = 0.7; processAddOrder = 0.7; } ); - DiffuseRenderPassManager.addManager( new RenderMeshMgr(DecalRoadBin) { bintype = "DecalRoad"; renderOrder = 0.8; processAddOrder = 0.8; } ); - DiffuseRenderPassManager.addManager( new RenderMeshMgr(DecalBin) { bintype = "Decal"; renderOrder = 0.81; processAddOrder = 0.81; } ); + DiffuseRenderPassManager.addManager( new RenderMeshMgr(DecalRoadBin) { bintype = "DecalRoad"; renderOrder = 0.8; processAddOrder = 0.8; basicOnly = true;} ); + DiffuseRenderPassManager.addManager( new RenderMeshMgr(DecalBin) { bintype = "Decal"; renderOrder = 0.81; processAddOrder = 0.81; basicOnly = true;} ); DiffuseRenderPassManager.addManager( new RenderOcclusionMgr(OccluderBin){ bintype = "Occluder"; renderOrder = 0.9; processAddOrder = 0.9; } ); // Render the sky last @@ -75,7 +75,7 @@ function initRenderManager() DiffuseRenderPassManager.addManager( new RenderObjectMgr(WaterBin) { bintype = "Water"; renderOrder = 1.2; processAddOrder = 1.2; } ); DiffuseRenderPassManager.addManager( new RenderObjectMgr(FoliageBin) { bintype = "Foliage"; renderOrder = 1.3; processAddOrder = 1.3; } ); - DiffuseRenderPassManager.addManager( new RenderParticleMgr(ParticleBin) { renderOrder = 1.35; processAddOrder = 1.35; } ); + DiffuseRenderPassManager.addManager( new RenderParticleMgr(ParticleBin) { renderOrder = 1.35; processAddOrder = 1.35; basicOnly = true;} ); DiffuseRenderPassManager.addManager( new RenderTranslucentMgr(TranslucentBin){ renderOrder = 1.4; processAddOrder = 1.4; } ); DiffuseRenderPassManager.addManager(new RenderObjectMgr(FogBin){ bintype = "ObjectVolumetricFog"; renderOrder = 1.45; processAddOrder = 1.45; } ); From 28dd4311181de6762f29bbcb698f930cacd0c5fa Mon Sep 17 00:00:00 2001 From: AzaezelX Date: Sun, 29 Aug 2021 01:08:19 -0500 Subject: [PATCH 2/4] ensure new (foo) lines being converted are valid according to findObjectClass --- .../scripts/pre40/T3Dpre4ProjectImporter.tscript | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Templates/BaseGame/game/tools/projectImporter/scripts/pre40/T3Dpre4ProjectImporter.tscript b/Templates/BaseGame/game/tools/projectImporter/scripts/pre40/T3Dpre4ProjectImporter.tscript index 9c0b1691f..92b198afe 100644 --- a/Templates/BaseGame/game/tools/projectImporter/scripts/pre40/T3Dpre4ProjectImporter.tscript +++ b/Templates/BaseGame/game/tools/projectImporter/scripts/pre40/T3Dpre4ProjectImporter.tscript @@ -235,6 +235,7 @@ function T3Dpre4ProjectImporter::beginMaterialFilesImport(%this) if(strIsMatchExpr("*new*(*)*", %line) && strpos(%line, "::") == -1) { %className = findObjectClass(%line, "new"); + if (%className $= "") continue; if(%className !$= "Material" && %className !$= "CustomMaterial" && %className !$= "TerrainMaterial" && %className !$= "CubemapData") { @@ -463,6 +464,7 @@ function T3Dpre4ProjectImporter::beginCodeFilesImport(%this) if(strIsMatchExpr("*new*(*)*", %line) && strpos(%line, "::") == -1) { %className = findObjectClass(%line, "new"); + if (%className $= "") continue; %objectClassStack.push_back(%className); From bdf6bd5c69226d6884e5b705f11eb13e56a34f2c Mon Sep 17 00:00:00 2001 From: AzaezelX Date: Sun, 29 Aug 2021 17:41:20 -0500 Subject: [PATCH 3/4] account for the possiblity of _set##name(StringTableEntry _in entries somehow getting punted nulls --- Engine/source/T3D/assets/ImageAsset.h | 4 ++-- Engine/source/T3D/assets/MaterialAsset.h | 2 +- Engine/source/T3D/assets/ShapeAsset.h | 4 ++-- Engine/source/T3D/assets/SoundAsset.h | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Engine/source/T3D/assets/ImageAsset.h b/Engine/source/T3D/assets/ImageAsset.h index ec16179aa..b7f9d505b 100644 --- a/Engine/source/T3D/assets/ImageAsset.h +++ b/Engine/source/T3D/assets/ImageAsset.h @@ -176,7 +176,7 @@ public: \ {\ m##name##Asset->getChangedSignal().remove(this, &className::changeFunc);\ }\ - if (_in == StringTable->EmptyString())\ + if (_in == NULL || _in == StringTable->EmptyString())\ {\ m##name##Name = StringTable->EmptyString();\ m##name##AssetId = StringTable->EmptyString();\ @@ -400,7 +400,7 @@ public: \ {\ if(index >= sm##name##Count || index < 0)\ return false;\ - if (_in == StringTable->EmptyString())\ + if (_in == NULL || _in == StringTable->EmptyString())\ {\ m##name##Name[index] = StringTable->EmptyString();\ m##name##AssetId[index] = StringTable->EmptyString();\ diff --git a/Engine/source/T3D/assets/MaterialAsset.h b/Engine/source/T3D/assets/MaterialAsset.h index 7e307cd2b..b91483a07 100644 --- a/Engine/source/T3D/assets/MaterialAsset.h +++ b/Engine/source/T3D/assets/MaterialAsset.h @@ -168,7 +168,7 @@ public: \ {\ if(m##name##AssetId != _in || m##name##Name != _in)\ {\ - if (_in == StringTable->EmptyString())\ + if (_in == NULL || _in == StringTable->EmptyString())\ {\ m##name##Name = StringTable->EmptyString();\ m##name##AssetId = StringTable->EmptyString();\ diff --git a/Engine/source/T3D/assets/ShapeAsset.h b/Engine/source/T3D/assets/ShapeAsset.h index d2ec353e7..4265bea22 100644 --- a/Engine/source/T3D/assets/ShapeAsset.h +++ b/Engine/source/T3D/assets/ShapeAsset.h @@ -241,7 +241,7 @@ public: \ {\ m##name##Asset->getChangedSignal().remove(this, &className::changeFunc);\ }\ - if (_in == StringTable->EmptyString())\ + if (_in == NULL || _in == StringTable->EmptyString())\ {\ m##name##Name = StringTable->EmptyString();\ m##name##AssetId = StringTable->EmptyString();\ @@ -439,7 +439,7 @@ public: \ {\ if(index >= sm##name##Count || index < 0)\ return false;\ - if (_in == StringTable->EmptyString())\ + if (_in == NULL || _in == StringTable->EmptyString())\ {\ m##name##Name[index] = StringTable->EmptyString();\ m##name##AssetId[index] = StringTable->EmptyString();\ diff --git a/Engine/source/T3D/assets/SoundAsset.h b/Engine/source/T3D/assets/SoundAsset.h index eb273291c..a63e14cdf 100644 --- a/Engine/source/T3D/assets/SoundAsset.h +++ b/Engine/source/T3D/assets/SoundAsset.h @@ -184,7 +184,7 @@ public: \ {\ if(m##name##AssetId != _in || m##name##Name != _in)\ {\ - if (_in == StringTable->EmptyString())\ + if (_in == NULL || _in == StringTable->EmptyString())\ {\ m##name##Name = StringTable->EmptyString();\ m##name##AssetId = StringTable->EmptyString();\ From ee3ef531e2b46e42a5905445ce2462efe902cc75 Mon Sep 17 00:00:00 2001 From: AzaezelX Date: Sun, 29 Aug 2021 18:32:44 -0500 Subject: [PATCH 4/4] ironically, overly paranoid checks were tripping warnings --- Engine/source/T3D/assets/ImageAsset.h | 2 +- Engine/source/T3D/assets/MaterialAsset.h | 2 +- Engine/source/T3D/assets/ShapeAsset.h | 2 +- Engine/source/T3D/assets/SoundAsset.h | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Engine/source/T3D/assets/ImageAsset.h b/Engine/source/T3D/assets/ImageAsset.h index b7f9d505b..241cae7b6 100644 --- a/Engine/source/T3D/assets/ImageAsset.h +++ b/Engine/source/T3D/assets/ImageAsset.h @@ -248,7 +248,7 @@ public: \ Con::errorf("%s(%s)::_set%s() - image asset failure\"%s\" due to [%s]", macroText(className), getName(), macroText(name), _in, ImageAsset::getAssetErrstrn(m##name##Asset->getStatus()).c_str());\ return false; \ }\ - else if (bool(m##name) == NULL)\ + else if (m##name)\ {\ Con::errorf("%s(%s)::_set%s() - Couldn't load image \"%s\"", macroText(className), getName(), macroText(name), _in);\ return false;\ diff --git a/Engine/source/T3D/assets/MaterialAsset.h b/Engine/source/T3D/assets/MaterialAsset.h index b91483a07..e046b31bd 100644 --- a/Engine/source/T3D/assets/MaterialAsset.h +++ b/Engine/source/T3D/assets/MaterialAsset.h @@ -231,7 +231,7 @@ public: \ Con::errorf("%s::_set%s() - material asset failure\"%s\" due to [%s]", macroText(className), macroText(name), _in, MaterialAsset::getAssetErrstrn(m##name##Asset->getStatus()).c_str());\ return false; \ }\ - else if (bool(m##name) == NULL)\ + else if (m##name)\ {\ Con::errorf("%s::_set%s() - Couldn't load material \"%s\"", macroText(className), macroText(name), _in);\ return false;\ diff --git a/Engine/source/T3D/assets/ShapeAsset.h b/Engine/source/T3D/assets/ShapeAsset.h index 4265bea22..b5bc0a97a 100644 --- a/Engine/source/T3D/assets/ShapeAsset.h +++ b/Engine/source/T3D/assets/ShapeAsset.h @@ -299,7 +299,7 @@ public: \ Con::errorf("%s(%s)::_set%s() - shape asset failure \"%s\" due to [%s]", macroText(className), getName(), macroText(name), _in, ShapeAsset::getAssetErrstrn(m##name##Asset->getStatus()).c_str());\ return false; \ }\ - else if (bool(m##name) == NULL)\ + else if (m##name)\ {\ Con::errorf("%s(%s)::_set%s() - Couldn't load shape \"%s\"", macroText(className), getName(), macroText(name), _in);\ return false;\ diff --git a/Engine/source/T3D/assets/SoundAsset.h b/Engine/source/T3D/assets/SoundAsset.h index a63e14cdf..bbaeaef9d 100644 --- a/Engine/source/T3D/assets/SoundAsset.h +++ b/Engine/source/T3D/assets/SoundAsset.h @@ -237,7 +237,7 @@ public: \ Con::errorf("%s(%s)::_set%s() - sound asset failure\"%s\" due to [%s]", macroText(className), getName(), macroText(name), _in, ShapeAsset::getAssetErrstrn(m##name##Asset->getStatus()).c_str());\ return false; \ }\ - else if (bool(m##name) == NULL)\ + else if (m##name)\ {\ Con::errorf("%s(%s)::_set%s() - Couldn't load sound \"%s\"", macroText(className), getName(), macroText(name), _in);\ return false;\