Unreal Engine Livestream - Post Processing in UE4: Cel-Shading - Jan 4 - Live from Epic HQ


This week we’ll be diving into Post Processing in UE4. Tom and Sam will go over some basics of post-processing before building a couple small shaders, one for an outline and a toon shader, which will be combined to create a sample cel-shaded look. They’ll also discuss some of the limitations applicable to mobile and VR projects.

Thursday, January 4th @ 2:00PM ET - Countdown


Tom Shannon - Technical Artist, Education - @TomShannon3D](
Sam Deiter - Sr Technical Writer - @Sam_Deiter](
Amanda Bott - Community Manager - @amandambott](

Post any comments you have for the team in the comments below and we’ll try to get to them on the livestream.


Sweet! Although it would be nice to have cel shaded lighting model built into stock UE4 :wink:

almost every cel shading tutorial Ive found lacks in practicality or is poorly explained, I’m glad you guys are taking a swing at it. cant wait to follow the livestream

It would be very important to be able to assign this per object, or exclude objects from the post-process.

Woot…Sam Deiter is back on the Stream! Every time he is on I learn about at least a dozen or so things I never knew about UE4. Have not played with cel shading, so this will indeed be a delight.

Nice! sounds great!

I’m sorry for a stupid question but where I can find this video after the live date? As I see, it’s not there on the youtube channel (the latest video is from 1 week ago…)

Can we choose an exact color for a specific layer of shadow?

Like if we’re trying to recreate a very specific color palette from an anime or cartoon, can we choose “per-shade” what colors we want?

[Question] How would one go about making the cel shader have a “pencil drawn” look/effect? would you attach a texture and where? Thanks

That’s certainly one of the drawbacks of this method is that you lose a certain amount of control over your colors. With enough planning and tweaking you could probably match to an explicit color palette, but there’s no easy button for doing that, that I’ve figured out.
I’ve experimented with using Color Lookup Tables (LUTs) for this as well and got some decent success, but probably not exact enough for most art directors :slight_smile:

Good question! You could add texture to the lines by manipulating the mask generated for the lines.

Who is this guy? IMPOSTER!
No, just me using the wrong account.

Anyways, I’ve uploaded the shader I wrote based on this HERE. It’s got a lot of bells and whistles, including the pencil texture option Wilh asked about. Feel free to use it in your own projects, learn from it, whatever! Just unzip and drop anywhere in your Content Folder! You’ll probably want to make a few Material Instances from it and start from there.



usually, twitch retains streams as vods (“video on demand”). if you check the “videos” area on their twitch page you’ll see recent streams listed first. the top two (as of this moment) are the recording of this stream. technical hiccups (or any break in streaming) generally means there will be multiple vods for a given stream event, which is why there is more than one in this case.


p1: Twitch
p2: Twitch

Awesome! Thank you for your response and the shaders! [USER=“1157165”]Tom B Shannon[/USER]

I was working on the outlining bit from this stream but ive run into a little bit of an issue. Ive got it all working but the depth is having issues with the sky. im sure its a setting somewhere but im not sure which. its definitely a issue based on screen space depth since its rings emanating from the center of the screen.

I put an “if” node before the depth line nodes, it checks the scene depth against a high number (500000 give or take a zero) and if it’s too far I simply pass 0 to the “max” node. Basically I don’t draw the lines for really far pixels.

Thanks that totally worked. I had to set the value to below 7500 to get rid of the rings.

Thanks for doing this livestream. I learned a lot from it, but is it just me or does this seem kinda like a hack?

It’d be really nice to get a tutorial/presentation on this shader being built in:

You could add texture to the lines by manipulating the mask generated for the lines.

I love the outline used for normals, I’ve cut it out the cel material and combined it with an external outline, and it’s pretty awesome. I’m having a little issue, though. For the normal-based lines, if I set the line color to black, all it does it darken the colors a bit. I’ve been all over this material, however I can’t really find an optimal solution to this, I want to further darken my lines and even make them black. Any ideas?

Edit: Maybe I should think harder sometimes. My cel shading messing with the outline was the problem.