Skip to content

Commit 601a3c5

Browse files
committed
Merge pull request godotengine#106411 from SpockBauru/fix-reflectionprobe-reflectionmask-mobile
Fix Reflection Mask not working on Mobile
2 parents 8c6a88c + 23e6d7b commit 601a3c5

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

servers/rendering/renderer_scene_cull.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,11 @@ void RendererSceneCull::_instance_pair(Instance *p_A, Instance *p_B) {
212212
}
213213

214214
} else if (self->geometry_instance_pair_mask & (1 << RS::INSTANCE_REFLECTION_PROBE) && B->base_type == RS::INSTANCE_REFLECTION_PROBE && ((1 << A->base_type) & RS::INSTANCE_GEOMETRY_MASK)) {
215+
if (!(A->layer_mask & RSG::light_storage->reflection_probe_get_reflection_mask(B->base))) {
216+
// Early return if the object's layer mask doesn't match the reflection mask.
217+
return;
218+
}
219+
215220
InstanceReflectionProbeData *reflection_probe = static_cast<InstanceReflectionProbeData *>(B->base_data);
216221
InstanceGeometryData *geom = static_cast<InstanceGeometryData *>(A->base_data);
217222

servers/rendering/renderer_scene_cull.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -504,10 +504,10 @@ class RendererSceneCull : public RenderingMethod {
504504
case Dependency::DEPENDENCY_CHANGED_PARTICLES:
505505
case Dependency::DEPENDENCY_CHANGED_MULTIMESH:
506506
case Dependency::DEPENDENCY_CHANGED_DECAL:
507-
case Dependency::DEPENDENCY_CHANGED_LIGHT:
508-
case Dependency::DEPENDENCY_CHANGED_REFLECTION_PROBE: {
507+
case Dependency::DEPENDENCY_CHANGED_LIGHT: {
509508
singleton->_instance_queue_update(instance, true, true);
510509
} break;
510+
case Dependency::DEPENDENCY_CHANGED_REFLECTION_PROBE:
511511
case Dependency::DEPENDENCY_CHANGED_LIGHT_SOFT_SHADOW_AND_PROJECTOR:
512512
case Dependency::DEPENDENCY_CHANGED_CULL_MASK: {
513513
//requires repairing

0 commit comments

Comments
 (0)