Preview

integration in game.

Breakdown

: Initial shader, using alpha to control the visibility and base color to simulate emission;
: Use higher emission with noise texture to cover the inside of the model.

: Vertex offset to add more dynamic;
: VFX graph to add more dynamic.

Switch between different vehicles.

I started with 𝗦𝗵𝗮𝗱𝗲𝗿 𝗚𝗿𝗮𝗽𝗵 and 𝗩𝗙𝗫 𝗚𝗿𝗮𝗽𝗵 to allow for quick prototyping and visual tweaks.

However, it’s unable to tweak the lighting and shadows effectively there.

Then to meet the team’s toon-style rendering needs and gain full control over lighting and shadows, I migrated the shader graph spaghetti to 𝗛𝗟𝗦𝗟 for more low-level control.

: Rewrited HLSL Shader;
: Integrate FX into game.

This involved manually rewriting the math nodes into the main Forward pass while keeping its toon lighting,

then syncing with other passes including 𝗦𝗵𝗮𝗱𝗼𝘄𝗖𝗮𝘀𝘁𝗲𝗿 and 𝗗𝗲𝗽𝘁𝗵𝗡𝗼𝗿𝗺𝗮𝗹𝘀.

This was crucial to ensure shadows and outlines align with the 𝗮𝗹𝗽𝗵𝗮 𝗰𝗹𝗶𝗽 and 𝘃𝗲𝗿𝘁𝗲𝘅 𝗼𝗳𝗳𝘀𝗲𝘁 of the dissolving geometry as it transformed.

And after integrating it into gameplay via C#, I handed it off to the team.

Rewrite in HLSL with toon effect including ShadowCaster pass and DepthNormals pass.
Now the shader has toon lighting and can receive shadows.

And it can cast dynamic shadows, its outline synced with the vertex as well.

I also provided sweep directions along the Y and Z axes for creative flexibility.

The Z direction was ultimately chosen for our final look.