At first, I didn't know why. Then I guessed the irrlicht engine will do automatical special light management for normal map.
So I made an empty light manager to override it when using normal map:
Code: Select all
// An empty light manager to override system light manager
class my_light_manager: virtual public irr::scene::ILightManager
{
};
auto * lm = new my_light_manager;
smgr->setLightManager(lm);
lm->drop();
lm = nullptr;
I feel this solution is a hacking way, is there a direct and not hacking way?