Silent's Cel Shading Shader


Shaders for Unity for cel shading, designed to take Unity’s lighting into account while also presenting materials in the best possible way. Featuring lots of features with good performance!

Project Page

  • Customisable lighting

    A shadow tone map system is integrated, which allows for true anime-style material shade colouring and light bias.
    Provides a light ramp system that are integrated seamlessly into lighting.
    Or, use the Crosstone system and define multiple shadow tones.
    All integrated with Unity’s lighting system!

  • Proper lighting

    Every function of this shader is designed to properly handle Unity’s lighting properties without breaking them in arbitrary ways.
    Even so, the parameters of the shader are designed to be resilient against all but truly malicious bad lighting setups.

  • NPR

    SCSS contains a unique matcap system. You can combine multiple blend modes and multiple matcaps. They can be anchored in world or tangent space, stopping them from shifting with head movement in VR.
    Customisable ambient and emissive rim lights are also provided for shine effects, with directional split modes for accented light effects.
    Cel-shaded specular gives you a stylised shiny highlight.

  • PBR

    Contains metalness and smoothness functionality accurate to Unity’s Standard shader. You can combine a cel-shaded material with realistic metal and gloss.
    Detail maps are supported, allowing you to give materials a realistic fine texture close-up.

  • Outlines and control

    The outline system is optimised for VR, with outlines that reduce size based on camera proximity to avoid models breaking up at close inspection. And outline size can be finely controlled using the vertex colour channels.

  • Advanced Options

    Many advanced options for blend mode and more. Provides support for using premutiplied transparency, which allows for glossy transparent objects that naturally fit into their surroundings.

Previews

Downloads
You can find the latest stable version on Booth!

The latest development version is available on the GitLab project page.

For more details on what’s available in this shader, why not check out the manual?

So, try it out! And please post any feedback you have in this thread!

8 Likes

Hi! It’s been a while since my last post, so I thought I’d introduce some of the new additions to the cel shader since this post!

1.8

This version added a new, revamped UI.

I received many comments from people not knowing what to do in the shader. There were so many options, they were afraid to touch things. This is totally understandable.

So, with the new settings mode selector, the more niche options are automatically hidden, showing only the most important things to start with. Because, well, only those settings really matter! Everything else is just integrated on top.

image

You can choose how many complex options you want to see at once using the selector at the top of the shader. I hope this makes it easier to comprehend at first glance for people new to playing with material properties. One of my main design goals with this shader is that playing around isn’t going to break anything, and I hope that starting off with only the basic options and expanding as you need to helps users understand the toolbox-like nature of this shader’s features.

As you progress from Simple to Normal mode, you can see more commonly used options, like Specular, Rim Lighting, Matcap, and the System settings at the bottom of the shader. Do you need to touch any of them? Nope! But you should play around with them, because you might love the results!

This version also added several requested features for fine-tuning, like more options for the second shading tone and tintable matcaps.

The full changelog for this version is available here.

1.9

This version added shader baking and a number of handy options.

With shader baking, you can create an optimised version of the shader that strips out all unused features and locks all the settings in place. This is perfect for reducing the file size of avatars, as it strips out unused shader variants Unity may mistakenly include in the build. It also gives a slight boost to performance!

This version also added a much-requested feature, light-reactive emission! With this, you can have glow-in-the-dark emission.

This version also mproved the internal lighting calculations, using a new, more accurate method to get the best lighting available for each area.

The full changelog for this version is available here.

1.10

This version added the inventory system, as well as support for AudioLink and a host of other small changes and improvements.

With the simple inventory system, you can define parts of models as seperate items you can toggle off from the material. This uses vertex manipulation to work, so you don’t need a transparent/cutout material for this to work. I wrote a guide to using the inventory system here, on the wiki!

AudioLink support is another major feature in this version. In VRC worlds with AudioLink active, emission can pick up the beats and pulse along with the music.

This version also includes improvement to the appearance of transparency, with semitransparent objects now appearing in shadow, as well as better support for transferring materials from UTS2, more options for outlines, and realtime lighting control settings.

The full changelog for this version is available here.

What next?

There’s still quite a few things I want to add in the future. With the update to Unity 2019 scheduled for VRchat, we can make use of new Unity features like local keywords that allow for further optimisation and expansion. I want to improve compatibility with features that are present in other shaders but not this one, like deeper control of rim lights and emission.

That’s all for now, though!

You can find the latest stable version on Booth!

…so, check it out! Bye for now!

2 Likes

nice shader :slightly_smiling_face:

What textures do I use for your shader? I mean, stuff like this Grand Blue shader in Blender uses diffuse and AO.

Whichever ones you want! You can view all the available settings from the manual available in the shader. You don’t have to use every setting, but every setting has a purpose. Try it out and see how you go.

For your example, Crosstone and Lightramp both support shade/gradation/AO maps.

1 Like