Omnilight3D and Ground strange behaviour

Godot Version

4.6

Question

I have a Ground (StaticBody3D) with a MeshInstance3D and a CollisionShape3D inside.
Then I have a Torch model with an Omnilight3D.

In my scene, there are about 30 Torches, and they take turns in working for some reason.

If I move the Ground up and down on Y, almost all Torches light up the Ground. But only in the editor, the play mode stays the same. Only a few torches light up. See screenshots.

I am going crazy, I tried changing rendering settings and checked to confirm all Torches are the exact same, as I just duplicated them. If I take a working torch and move it somewhere else, it stops working, but when I undo the move, it still isn’t working until I restart Godot or move the Ground up and down.

This only happens if the Ground, other elements work and are being lit up properly. For example the road.

Extremely strange behavior, any ideas?

Best,
Bogdan

I’m guessing because of the vertical aspect ratio of your screenshot:
Are you exporting for Mobile ?

If yes, it’s a restriction for performance

Note: When using the Mobile rendering method, only 8 omni lights can be displayed on each mesh resource. Attempting to display more than 8 omni lights on a single mesh resource will result in omni lights flickering in and out as the camera moves.

I would suggest baking the lights, that would not only improve performance but also solve this issue

5 Likes

I have discovered while playing around that I if I switch in the top right corner to Forward+, it works. Note this needs to be changed in project settings as well for it to export to Mobile also using Forward+.