Adeline Cook / Work / Advanced Cel Shader
Advanced Cel Shader.
An outline shader for Unreal Engine. Adeline worked out the technique on her own time, packaged it, and sold and supported it on the Unreal Marketplace for ten years. Epic Games acquired it.
2014 – present · Unreal Engine Marketplace · Independent
What it is
A real-time cel shader.
An outline pass has to hold the same line weight whether the object is two metres away or fifty, and it has to not crawl or flicker while the camera moves. It also has to fit into a fraction of a millisecond, because it is competing with everything else in the frame.
Adeline wrote the edge-detection pass the Advanced Cel Shader is built on, on her own time, and turned it into a package other Unreal developers could drop into a project and configure without reading the shader.
Maintenance
Ten years of engine releases.
Most of the work was not the first version. Unreal's renderer changed repeatedly over UE4's life, and customers had games in production sitting on top of the pack, so each engine release meant re-testing it and fixing what had broken.
Evidence
Timeline.
2014
Published to the Unreal Marketplace
It went on sale as a package for Unreal developers building their own titles. The public repository dates from August 2014.
Through the UE4 era
Ported to mobile
Mobile GPUs don't have the buffer budget the desktop version assumed. Getting the shader running on mobile meant cutting it down to a much smaller buffer set without losing the technique.
~2017
Acquired by Epic Games
Epic Games acquired the shader and made it free forever, as part of the Marketplace's Permanent Free collection. The original repository is still public, with the stars and forks it picked up along the way.
The repository
80+ stars and 30+ forks from other developers. Adeline weights the forks higher — those are people who took the source and modified it for their own project.
The technique
How the edge detection works.
The edge detection runs as two separate, parameterised passes — one over depth, one over colour — tuned independently and combined. Unreal's own stencil-based outlines at the time were limited to one material per object and capped at 255 objects on screen, with no antialiasing; depth-based edges are antialiased by construction, which stencil outlines are not.
The hard part was the math. The lines come from a chain of boolean tests over depth and occlusion, and by design they don't belong to any one object, so convolution can offset and reshape them. That makes it closer to an art shader than a strict outline shader — most of the development time went into that chain of tests, not the render pass itself.
It shipped in a number of indie titles, and appeared, uncredited, in the background shaders of Street Fighter V.
Sales
150,000+ paid sales on the Marketplace, and roughly ten times that many downloads since it went free.