Skip to content

Support AgX tone mapping #27362

@donmccurdy

Description

@donmccurdy

Description

I think we should offer AgX as a tone mapper in three.js. It has better fundamentals than others like Reinhardt or ACES1, often provides a more natural appearance, and — importantly — is the new default in Blender 4.0. Supporting AgX would make consistent color across Blender and three.js much easier for users.

Additionally, I feel more comfortable using AgX in wide-gamut workflows (see #26479).

Solution

AgX has been discussed in a few other threads previously:

While I've done some proof-of-concept implementations myself, none are ready for production. Notably, we'd want to replace the LUTs with a piecewise-linear function (or similar), and perhaps to support the "golden" and "punchy" looks.

The Filament implementation is probably a good reference here.

Alternatives

  • "Filmic": Previous Blender default. AgX improves on this, and I'm not sure there's any particular reason to go back to Filmic.
  • "Commerce": Available in model-viewer, and has starts from somewhat different goals than AgX. I believe AgX is probably the place we should start, but Commerce could be a worthwhile addition later.

Additional context

No response

Footnotes

  1. I don't meant to say that users can't or shouldn't use ACES or Reinhardt. If you prefer the appearance of ACES for some specific scene, that's completely fine. I do mean to say that AgX is a better default, and a better starting point from which to begin making artistic choices (like other tone mapping) when creating a new project.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions