How it works...

Using the built-in helper function named Luminance(), we are able to quickly get a desaturation or grayscale effect on our shaders. This is all possible because of the UnityCG.cginc file is brought automatically to our shader as we are using a Surface Shader.

If you search through the UnityCG.cginc file when opened in a script editor, you will find the implementation of this function at line 473. The following snippet is taken from the file:

// Converts color to luminance (grayscale)inline half Luminance(half3 rgb){    return dot(rgb, unity_ColorSpaceLuminance.rgb);}

As this function is included in the file and Unity automatically compiles with this file, we can use the function in our code as well, thereby reducing the amount ...

Get Unity 2018 Shaders and Effects Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.