Skip to content

Commit

Permalink
let normal maps handle raw file locations (imposter support)
Browse files Browse the repository at this point in the history
  • Loading branch information
Azaezel committed Aug 22, 2024
1 parent 35e50b5 commit 2629d28
Showing 1 changed file with 18 additions and 2 deletions.
20 changes: 18 additions & 2 deletions Engine/source/materials/processedMaterial.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -452,11 +452,27 @@ void ProcessedMaterial::_setStageData()
}

// NormalMap
if (mMaterial->getNormalMap(i) != StringTable->EmptyString())
if (mMaterial->mNormalMapAsset[i] && !mMaterial->mNormalMapAsset[i].isNull())
{
mStages[i].setTex(MFT_NormalMap, mMaterial->getNormalMapResource(i));
//mStages[i].setTex(MFT_DiffuseMap, _createTexture(mMaterial->getDiffuseMap(i), &GFXStaticTextureSRGBProfile));
if (!mStages[i].getTex(MFT_NormalMap))
{
// Load a debug texture to make it clear to the user
// that the texture for this stage was missing.
mStages[i].setTex(MFT_NormalMap, _createTexture(GFXTextureManager::getMissingTexturePath().c_str(), &GFXNormalMapProfile));
}
}
else if (mMaterial->mNormalMapName[i] != StringTable->EmptyString())
{
mStages[i].setTex(MFT_NormalMap, _createTexture(mMaterial->mNormalMapName[i], &GFXNormalMapProfile));
if (!mStages[i].getTex(MFT_NormalMap))
mMaterial->logError("Failed to load normal map %s for stage %i", mMaterial->getNormalMap(i), i);
{
//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->mNormalMapName[i]).startsWith("#"))
mMaterial->logError("Failed to load normal map %s for stage %i", mMaterial->mNormalMapName[i], i);
}
}

// Detail Normal Map
Expand Down

0 comments on commit 2629d28

Please sign in to comment.