mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-15 16:44:36 +00:00
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
This commit is contained in:
parent
432d201569
commit
438e6cbb3c
10 changed files with 18 additions and 18 deletions
|
|
@ -365,7 +365,7 @@ void MaterialList::mapMaterial( U32 i )
|
||||||
newMat->mAutoGenerated = true;
|
newMat->mAutoGenerated = true;
|
||||||
|
|
||||||
// Overwrite diffuseMap in new material
|
// Overwrite diffuseMap in new material
|
||||||
newMat->mDiffuseMapName[0] = texHandle->mTextureLookupName;
|
newMat->_setDiffuseMap(texHandle->mTextureLookupName,0);
|
||||||
|
|
||||||
// Set up some defaults for transparent textures
|
// Set up some defaults for transparent textures
|
||||||
if (texHandle->mHasTransparency)
|
if (texHandle->mHasTransparency)
|
||||||
|
|
|
||||||
|
|
@ -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
|
//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
|
//pass on the error rather than spamming the console
|
||||||
if (!String(mMaterial->mDiffuseMapName[i]).startsWith("#"))
|
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
|
// Load a debug texture to make it clear to the user
|
||||||
// that the texture for this stage was missing.
|
// that the texture for this stage was missing.
|
||||||
|
|
|
||||||
|
|
@ -2067,6 +2067,7 @@ RTLightingFeatGLSL::RTLightingFeatGLSL()
|
||||||
void RTLightingFeatGLSL::processVert( Vector<ShaderComponent*> &componentList,
|
void RTLightingFeatGLSL::processVert( Vector<ShaderComponent*> &componentList,
|
||||||
const MaterialFeatureData &fd )
|
const MaterialFeatureData &fd )
|
||||||
{
|
{
|
||||||
|
if (fd.features[MFT_ImposterVert]) return;
|
||||||
MultiLine *meta = new MultiLine;
|
MultiLine *meta = new MultiLine;
|
||||||
|
|
||||||
ShaderConnector *connectComp = dynamic_cast<ShaderConnector *>( componentList[C_CONNECTOR] );
|
ShaderConnector *connectComp = dynamic_cast<ShaderConnector *>( componentList[C_CONNECTOR] );
|
||||||
|
|
|
||||||
|
|
@ -2138,10 +2138,11 @@ RTLightingFeatHLSL::RTLightingFeatHLSL()
|
||||||
void RTLightingFeatHLSL::processVert( Vector<ShaderComponent*> &componentList,
|
void RTLightingFeatHLSL::processVert( Vector<ShaderComponent*> &componentList,
|
||||||
const MaterialFeatureData &fd )
|
const MaterialFeatureData &fd )
|
||||||
{
|
{
|
||||||
|
if (fd.features[MFT_ImposterVert]) return;
|
||||||
|
|
||||||
MultiLine *meta = new MultiLine;
|
MultiLine *meta = new MultiLine;
|
||||||
|
|
||||||
ShaderConnector *connectComp = dynamic_cast<ShaderConnector *>( componentList[C_CONNECTOR] );
|
ShaderConnector *connectComp = dynamic_cast<ShaderConnector *>( componentList[C_CONNECTOR] );
|
||||||
getOutWorldToTangent(componentList, meta, fd);
|
|
||||||
|
|
||||||
// Special case for lighting imposters. We dont have a vert normal and may not
|
// 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.
|
// have a normal map. Generate and pass the normal data the pixel shader needs.
|
||||||
|
|
@ -2206,6 +2207,7 @@ void RTLightingFeatHLSL::processVert( Vector<ShaderComponent*> &componentList,
|
||||||
}
|
}
|
||||||
|
|
||||||
addOutWsPosition( componentList, fd.features[MFT_UseInstancing], meta );
|
addOutWsPosition( componentList, fd.features[MFT_UseInstancing], meta );
|
||||||
|
getOutWorldToTangent(componentList, meta, fd);
|
||||||
|
|
||||||
output = meta;
|
output = meta;
|
||||||
}
|
}
|
||||||
|
|
@ -3025,14 +3027,13 @@ void ReflectionProbeFeatHLSL::processVert(Vector<ShaderComponent*>& componentLis
|
||||||
output = meta;
|
output = meta;
|
||||||
// Also output the worldToTanget transform which
|
// Also output the worldToTanget transform which
|
||||||
// we use to create the world space normal.
|
// we use to create the world space normal.
|
||||||
getOutWorldToTangent(componentList, meta, fd);
|
//getOutWorldToTangent(componentList, meta, fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ReflectionProbeFeatHLSL::processPix(Vector<ShaderComponent*> &componentList,
|
void ReflectionProbeFeatHLSL::processPix(Vector<ShaderComponent*> &componentList,
|
||||||
const MaterialFeatureData &fd)
|
const MaterialFeatureData &fd)
|
||||||
{
|
{
|
||||||
// Skip out on realtime lighting if we don't have a normal
|
// Skip out on realtime lighting if we're doing some sort of baked lighting.
|
||||||
// or we're doing some sort of baked lighting.
|
|
||||||
//
|
//
|
||||||
// TODO: We can totally detect for this in the material
|
// TODO: We can totally detect for this in the material
|
||||||
// feature setup... we should move it out of here!
|
// feature setup... we should move it out of here!
|
||||||
|
|
|
||||||
|
|
@ -1419,7 +1419,6 @@ void TerrainBlock::unpackUpdate(NetConnection* con, BitStream *stream)
|
||||||
char buffer[256];
|
char buffer[256];
|
||||||
stream->readString(buffer);
|
stream->readString(buffer);
|
||||||
bool validAsset = setTerrainAsset(StringTable->insert(buffer));
|
bool validAsset = setTerrainAsset(StringTable->insert(buffer));
|
||||||
_updateBaseTexture(NONE);
|
|
||||||
}
|
}
|
||||||
if (baseTexSizeChanged && isProperlyAdded())
|
if (baseTexSizeChanged && isProperlyAdded())
|
||||||
_updateBaseTexture(NONE);
|
_updateBaseTexture(NONE);
|
||||||
|
|
|
||||||
|
|
@ -168,7 +168,7 @@ TerrainMaterial* TerrainMaterial::findOrCreate( const char *nameOrPath )
|
||||||
{
|
{
|
||||||
mat = new TerrainMaterial();
|
mat = new TerrainMaterial();
|
||||||
mat->setInternalName( nameOrPath );
|
mat->setInternalName( nameOrPath );
|
||||||
mat->mDiffuseMapName = nameOrPath;
|
mat->_setDiffuseMap(nameOrPath);
|
||||||
mat->registerObject();
|
mat->registerObject();
|
||||||
Sim::getRootGroup()->addObject( mat );
|
Sim::getRootGroup()->addObject( mat );
|
||||||
return mat;
|
return mat;
|
||||||
|
|
@ -183,11 +183,11 @@ TerrainMaterial* TerrainMaterial::findOrCreate( const char *nameOrPath )
|
||||||
// fallback here just in case it gets "lost".
|
// fallback here just in case it gets "lost".
|
||||||
mat = new TerrainMaterial();
|
mat = new TerrainMaterial();
|
||||||
mat->setInternalName( "warning_material" );
|
mat->setInternalName( "warning_material" );
|
||||||
mat->mDiffuseMapName = GFXTextureManager::getWarningTexturePath();
|
mat->_setDiffuseMap(GFXTextureManager::getWarningTexturePath());
|
||||||
mat->mDiffuseSize = 500;
|
mat->mDiffuseSize = 500;
|
||||||
mat->mDiffuseMapName = GFXTextureManager::getWarningTexturePath();
|
mat->_setDetailMap(StringTable->EmptyString());
|
||||||
mat->mDetailSize = 5;
|
mat->mDetailSize = 5;
|
||||||
mat->mDiffuseMapName = GFXTextureManager::getWarningTexturePath();
|
mat->_setMacroMap(StringTable->EmptyString());
|
||||||
mat->mMacroSize = 200;
|
mat->mMacroSize = 200;
|
||||||
mat->registerObject();
|
mat->registerObject();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -218,8 +218,8 @@ void TSLastDetail::update( bool forceUpdate )
|
||||||
// Setup the material for this imposter.
|
// Setup the material for this imposter.
|
||||||
mMaterial = MATMGR->allocateAndRegister( String::EmptyString );
|
mMaterial = MATMGR->allocateAndRegister( String::EmptyString );
|
||||||
mMaterial->mAutoGenerated = true;
|
mMaterial->mAutoGenerated = true;
|
||||||
mMaterial->mDiffuseMapName[0] = diffuseMapPath;
|
mMaterial->_setDiffuseMap(diffuseMapPath,0);
|
||||||
mMaterial->mNormalMapName[0] = _getNormalMapPath();
|
mMaterial->_setNormalMap(_getNormalMapPath(), 0);
|
||||||
mMaterial->mImposterLimits.set( (mNumPolarSteps * 2) + 1, mNumEquatorSteps, mPolarAngle, mIncludePoles );
|
mMaterial->mImposterLimits.set( (mNumPolarSteps * 2) + 1, mNumEquatorSteps, mPolarAngle, mIncludePoles );
|
||||||
mMaterial->mTranslucent = true;
|
mMaterial->mTranslucent = true;
|
||||||
mMaterial->mTranslucentBlendOp = Material::None;
|
mMaterial->mTranslucentBlendOp = Material::None;
|
||||||
|
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 2.7 KiB |
|
|
@ -805,7 +805,9 @@ T3Dpre4ProjectImporter::genProcessor("GroundCover", "material materialAsset shap
|
||||||
T3Dpre4ProjectImporter::genProcessor("GroundPlane", "material materialAsset");
|
T3Dpre4ProjectImporter::genProcessor("GroundPlane", "material materialAsset");
|
||||||
T3Dpre4ProjectImporter::genProcessor("LevelInfo", "accuTexture accuTextureAsset");
|
T3Dpre4ProjectImporter::genProcessor("LevelInfo", "accuTexture accuTextureAsset");
|
||||||
T3Dpre4ProjectImporter::genProcessor("TSStatic", "shape shapeAsset shapeName shapeAsset");
|
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
|
// Levels
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
|
|
|
||||||
|
|
@ -465,14 +465,11 @@ function processLegacyField(%line, %originalFieldName, %newFieldName)
|
||||||
|
|
||||||
if(%assetId !$= "" && AssetDatabase.isDeclaredAsset(%assetId))
|
if(%assetId !$= "" && AssetDatabase.isDeclaredAsset(%assetId))
|
||||||
{
|
{
|
||||||
//if (%assetId.getStatusString() $= "Ok")
|
|
||||||
%outLine = strReplace(%outLine, %value, %assetId);
|
%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);
|
echo("Legacy Project Importer - processing of legacy line: " @ %line @ " has been updated to: " @ %outLine);
|
||||||
return %outLine;
|
return %outLine;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue