godotengine / godotengine/godot

Compatibility: Canvas tonemap does not always work and exposure never works

Open
#110,902 2 comments 0 reactions 0 assignees View on GitHub
bug topic:2d topic:rendering
Dominant language
C++
Stars
117k
Forks
26.8k
PR merge metrics
PR metrics pending

Description

### Tested versions

- Reproducible in v4.5.stable.official [876b29033]
- Reproducible in v4.3.stable.official [77dcf97d8]
- Somewhat reproducible in Godot 4.2 and earlier, but because glow and adjustments were not implemented in Compatibility yet, no tonemapping ever works

### System information

Godot v4.5.stable - Windows 11 (build 26100) - Multi-window, 2 monitors - OpenGL 3 (Compatibility) - NVIDIA GeForce RTX 5070 Ti (NVIDIA; 32.0.15.8108) - 13th Gen Intel(R) Core(TM) i7-13700K (24 threads) - 63.74 GiB memory

### Issue description

With the compatibility renderer, when `Environment` background mode is set to Canvas, the tonemap does not function at all unless glow or adjustments are enabled.

Additionally, the tonemap exposure does not work at all regardless of whether glow or adjustments are enabled.

### Steps to reproduce

1. Create a 2D scene
2. Add a 2D node like a sprite
3. Add a WorldEnvironment and change its background to Canvas
4. Try adjusting tonemap and exposure: they do not do anything
5. Enable glow or adjustments
6. Note that tonemap now works, but tonemap exposure does not

### Minimal reproduction project (MRP)

[compatibility-canvas-tonemap.zip](https://github.com/user-attachments/files/22541328/compatibility-canvas-tonemap.zip)

Contributor guide

Open the contributing guide

Research direction

Start with the linked compatibility-canvas-tonemap.zip project and reproduce the issue using the Compatibility renderer with a Canvas background. Trace the renderer path handling Canvas tonemapping, glow, adjustments, and exposure. Done means tonemapping works without unrelated effects and exposure changes the result in the stated reproduction steps.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, godot
Domain
computer-graphics, game-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.