From 438e6cbb3c59b5e030ec8698886bd20f9194058d Mon Sep 17 00:00:00 2001 From: AzaezelX Date: Sun, 25 Jul 2021 17:18:55 -0500 Subject: [PATCH] fix for diffuse map mangling in several cases, filter imposters out of real time lighting (for now?) fix the blankskybox via a resave, and filter "badfilereference" and "failed" assets out of variable replacement for the project converter --- Engine/source/materials/materialList.cpp | 2 +- Engine/source/materials/processedMaterial.cpp | 2 +- .../shaderGen/GLSL/shaderFeatureGLSL.cpp | 1 + .../shaderGen/HLSL/shaderFeatureHLSL.cpp | 9 +++++---- Engine/source/terrain/terrData.cpp | 1 - Engine/source/terrain/terrMaterial.cpp | 8 ++++---- Engine/source/ts/tsLastDetail.cpp | 4 ++-- .../materials/Blank_sky/BlankSkybox.png | Bin 12332 -> 2799 bytes .../pre40/T3Dpre4ProjectImporter.tscript | 4 +++- .../scripts/projectImporter.tscript | 5 +---- 10 files changed, 18 insertions(+), 18 deletions(-) diff --git a/Engine/source/materials/materialList.cpp b/Engine/source/materials/materialList.cpp index e2352321b..34dd104f3 100644 --- a/Engine/source/materials/materialList.cpp +++ b/Engine/source/materials/materialList.cpp @@ -365,7 +365,7 @@ void MaterialList::mapMaterial( U32 i ) newMat->mAutoGenerated = true; // Overwrite diffuseMap in new material - newMat->mDiffuseMapName[0] = texHandle->mTextureLookupName; + newMat->_setDiffuseMap(texHandle->mTextureLookupName,0); // Set up some defaults for transparent textures if (texHandle->mHasTransparency) diff --git a/Engine/source/materials/processedMaterial.cpp b/Engine/source/materials/processedMaterial.cpp index 452b95edc..63150fd94 100644 --- a/Engine/source/materials/processedMaterial.cpp +++ b/Engine/source/materials/processedMaterial.cpp @@ -421,7 +421,7 @@ void ProcessedMaterial::_setStageData() //If we start with a #, we're probably actually attempting to hit a named target and it may not get a hit on the first pass. So we'll //pass on the error rather than spamming the console if (!String(mMaterial->mDiffuseMapName[i]).startsWith("#")) - mMaterial->logError("Failed to load diffuse map %s for stage %i", _getTexturePath(mMaterial->mDiffuseMapName[i]).c_str(), i); + mMaterial->logError("Failed to load diffuse map %s for stage %i", mMaterial->mDiffuseMapName[i], i); // Load a debug texture to make it clear to the user // that the texture for this stage was missing. diff --git a/Engine/source/shaderGen/GLSL/shaderFeatureGLSL.cpp b/Engine/source/shaderGen/GLSL/shaderFeatureGLSL.cpp index 21755d80c..b6c825864 100644 --- a/Engine/source/shaderGen/GLSL/shaderFeatureGLSL.cpp +++ b/Engine/source/shaderGen/GLSL/shaderFeatureGLSL.cpp @@ -2067,6 +2067,7 @@ RTLightingFeatGLSL::RTLightingFeatGLSL() void RTLightingFeatGLSL::processVert( Vector &componentList, const MaterialFeatureData &fd ) { + if (fd.features[MFT_ImposterVert]) return; MultiLine *meta = new MultiLine; ShaderConnector *connectComp = dynamic_cast( componentList[C_CONNECTOR] ); diff --git a/Engine/source/shaderGen/HLSL/shaderFeatureHLSL.cpp b/Engine/source/shaderGen/HLSL/shaderFeatureHLSL.cpp index 72252177a..bf826fea9 100644 --- a/Engine/source/shaderGen/HLSL/shaderFeatureHLSL.cpp +++ b/Engine/source/shaderGen/HLSL/shaderFeatureHLSL.cpp @@ -2138,10 +2138,11 @@ RTLightingFeatHLSL::RTLightingFeatHLSL() void RTLightingFeatHLSL::processVert( Vector &componentList, const MaterialFeatureData &fd ) { + if (fd.features[MFT_ImposterVert]) return; + MultiLine *meta = new MultiLine; ShaderConnector *connectComp = dynamic_cast( componentList[C_CONNECTOR] ); - getOutWorldToTangent(componentList, meta, fd); // Special case for lighting imposters. We dont have a vert normal and may not // have a normal map. Generate and pass the normal data the pixel shader needs. @@ -2206,6 +2207,7 @@ void RTLightingFeatHLSL::processVert( Vector &componentList, } addOutWsPosition( componentList, fd.features[MFT_UseInstancing], meta ); + getOutWorldToTangent(componentList, meta, fd); output = meta; } @@ -3025,14 +3027,13 @@ void ReflectionProbeFeatHLSL::processVert(Vector& componentLis output = meta; // Also output the worldToTanget transform which // we use to create the world space normal. - getOutWorldToTangent(componentList, meta, fd); + //getOutWorldToTangent(componentList, meta, fd); } void ReflectionProbeFeatHLSL::processPix(Vector &componentList, const MaterialFeatureData &fd) { - // Skip out on realtime lighting if we don't have a normal - // or we're doing some sort of baked lighting. + // Skip out on realtime lighting if we're doing some sort of baked lighting. // // TODO: We can totally detect for this in the material // feature setup... we should move it out of here! diff --git a/Engine/source/terrain/terrData.cpp b/Engine/source/terrain/terrData.cpp index bc2121bef..a80e350f0 100644 --- a/Engine/source/terrain/terrData.cpp +++ b/Engine/source/terrain/terrData.cpp @@ -1419,7 +1419,6 @@ void TerrainBlock::unpackUpdate(NetConnection* con, BitStream *stream) char buffer[256]; stream->readString(buffer); bool validAsset = setTerrainAsset(StringTable->insert(buffer)); - _updateBaseTexture(NONE); } if (baseTexSizeChanged && isProperlyAdded()) _updateBaseTexture(NONE); diff --git a/Engine/source/terrain/terrMaterial.cpp b/Engine/source/terrain/terrMaterial.cpp index 84dc0d9de..06b3b27bd 100644 --- a/Engine/source/terrain/terrMaterial.cpp +++ b/Engine/source/terrain/terrMaterial.cpp @@ -168,7 +168,7 @@ TerrainMaterial* TerrainMaterial::findOrCreate( const char *nameOrPath ) { mat = new TerrainMaterial(); mat->setInternalName( nameOrPath ); - mat->mDiffuseMapName = nameOrPath; + mat->_setDiffuseMap(nameOrPath); mat->registerObject(); Sim::getRootGroup()->addObject( mat ); return mat; @@ -183,11 +183,11 @@ TerrainMaterial* TerrainMaterial::findOrCreate( const char *nameOrPath ) // fallback here just in case it gets "lost". mat = new TerrainMaterial(); mat->setInternalName( "warning_material" ); - mat->mDiffuseMapName = GFXTextureManager::getWarningTexturePath(); + mat->_setDiffuseMap(GFXTextureManager::getWarningTexturePath()); mat->mDiffuseSize = 500; - mat->mDiffuseMapName = GFXTextureManager::getWarningTexturePath(); + mat->_setDetailMap(StringTable->EmptyString()); mat->mDetailSize = 5; - mat->mDiffuseMapName = GFXTextureManager::getWarningTexturePath(); + mat->_setMacroMap(StringTable->EmptyString()); mat->mMacroSize = 200; mat->registerObject(); diff --git a/Engine/source/ts/tsLastDetail.cpp b/Engine/source/ts/tsLastDetail.cpp index 228d506ec..9af2c22fa 100644 --- a/Engine/source/ts/tsLastDetail.cpp +++ b/Engine/source/ts/tsLastDetail.cpp @@ -218,8 +218,8 @@ void TSLastDetail::update( bool forceUpdate ) // Setup the material for this imposter. mMaterial = MATMGR->allocateAndRegister( String::EmptyString ); mMaterial->mAutoGenerated = true; - mMaterial->mDiffuseMapName[0] = diffuseMapPath; - mMaterial->mNormalMapName[0] = _getNormalMapPath(); + mMaterial->_setDiffuseMap(diffuseMapPath,0); + mMaterial->_setNormalMap(_getNormalMapPath(), 0); mMaterial->mImposterLimits.set( (mNumPolarSteps * 2) + 1, mNumEquatorSteps, mPolarAngle, mIncludePoles ); mMaterial->mTranslucent = true; mMaterial->mTranslucentBlendOp = Material::None; diff --git a/Templates/BaseGame/game/core/rendering/materials/Blank_sky/BlankSkybox.png b/Templates/BaseGame/game/core/rendering/materials/Blank_sky/BlankSkybox.png index 69b986833429fac68bcf62380a11c3ae2872d705..9a60da1a251556534992169ce606cba61541c6d7 100644 GIT binary patch literal 2799 zcmV)P)004&%004{+008|`004nN004b?008NW002DY000@xb3BE2000Uv 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 L0n#GDtULR^!Rexl diff --git a/Templates/BaseGame/game/tools/projectImporter/scripts/pre40/T3Dpre4ProjectImporter.tscript b/Templates/BaseGame/game/tools/projectImporter/scripts/pre40/T3Dpre4ProjectImporter.tscript index c762d3a11..ad44a398d 100644 --- a/Templates/BaseGame/game/tools/projectImporter/scripts/pre40/T3Dpre4ProjectImporter.tscript +++ b/Templates/BaseGame/game/tools/projectImporter/scripts/pre40/T3Dpre4ProjectImporter.tscript @@ -805,7 +805,9 @@ T3Dpre4ProjectImporter::genProcessor("GroundCover", "material materialAsset shap T3Dpre4ProjectImporter::genProcessor("GroundPlane", "material materialAsset"); T3Dpre4ProjectImporter::genProcessor("LevelInfo", "accuTexture accuTextureAsset"); T3Dpre4ProjectImporter::genProcessor("TSStatic", "shape shapeAsset shapeName shapeAsset"); -T3Dpre4ProjectImporter::genProcessor("TSForestItemData", "shape shapeAsset shapeName shapeAsset"); +T3Dpre4ProjectImporter::genProcessor("ForestItemData", "shape shapeAsset shapeName shapeAsset"); +//T3Dpre4ProjectImporter::genProcessor("TerrainBlock", "terrainFile terrainFileAsset"); + //============================================================================== // Levels //============================================================================== diff --git a/Templates/BaseGame/game/tools/projectImporter/scripts/projectImporter.tscript b/Templates/BaseGame/game/tools/projectImporter/scripts/projectImporter.tscript index ef465b989..bda65b92e 100644 --- a/Templates/BaseGame/game/tools/projectImporter/scripts/projectImporter.tscript +++ b/Templates/BaseGame/game/tools/projectImporter/scripts/projectImporter.tscript @@ -465,14 +465,11 @@ function processLegacyField(%line, %originalFieldName, %newFieldName) if(%assetId !$= "" && AssetDatabase.isDeclaredAsset(%assetId)) { - //if (%assetId.getStatusString() $= "Ok") %outLine = strReplace(%outLine, %value, %assetId); - //else - // error("Asset assignment failure:", %assetId, getStatusString()); } } - if(%outLine !$= %line) + if((%outLine !$= %line)&&(%assetId.getStatusString() !$= "BadFileReference")&&(%assetId.getStatusString() !$= "Failed")) { echo("Legacy Project Importer - processing of legacy line: " @ %line @ " has been updated to: " @ %outLine); return %outLine;