Skip to content

MeshInstance3D visual instance layer ignored by OmniLight3D in the Compatibility and Mobile renderers #94643

@fossinating

Description

@fossinating

Tested versions

  • Reproducible in 4.0.3, 4.1.2, and 4.2.2

System information

Godot v4.2.2.stable - Windows 10.0.22631 - GLES3 (Compatibility) - NVIDIA GeForce RTX 3060 Ti (NVIDIA; 31.0.15.4612) - 11th Gen Intel(R) Core(TM) i7-11700F @ 2.50GHz (16 Threads)

Issue description

When a MeshInstance3D is moved, it starts showing light from any OmniLight3D, regardless of what visual instance layer the mesh is assigned to. This has been tested to occur when the MeshInstance3D is moved in editor, changes visibility in the editor, or is moved at runtime by an AnimationPlayer or by being a child of a RigidBody3D. In the Forward+ renderer, the visual instance layer continues to be respected by the OmniLight3D

Steps to reproduce

  • Create a MeshInstance3D and OmniLight3D
  • Configure the MeshInstance3D and OmniLight3D so that the visual instance layers of the MeshInstance3D have no overlap with the cull mask or visual instance layers of the OmniLight3D
  • Move the MeshInstance3D in the editor

Minimal reproduction project (MRP)

visual_instance_omnilight_compatibility.zip

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions