Use more aggressive culling.

This commit is contained in:
vlj 2014-09-03 03:07:45 +02:00
parent d51754c237
commit 2b1c5be315

View File

@ -350,10 +350,11 @@ parseSceneManager(core::list<scene::ISceneNode*> List, std::vector<scene::IScene
if (!(*I)->isVisible())
continue;
(*I)->updateAbsolutePosition();
(*I)->setAutomaticCulling(scene::EAC_FRUSTUM_BOX);
scene::ICameraSceneNode* cam = irr_driver->getSceneManager()->getActiveCamera();
bool IsCulledForSolid = irr_driver->getSceneManager()->isCulled(*I);
bool IsCulledForShadow[4];
for (unsigned i = 0; i < 4; ++i)
{
scene::ICameraSceneNode* cam = shadowCams[i];
@ -365,9 +366,6 @@ parseSceneManager(core::list<scene::ISceneNode*> List, std::vector<scene::IScene
bool IsCulledForRSM = irr_driver->getSceneManager()->isCulled(*I);
irr_driver->getSceneManager()->setActiveCamera(cam);
if (IsCulledForSolid && IsCulledForShadow[0] && IsCulledForShadow[1] && IsCulledForShadow[2] && IsCulledForShadow[3])
continue;
if (!IsCulledForSolid)
{
if (ParticleSystemProxy *node = dynamic_cast<ParticleSystemProxy *>(*I))