Create Wiki/Skills/AI games

Three.js cinematic look: tone mapping, light, fog and bloom

From the OpenDrama Create Wiki

Skill9 min readLast edited October 14, 2026

On default settings a Three.js scene looks like a tech demo: flat grey light, plastic materials, objects floating in a void that ends at a hard line. A "console-grade" look isn't one shader. It's seven layers applied in order: colour management, tone mapping, image-based lighting, one shadowed key light, atmosphere, restrained bloom, and a camera with a believable lens and weight. In the right order most of the gain is nearly free; out of order, no amount of light tweaking rescues the image.

Below: our starting values per layer, what you should see, and what it costs. Values are for a recent three release (r18x at the time of writing); where an API was renamed, the old name is given too.

When to use it

Use it when the game plays fine but the screenshots don't sell it. Diagnose by symptom; each one points to a missing layer:

  • Washed-out colours, grey blacks. Broken colour management: a colour texture read as linear data, or gamma applied twice.
  • Highlights clip to flat white; it looks like a 2005 game. No tone mapping, so everything above 1.0 is cut off.
  • Metal looks black, everything else like plastic. No environment map. PBR materials need something to reflect.
  • Objects float. No shadow, or one so soft and offset it reads as a smudge.
  • The world feels empty and stops at a visible edge. No fog, so no aerial perspective.
  • Lamps and magic don't feel hot. No bloom, or emissive never exceeds 1.0, so bloom has nothing to catch.
  • It feels like a CAD viewer. Default 75° FOV, a camera glued to the player or driven by OrbitControls.

Skip it, or stop after the first two layers, for flat, pixel-art or toon styles where colours must match the painting exactly, and for 2D games.

The cost picture: colour management, tone mapping, environment light and fog are close to free per frame. A shadow re-renders every object that casts it. Bloom and other full-screen effects cost per pixel, which is where phones run out. That is also the order of value per millisecond, so apply the layers in order and stop when the 16.7 ms frame (60 fps) is spent.

Members read on

The rest of this page is for members

  • 10 more steps
  • 2 reference tables
  • 6 more sections

Create a free account, top up once — from $0.99 — and the whole wiki is yours.

  • Every breakdown, Skill and Prompt
  • New pages every day
  • Prompts copy in one tap

See also

Breakdowns that use this

More in AI games

View all →