Subject: Godot version: changing intensity resets material parameters
Hi, I found an issue with the Godot version of your VFX pack. This report concerns the Godot version, not the Three.js version.
I’m using Godot 4.7.2, Forward+.
In an inherited scene based on Slash_fire.tscn, I changed the effect’s intensity from 1.0 to 0.8 and saved it. The ember particles became almost invisible. Changing intensity back to 1.0 did not restore their appearance.
After investigating, I found that:
- The shaders declare
tint,color1, andcolor2as plainvec4uniforms, but the scene files store these parameters asColor. - Changing
intensitycalls_apply_instance(), which duplicates the ShaderMaterials. - In a minimal reproduction on Godot 4.7.2, duplicating a material with a
Colorvalue for a plainvec4uniform resets that parameter to its shader default. It also changes the value on the original material. - For example, the ember material’s
tintchanges fromColor(16.3869, 16.3869, 16.3869, 0.00392157)toVector4(1, 1, 1, 1). - Storing the same values as
Vector4instead preserves them during duplication and saving.
Restoring the original values and storing them as Vector4 fixed the issue. I verified repeated intensity changes between 0.8 and 1.0, material duplication, and saving/reloading.
The same Color parameter format appears in many other Godot scenes in the pack, so this may affect other effects as well.
Could you please check this compatibility issue? Thank you!