|
@@ -198,7 +198,7 @@ void LightManager::setSpecialLight( LightManager::SpecialLightTypesEnum type, Li
|
|
|
registerGlobalLight( light, NULL );
|
|
|
}
|
|
|
|
|
|
-void LightManager::registerGlobalLights( const Frustum *frustum, bool staticLighting )
|
|
|
+void LightManager::registerGlobalLights( const Frustum *frustum, bool staticLighting, bool cullSceneLights)
|
|
|
{
|
|
|
PROFILE_SCOPE( LightManager_RegisterGlobalLights );
|
|
|
|
|
@@ -226,16 +226,17 @@ void LightManager::registerGlobalLights( const Frustum *frustum, bool staticLigh
|
|
|
{
|
|
|
// Cull the lights using the frustum.
|
|
|
getSceneManager()->getContainer()->findObjectList( *frustum, lightMask, &activeLights );
|
|
|
-
|
|
|
- for (U32 i = 0; i < activeLights.size(); ++i)
|
|
|
- {
|
|
|
- if (!getSceneManager()->mRenderedObjectsList.contains(activeLights[i]))
|
|
|
- {
|
|
|
- activeLights.erase(i);
|
|
|
- --i;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
+ if (cullSceneLights)
|
|
|
+ {
|
|
|
+ for (U32 i = 0; i < activeLights.size(); ++i)
|
|
|
+ {
|
|
|
+ if (!getSceneManager()->mRenderedObjectsList.contains(activeLights[i]))
|
|
|
+ {
|
|
|
+ activeLights.erase(i);
|
|
|
+ --i;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
// Store the culling position for sun placement
|
|
|
// later... see setSpecialLight.
|
|
|
mCullPos = frustum->getPosition();
|