See all glossary terms

Tonemap

A tonemap (or tone-mapper) is a technique that maps the raw pixel values rendered by the engine each frame to a range of values that can be displayed on your monitor. This is done to ensure that the image is displayed correctly on the screen, as the raw pixel values may be outside the range of what the monitor can display.
Modern games are often rendered in a High Dynamic Range (HDR) to capture a wide range of light intensities across your game scene. This gives you more control over your game's lighting, post-processing, and colors. However, most displays are limited to a lower dynamic range, so the final image must be converted to fit the display's limits after applying all the post-processing effects.
Godot offers several tone-mapping options. By default, games use the linear tonemapper, which doesn't change the contrast or brightness of the pixel values. However, you can also use the Reinhard, Filmic, or ACES tonemappers, which offer more advanced algorithms to map the pixel values.
Here's a brief overview of the available tonemappers in Godot:
  • Linear: The default tonemapper. It doesn't change the contrast or brightness of the pixel values.
  • Reinhard: A simple tonemapper that compresses the dynamic range of the image, preventing overexposed areas. The resulting image looks a bit washed out.
  • Filmic: A tonemapper that simulates the response of film to light. It offers a more realistic look by improving the contrast of the image compared to the linear tonemapper. With this mode, colors are a bit more vibrant.
  • ACES: Another film tonemapper that uses the Academy Color Encoding System (ACES) standard to map the pixel values. It's a very popular tonemapper based on the film industry's standards, used in Unreal Engine 4 and other game engines. Compared to the Filmic tonemapper, it is more contrasted by default, with darker shadows. It can give a more photorealistic or cinematic look to your game. With this mode, the brighter the pixels are, the less vibrant they become.
The lower you get in the list, the more performance-intensive the tonemapper becomes. However, even with ACES, the impact is relatively small. Almost all recent 3D games use either Filmic or ACES tonemapping.
You can change the tonemapper in the Environment resource of WorldEnvironment nodes.