Getting Toon shader to work on CanvasRenderer

Hi, I’m making a head-up display for a space flight sim and I need to display a ‘hologram’ of the enemy ship on the Canvas, similar to what’s found in Star Citizen/Elite Dangerous. The Toon/Lit Outline shader is perfect for my needs.

So far I’ve managed to render a mesh of the enemy ship on the canvas using CanvasRenderer.SetVertices, but when I try to set the material using CanvasRenderer.SetMaterial it seems like most of the shaders don’t work. The Toon/Lit Outline shader in this case only renders the Outline Color and does not render the Main Color at all.

I am not experienced at all when it comes to shaders but I’ve started learning very recently. Can you let me know if it is possible to write a custom shader to get the effect I need, or if the CanvasRenderer is simply not equipped for it? If it’s possible, feel free to write a technical answer as to what I need to change specifically so I know where to concentrate my learning.

Thanks, William

Got it working with the Canvas Render Mode set to Screen Space - World Space rather than Overlay. Not a bad idea anyway as a 3D HUD is much more fun :slight_smile:

1 Like