Particle's alpha looks dark - any way to fix this?

Hey there! I’ve made a dissolve effect in shader graph to use with VFX graph , and it feels like my particles have a dark ring around them, wheras i feel like they should be coloured similarly to the center, is there somewhere i’m going wrong with my setup?

Any advice would be greatly appreciated!

Shader graph VFX asset :

Particle example (using default particle) :


if you Alpha blend a pre-multiplied texture the darks get darker like that - alpha blend multiplies the texture by inverse of alpha


  • make the RGB just plain white
    Alpha == your dot shape because alpha blending is {Source x (1-alpha)}

  • or change blend mode on your master node to pre-multiplied alpha {Source x One}
    this will mean to make your dot vanish you must lower alpha AND color to black to make it vanish, but you get the benefit of being able to make it additive too

1 Like

Thanks for replying! I’ll take a look into this asap and let you know if i solved it. Thanks so much!

if you use a white texture and alpha blending you must split texture.alpha first ->multiply it alone with the dissolve – this gets attached to master node alpha

only premultiplied blend allows texture with a range of darks to blend without double darkening however - premultiply has been broken for some time, reported to be fixed

1 Like

yah premult is still broken in version 2019.4.12f1 - you will have to scrap the dark values in your RGB (just white or near white); compute only alpha /w dissolve and use alpha blending.

and fun fact since we often use black and white shapes for VFX we don’t even need the RGB texture fetch (just white) – alpha does everything so it can be a single channel texture for memory (like Red8)

vertex color → color
(alpha + dissolver) * vertex.Alpha → alpha


1 Like

Woah! I woulda never realised this. I still haven’t gotten around to testing this yet as work has been busy - But thanks so much for diving into all of this , it’s extremely helpful. I’ll report back asap!

yah np

oops i forgot to have the vertex.alpha plugged in right - need to split out vertex.alpha and multiply it at the last step before master nodes alpha

(alpha + dissolver) * vertex.alpha → alpha