Curing Corruption gameplay — cel shader and PBR iteration in use
The Problem
When the aesthetic stopped fitting
Curing Corruption started with a cel-shaded look — flat colour bands, hard shadow edges, hand-drawn feel. The shader worked technically, but as the game's environment developed the flat shading started to fight the lighting. The team decided the world needed more physical weight. That meant rebuilding the shader around a physically-based rendering approach instead.
Visual evolution
No shader → Cel → PBR
Same scene — three rendering states showing the aesthetic shift
Technical Breakdown
How the cel shader worked
- Diffuse banding — scene colour channel isolated into fixed value bands to create flat toon shading; blendable location set to "scene color before DOF" to reduce shadow jitter
- Threshold stepping — instead of smooth gradients, light values snapped to discrete stops giving the characteristic cel look
- PBR iteration — the rebuilt version removed banding and worked with UE5's physically-based material pipeline directly, preserving roughness and metallic channels
drag to pan · scroll to zoom
Reflection
What this taught me
The interesting part wasn't the shader math — it was learning that a technically correct shader can still be the wrong choice. The cel version wasn't broken. It just stopped serving the game. Rebuilding it as PBR was a design decision as much as a technical one, and making that call mid-project taught me to think about shaders in terms of what the scene needs, not just what the technique can do.
Research Question
How do aesthetic commitments in real-time rendering interact with iterative game development — and at what point does a technically sound shader become the wrong tool for the project?