Browse Source

Fixed light culling mask behavior in Mobile and Compat renderers

m-pranav-r 10 months ago
parent
commit
fcea158927
1 changed files with 4 additions and 0 deletions
  1. 4 0
      servers/rendering/renderer_scene_cull.cpp

+ 4 - 0
servers/rendering/renderer_scene_cull.cpp

@@ -3036,6 +3036,10 @@ void RendererSceneCull::_scene_cull(CullData &cull_data, InstanceCullResult &cul
 
 						for (const Instance *E : geom->lights) {
 							InstanceLightData *light = static_cast<InstanceLightData *>(E->base_data);
+							if (!(RSG::light_storage->light_get_cull_mask(E->base) & idata.layer_mask)) {
+								continue;
+							}
+
 							instance_pair_buffer[idx++] = light->instance;
 							if (idx == MAX_INSTANCE_PAIRS) {
 								break;