godotengine / godotengine/godot
Editor prints infinite errors while an opened LightOccluder2D polygon is in view of a GPUParticles2D with collision mode
- Dominant language
- C++
- Stars
- 117k
- Forks
- 26.8k
- PR merge metrics
- PR metrics pending
Description
### Tested versions
Reproducible in 4.3 stable
### System information
Godot v4.3.stable - Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3060 Laptop GPU (NVIDIA; 32.0.15.6081) - Intel(R) Core(TM) i7-10870H CPU @ 2.20GHz (16 Threads)
### Issue description
Opening a LightOccluder2D polygon seems to be accumulating a large amount of errors while it's in the editor's viewport, if there is also a GPUParticle2D with a collision mode set to anything but disabled in view. This seems to be an issue with the editor only and both the particle emitter and the opened occluder are behaving as expected during runtime, and don't produce errors.
The issue seems to occur with any shape and number of points as long as closed is set to false (no concave/overlapping points in the polygon), regardless of whether the polygon was closed or not when creating it, but seems to be resolved in most cases if the position of a point in the polygon is changed later (however returns again if the number of points is changed again, or if the editor is restarted). The issue appears regardless of the occluder and the particle emitter interacting with each other at all.


### Steps to reproduce
1. Set up a new GPUParticles2D node
2. Set the ParticleProcessMaterial's collision mode to anything but disabled.
1. Create a new LightOccluder2D node
3. Assign a new OccluderPolygon2D
4. Set closed property to false
5. Errors only print while both nodes are visible within the editor's viewport, either due to zoom/scroll or with their visibilities set to true
### Minimal reproduction project (MRP)
[occluder-bug-report.zip](https://github.com/user-attachments/files/17382526/occluder-bug-report.zip)
Contributor guide
Research direction
Start by opening the linked minimal reproduction project and reproducing the errors with a LightOccluder2D and a GPUParticles2D using collision mode in the editor viewport. Trace the editor-only error source while both nodes are visible; done means the reported errors no longer accumulate, while runtime behavior remains unchanged.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- computer-graphics, game-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100