godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
91.18k stars 21.2k forks source link

The Image stored in the emission_point_texture of a ParticleProcessMaterial changes id on save when Creating Emission Points From Node #99140

Open dougVanny opened 5 days ago

dougVanny commented 5 days ago

Tested versions

System information

Godot v4.3.stable.mono - Windows 10.0.19045 - GLES3 (Compatibility) - NVIDIA GeForce GTX 1060 6GB (NVIDIA; 32.0.15.6109) - Intel(R) Core(TM) i5-4690 CPU @ 3.50GHz (4 Threads)

Issue description

When using a GPUParticle3D node and having it's emission points created from another node, the _emission_pointtexture property inside its ParticleProcessMaterial will have a new ImageTexture assigned. From that point on, every time the scene is opened and saved, the image property inside that ImageTexture will be regenerated with a new id. While this does not lead to any behavior issues, this means that scene will now be dirty and will be marked as an unstaged change on version control systems such as git

image

Steps to reproduce

With MRP

Without MRP

Minimal reproduction project (MRP)

MRP.zip

dougVanny commented 5 days ago

Unrelated to the bug itself, but I wasn't sure if the Steps to reproduce should take into consideration the MRP or not, so I made both