In Godot 4.3.stable, I set color_ramp
to a different gradient on GPUParticles3D
but it wasn’t changing the color of the emitted particles. It wasn’t until I watched this youtube video that I noticed the vertex_color_use_as_albedo
property on the draw pass material needs to be set to true.
After double-checking the documentation, I notice that it does indeed note this:
Note:
color_ramp
multiplies the particle mesh’s vertex colors. To have a visible effect on aBaseMaterial3D
,BaseMaterial3D.vertex_color_use_as_albedo
must be true. For aShaderMaterial
,ALBEDO *= COLOR.rgb
; must be inserted in the shader’sfragment()
function. Otherwise,color_ramp
will have no visible effect.
Updating the settings of the material in the particle effect’s draw pass fixes the issue.