Controlling shader parameters in particle systems

Godot Version 4.2.1


Is there any way for me to access material parameters from a shader in the particle system? I want to create a dissolve shader that uses a mask to dissolve a texture through the alpha. I’m quite new to Godot and I’m used to building shaders with things like Unity’s Shadergraph or Unreal’s material system. I would like to know if there’s the equivalent of Unity’s custom vertex streams to access material parameters and manipulate it with a curve through the particle system.

Not really familiar with Unity’s current systems, but you can do quite a bit in Godot by writing custom shaders for the process material and the particle pass shader. What is it you are trying to control with a curve? The timing of a dissolve for each particle in relation to their lifetime or something like that?

Here’s a link of what I did. I some what achieved what I wanted at the cost of the alpha channel for the particle system. Using the color input’s alpha channel which I believe is linked to the particle systems colors, I plugged the alpha through a one minus to flip it and put it through a step function which uses its own mask/texture that will dissolve the main texture. Since its using the alpha channel of the particle system, I can use the color gradient’s alpha in the particle system to dissolve the particle over its lifetime. The problem with this is that I can’t control the opacity unless I plug it in which will leave me unable to control the dissolve and opacity separately since they’re both using the same alpha channel. Ideally, the particle system would allow me to make custom parameters that can do this without me using the color from the particle system.

I’m not very good at code so while I can read it, knowing what order and what names to put things in is a bit challenging for me. That’s why I stick to visual shaders more. If the solution requires coding, I’ll need some hand holding.

Here’s a screenshot of what I did. The particle is just a simple toon cloud and the image next to it is the mask thats used to dissolve it.