"Neutral" tonemapping darkens the image considerably #4830
Replies: 2 comments 6 replies
-
Indeed, this was an intentional change and was included both to get increased color accuracy and to address the feedback that models were looking "washed out". The key was realizing that Linear tone mapping does not actually preserve baseColors: PBR itself desaturates them by 4% on average. A correction for this was added to PBR Neutral so that baseColors can come through to the final render as unaltered as possible - find more details here. Of course, if you're taking Linear as "correct" (perhaps because the model was designed while looking at Linear output), then PBR Neutral will look dark. However, if you choose your sRGB base colors based on how the product should look on screen, then PBR Neutral will look correct and Linear will appear washed out. A side effect is that PBR Neutral now has a contrast toe like most Filmic tone mappers (including ACES), which gives deeper blacks and makes it easier to transition ACES-designed models to PBR Neutral without updating the GLB (which is pretty common). You'll notice with Linear that you can't get a matte, dielectric black darker than about |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Description
For one of our viewers, I was using an earlier version of Neutral / Khronos PBR Tonemapper as it was in use by model-viewer. In that version, there was no/almost no darkening on surfaces compared to Linear/None, and only a curve in the highlights to prevent clipping, to the best of my understanding.
To my surprise, switching to the current version of "Neutral" now darkens the image considerably – which doesn't feel intended, and is different to before. Darker areas are now so dark that it loses detail entirely compared to the Linear look (see for example the exhaust area in the pictures below, or the rubber pipes in the back).
I see the same behavior in both three.js and model-viewer, so I think raising the issue here as the "source" of the tonemapper is appropriate.
Long story short – is this intended? Does the shipped version of the Khronos PBR Tonemapper now resemble ACES so much more than previous in-progress versions? To me, that feels like a step back – previously my understanding was that Neutral is designed to keep albedo data as much as possible, but now it feels the goal is to be as close as possible to ACES without having the same hue shifts?
Live Demo – Damaged Helmet
Alternative reproduction: Neutral also darkens "Damaged Helmet" considerably on https://tone-mapping.glitch.me/.
Since the model-viewer editor doesn't support switching to None/Linear for comparison (#4541), you can paste and run this code snippet in the chrome console to switch to Linear:
Live Demo – Caterpillar Work Boot
Here's another real-world scanned PBR model that fares even worse with Neutral tonemapping – I'd say Neutral looks the worst of all tonemapping options, heavily deviating from the intended look of the model:
The asset: https://cloud.needle.tools/api/v1/public/8ab475a/8ab475a/caterpillar_work_boot.metal.glb (from https://sketchfab.com/3d-models/caterpillar-work-boot-d551ce74dcd24528a05cbb0f4b7434d7 with converted pbrSpecularGlossiness in gltf-transform)
Version
latest
Beta Was this translation helpful? Give feedback.
All reactions