Toon Shader and Outlines


Hello, my name is Jacob. I am an environment artist on the Superklutz project and in this dev log, I am going to go over our use of toon/shell and outline shaders for this project.


Why Use a Toon Shader?

We decided to go with a cartoony look when planning this project for a few reasons relating to style and story, but a big consideration was also the ability to make stylistically consistent assets quickly, given the time frame of the project.

Making this shader was a huge help with bringing the styles of four different artists together and is forgiving when it comes to small mistakes or inconsistencies in the textures. 




Lit VS Unlit

When making this shader, we had to consider the different types of shaders that Unity offers as a base to work from, we could use a lit shader which allows the models to receive light/shadows from all of the usual sources in a Unity scene and allows the use of a wide array of different texture maps. Or we could use an unlit shader, which forces us to calculate and specify which lights will affect the object.

We landed on using an unlit shader that uses the main scene light as its only input and uses only base color/albedo. This is a very limited toon shader admittedly, but considering the style and setting of the environment in the game I think it covers all the necessary bases (We may add multiple light sources later on). 



What Do These Shaders Do?

Toon/Shell

The toon shader in effect lowers the resolution of the lighting into a set number of bands, allowing you to set thresholds between value ranges and conform them to a single value.

 


Outline 

 The outline shader inverts the polygons of the object and moves them along the normal axis a specified amount (the outline thickness), assigning a specified color to them and only rendering the back faces.






Combining Shaders

After these shaders were made we did end up having to combine them into one shader, including a world-bend shader that was covered in another dev log.

This was a relatively simple thing to do for the Toon shader as it only affects base color and didn’t conflict with the world-bend shader at all. But for the Outline shader, seeing as it must displace the mesh, was slightly more complex because the world bend shader must also affect the mesh. The solution was simple in the end, we just had to make sure to apply the outline modification to the mesh before the world-bending and bend that new mesh as a whole.

How do they affect the game and the production process?

Overall, I think using these shaders has made the game look better and unified the feeling of all of the assets. At first, I was slightly hesitant to commit to using only base color, as I have never worked without the other maps before; but I think the limitation of not having access to all of the features of a normal unity material forced us all to focus on design and color theory and, I think, made the game look better overall. 

Get SuperKlutz!

Leave a comment

Log in with itch.io to leave a comment.