May 7, 2019

Cel Shader V1 User Guide

This is the Advanced Cel Shader Pack - a post-process asset that can be added to any game to provide detailed and gorgeous cel shading.

What is the shader?

To see it in action, look at the right side of this image:

50/50 screenshot of the Sci-Fi Hallway example content, with the right side cel shaded

It's essentially a post-process effect that analyzes various buffers from the render pipeline and redraws them in realtime. It's fast - the speed cost on top of the existing render pipeline is minimal.


The cel shader gives you an array of ways to tune and control your cel shading:

Screenshot of the cel shader controls

Each group provides control over an aspect of the cel shader.

Cel Detail Shading

Cel detail shading

Detail lines are derived from edge detection of the rendered scene. These controls allow you to strengthen and fade the effect and control how strongly subtle aspects are shaded. This effect can turn a simple, blurry texture into a piece of seemingly hand-drawn art. You can also control the depth range at which this shading takes place.

Cel Outline Shading

Cel outline shading

Outlines are derived from differences in depth. This line can be uniform, rough or change thickness depending on the strength of cel detail lines around it. You can also control the depth range at which this shading takes place.

Colour Grading

Colour grading

Colour grading allows you to adjust the tint and brightness of a scene based on depth. This is useful for fading out distant colour, or amplifying it.



Exclusions allow you to maintain an actor's pre-cel-shade look, or only cel-shade certain actors. To enable this effect, turn it on in the parameters and then set an actor to have a ""Custom render depth"" in details.

Flatten Base Colour

Flatten base colour

This control allows you to gradually strip deferred lighting from the scene, giving it a flat look. From here you can also individually brighten or darken the specular or metallic channels, which can help them to feel more cartoon-like.

Line Opacity

You can control the overall opacity of different kinds of shaded lines, or alter the global opacity of translucent materials such as water.

Main overrides

From here you can set the line and background colour or fade the base colour out (or fade the entire shader back to it's
pre-shaded state). You can also enable partial shading for debugging, which will only shade the right half of the viewport.

Print Dots

Print dots

Print dots simulate the effect of a newspaper by shading a texture into the darker areas of the screen. Unlike shadow shading, these are performed in screen-space. Print dots fade out by using an overlay blend, so if you blur your texture and increase the contrast the dots or strokes will appear to grow smaller and lighter as they fade. Print dots operate especially well on areas with heavy shadowing.



Control the overall saturation of the scene.

Shadow Shading

Shadow shading

This control projects a world-space texture using the Ambient Occlusion buffer as a mask, giving you the effect of having hatching in shadowed areas. This can also control the strength and spread of the AO effect. In the example above, the diagonal strokes are provided by shadow shading.

PreCelShader versus PostCelShader

Most of the shader presets are instances of the PreCelShader material. However, some presets such as Slaine and Sumi inherit from the PostCelShader material. The difference here is that the PostCelShader waits until after the tonemapping pass to shade and results in a much flatter, rougher effect. This can be good in certain situations: