@@ -175,8 +175,12 @@ int RenderSystem::checkLightsAndShadow(){
175175 if (numLights > MAX_LIGHTS )
176176 numLights = MAX_LIGHTS ;
177177
178- if (numLights > 0 )
178+ if (scene->getLightState () == LightState::AUTO ){
179+ if (numLights > 0 )
180+ hasLights = true ;
181+ }else if (scene->getLightState () == LightState::ON ){
179182 hasLights = true ;
183+ }
180184
181185 for (int i = 0 ; i < numLights; i++){
182186 LightComponent& light = lights->getComponentFromIndex (i);
@@ -282,10 +286,11 @@ void RenderSystem::processLights(int numLights, Transform& cameraTransform){
282286 fs_lighting.color_intensity [i] = Vector4 (light.color .x , light.color .y , light.color .z , light.intensity );
283287 fs_lighting.position_type [i] = Vector4 (worldPosition.x , worldPosition.y , worldPosition.z , (float )type);
284288 fs_lighting.inCon_ouCon_shadows_cascades [i] = Vector4 (light.innerConeCos , light.outerConeCos , light.shadowMapIndex , light.numShadowCascades );
285- fs_lighting.eyePos = Vector4 (cameraTransform.worldPosition .x , cameraTransform.worldPosition .y , cameraTransform.worldPosition .z , 0.0 );
286- fs_lighting.globalIllum = Vector4 (scene->getGlobalIlluminationColorLinear (), scene->getGlobalIlluminationIntensity ());
287289 }
288290
291+ fs_lighting.eyePos = Vector4 (cameraTransform.worldPosition .x , cameraTransform.worldPosition .y , cameraTransform.worldPosition .z , 0.0 );
292+ fs_lighting.globalIllum = Vector4 (scene->getGlobalIlluminationColorLinear (), scene->getGlobalIlluminationIntensity ());
293+
289294 // Setting intensity of other lights to zero
290295 for (int i = numLights; i < MAX_LIGHTS ; i++){
291296 fs_lighting.color_intensity [i].w = 0.0 ;
0 commit comments