Fixed light culling mask behavior in Mobile and Compat renderers

This commit is contained in:
m-pranav-r 2024-10-17 19:07:19 +05:30
parent b3bcb2dc14
commit fcea158927

View file

@ -3036,6 +3036,10 @@ void RendererSceneCull::_scene_cull(CullData &cull_data, InstanceCullResult &cul
for (const Instance *E : geom->lights) { for (const Instance *E : geom->lights) {
InstanceLightData *light = static_cast<InstanceLightData *>(E->base_data); 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; instance_pair_buffer[idx++] = light->instance;
if (idx == MAX_INSTANCE_PAIRS) { if (idx == MAX_INSTANCE_PAIRS) {
break; break;