Cel → PBR
Shader Evolution

Post Process ShaderStylised RenderingPBRUnreal Engine 5

Started as a classic cel shader for the Sunflower game jam, then redesigned into a physically-based rendering approach mid-project — documenting a real design pivot under time pressure.

Add screenshot or GIF here

Cel shader (left) vs PBR adaptation (right) — Sunflower, P1 Games 2024

Stylised vs. physically grounded

Team Mighty Hibiscus initially agreed on a hand-drawn cel aesthetic for Sunflower. After implementing the cel shader, playtesting revealed that the flat look conflicted with UE5's lighting system, causing characters to read poorly against the environment. I had to evaluate the original design decision and propose a shift to PBR mid-jam.

What changed and why

  • Original cel shader — step-based diffuse banding with outlined edges using post-process depth and normal edge detection
  • The problem — flat shading broke UE5's dynamic lighting and made the scene read as two disconnected visual layers
  • PBR adaptation — retained stylised colour palette and toon-like roughness values while working with, not against, the engine's lighting model
  • Design decision — documented the trade-off for the team: losing the hand-drawn feel but gaining visual coherence and faster lighting iteration

What this taught me

The most valuable part of this project wasn't the shader itself — it was learning to reverse a design decision under deadline pressure and communicate that change clearly to a team. The technical implementation was secondary to the design reasoning.

Research Question

When does stylised rendering work against an engine's pipeline rather than with it — and how should that constraint inform early aesthetic decisions in game production?