Adding PBR Neutral tone mapper

I was asked to make a PR (#118936 - Add Khronos PBR Neutral tone mapper - blender - Blender Projects) adding the new Khronos PBR Neutral tone mapper to allow a more color-accurate preview than Standard, and to match a standard tone mapping available already in Three.js and Filament.

@sergey @brecht @JulienDuroure I think this thread might be better in the feature & design feedback section, but apparently I’m not allowed to post there. For details of this tone mapper’s design, please see my writeup.

By using PBR Neutral tone mapping, an artist can now confidently make a product model that is supposed to match a given sRGB color swatch simply by applying that sRGB value into the material properties or textures exactly. They can have confidence that even if the final product lighting has not been settled on yet, so long as it will be grayscale and PBR Neutral tone mapping applied to the final render, no last-minute color changes will be required in the model itself to match marketing expectations.

By having PBR Neutral tone mapping available here in Blender, it will be easier for artists to see their work with the colors as they will be displayed on the eventual e-commerce site, giving them confidence their material choices are correct. Even outside of e-commerce, this gives advantages over the Standard view transform in avoiding rendering artifacts and hue skews for situations where no filmic “look” is desired.

I’m happy to answer questions and curious who here might be interested in using such a feature?

20 Likes

This sounds fantastic!

For NPR-based cel shading, the general procedure is to use Standard in combination with specific colors, where Standard allows for those colors to remain consistent across programs. How does the PBR Neutral tone mapper perform under those circumstances? It sounds like it would work well, at first glance, but that may not be the case.

I ask mainly because I’ve heard discussion of the PBR Neutral being a replacement for Standard. I’m very excited about the possibility of a better Standard, as long as the replacement works with all existing Standard workflows

2 Likes

I doubt it’s a replacement for all Standard workflows, but I don’t know much about NPR cel shading. We called this “PBR Neutral” because it is specifically designed to get base colors to show through properly for PBR renderers, as it contains an average compensation for the saturation reduction PBR applies to dielectric materials due to the Fresnel effect. If NPR doesn’t contain the Fresnel effect, then that compensation may not be desired (it affects dark colors most).

2 Likes

Hi. I saw your patch entry, and at first glance this looks like it could be a nice, straightforward upgrade for the standard transform (for cases where you do not want AgX).

But can you explain just what is happening to the grey tones between the midpoint and the blacks (bottom row), as it seems to introduce a major discontinuity in that area (no smooth transition through the darker greys, goes almost straight to black)?

Thank you! Keep in mind that these sRGB colors are coming from a Macbeth color chart, and the discontinuity you mention is clear in the source as well. I’ve already tested that the colors come through unaltered (at least under analytic lighting). Note that I’ve added a pure white (1,1,1) and black (0,0,0) to the ends of the Macbeth bottom row, since it doesn’t contain those. If you make a model with a more standard gray transition, you’ll see it comes through as expected. In fact, if you have a favorite sRGB test image, we can easily apply it to a cube model and see the result.

Hi

Thanks for implementing it, do you have some screenshot of how this would be integrated in Blender and how it would interface with the current system?

Yes, it’s just an additional view transform for the sRGB display:
image

8 Likes

The builds for testing are available at Blender Builds - blender.org

Unfortunately, there is a quirk on buildbot which makes it so only one of macOS builds is kept (currently it is Intel). We are working on having this sorted out.

7 Likes

The build was updated with a fix for precision issues, especially noticeable in darker regions.

2 Likes

Thanks all - this has been merged and it looks like the Khronos PBR Neutral view transform will be available in Blender 4.2! Rendering - Blender Developer Documentation

8 Likes

I have read through this page, the PR and the release documentation, and couldn’t find a single screenshot comparing it to standard or other view transforms.

:smiling_face_with_tear:

Did you look at my description at the top of the PR? It has screenshot comparisons to Standard and AgX.

Cool ! I missed that one, I thought it was the same link provided in the weekly updates.

Any particular reason for having it second on the list? Does it need to be this prominent? It’s not the default nor alphabetically sorted (the list itself is not).

image

1 Like

I only put it there because it’s most similar to Standard and distantly related to the Filmic tone-mappers - it’s certainly not related to Raw.

2 Likes

Makes total sense, missed that. Thanks for the clarification!

1 Like

I was asked by Sergey to provide some images to showcase the new Khronos PBR Neutral tone mapper. And there may be another request for images when the Blender 4.2 release notes are being worked on. But I thought I’d share the images here.

Product render example

One of the main proposed use cases for Khronos PBR Neutral is E-Commerce. Because it has relatively minor distortions on colours, and counter acts some of the effects of fresnel, while having a nice highlight roll off for bright spots usually seen with specular high lights. So I created a scene to test this, a mock up DVD case. Where I make use of a logo (where the minor colour distortions are useful), and a metallic sticker to showcase the highlight roll off on the specular reflections.

This scene is not well suited for AgX tone mapping. So AgX is included here just for educational purposes.

Standard:

Khronos PBR:

AgX:

Street scene

I created a file a while ago to test Filmic against AgX. This scene specifically tests the appearance of extremely bright and vibrant lights in the two tone mappers (an area where Filmic struggled with). This is a interesting scene to test this tone mapper on as well.

This scene is not well suited for the Standard tone mapper. This is because a lot of values exceed the 0…1 range. So Standard is mostly included for demonstration purposes (specifically to show one of the areas where PBR Neutral is better).

Standard:

Khronos PBR:

AgX (With Medium High Contrast):

18 Likes

Thank you, those are excellent comparisons! I’m going to be doing presentations and writing blog posts on this tone mapper - is there a chance you’d be willing to share your 3D model of that blender DVD case under some kind of open license? I’ll be happy to give you credit and I think it would help demonstrate what we’ve achieved.

1 Like

I work modeling accesories for vehicles and we use GLTF and webGL to show them on mobile and web apps, I’ll put some samples of the different viewports I use to work with (blender, substance painter and modelviewer.dev)
I’ve used te same hdr so we can see the colors more accurate:

Model viewer (Commerce color management):

Blender viewport 4.2.0 (Kronos Group Color management):

Blender viewport 4.2.0 (Standard Color management):

Model viewer (Agx Color management):

Substance painter 2023 (Linear color management):

6 Likes

Hi. Is there any chance you can share the .exr of the second scene? It is for testing purposes.