Skip to content

Commit

Permalink
Merge pull request #1067 from gazebosim/revert_lightmap
Browse files Browse the repository at this point in the history
Revert "Fix using lightmap and emissive map together (#1047)"
  • Loading branch information
iche033 authored Sep 18, 2024
2 parents 8835b39 + 8e42985 commit c0e7c30
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions ogre2/src/Ogre2Material.cc
Original file line number Diff line number Diff line change
Expand Up @@ -753,17 +753,22 @@ void Ogre2Material::SetLightMap(const std::string &_name,
this->dataPtr->lightMapData = _img;
this->lightMapUvSet = _uvSet;

// Apply lightmap by using the detail map slot to store the lightmap texture
// and blending it with the diffuse map.
Ogre::PbsTextureTypes type = Ogre::PBSM_DETAIL0;
this->ogreDatablock->setDetailMapBlendMode(0, Ogre::PBSM_BLEND_OVERLAY);
// in gz-rendering5 + ogre 2.1, we reserved detail map 0 for light map
// and set a blend mode (PBSM_BLEND_OVERLAY AND PBSM_BLEND_MULTIPLY2X
// produces better results) to blend with base albedo map. However, this
// creates unwanted red highlights with ogre 2.2. So switching to use the
// emissive map slot and calling setUseEmissiveAsLightmap(true)
// Ogre::PbsTextureTypes type = Ogre::PBSM_DETAIL0;
// this->ogreDatablock->setDetailMapBlendMode(0, Ogre::PBSM_BLEND_OVERLAY);
Ogre::PbsTextureTypes type = Ogre::PBSM_EMISSIVE;

// lightmap usually uses a different tex coord set
if (_img == nullptr)
this->SetTextureMapImpl(this->lightMapName, type);
else
this->SetTextureMapDataImpl(this->lightMapName, _img, type);
this->ogreDatablock->setTextureUvSource(type, this->lightMapUvSet);
this->ogreDatablock->setUseEmissiveAsLightmap(true);
}

//////////////////////////////////////////////////
Expand Down

0 comments on commit c0e7c30

Please sign in to comment.