How is a sprite color passed to the shader graph?

The default sprite shaders apply the vertex color automatically after the Shader Graph portion of your fragment code runs, so the VertexColor node isn’t very useful because you have to hackily counteract it being applied later. Since there’s no easy way to create your own Master Nodes which do not have this behavior, this leaves users without much flexibility.

Relevant request: Interact with SpriteRenderer color in ShaderGraph It would be nice if it were possible to allow users full control of whether VertexColor gets auto-applied.

EDIT: it’s now possible to control if the sprite color applies in Unity 2023+

1 Like