Skip to content

Custom tonemapping LUT: Godot Resource format that contains both a shader and data for LUT(s) #12728

Closed
@MJacred

Description

@MJacred

Putting this comment into its own proposal to prevent it from becoming lost.


Describe the project you are working on

3D Game

Describe the problem or limitation you are having in your project

see #7263 (comment)

and this would allow using Tony McMapface tonemapping…

Tony McMapface is an artist-frendly tonemapper that tries to stay close to the input color and doesn't increase contrast or saturation, leading to a pleasant neutral look that can work as a great easy-to-use alternative to the options currently available
source

Describe the feature / enhancement and how it helps to overcome the problem or limitation

See these comments

would supersede

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

a rephrasing of this:

  • have a single Resource format, called "GodotLUT" for simplicity, that contains both
    • a shader and
    • data for LUT texture(s)
  • add a "custom tonemapping LUT" to the environment node, where the user can drop the "GodotLUT" resource

Godot could provide a GodotLUT default shader, called e.g. "GodotLUTShader", or provide this shader as an example in a Godot tutorial

At minimum, it should be possible to implement Tony McMapface

About HDR output... Maybe relevant, maybe not, depending on how things get implemented:

  • Consider how this will work with HDR output, when that inevitably happens in the future. How will future colour grading (editor tools or user-provided HDR LUT, etc.), glow, etc. interact with this?
  • EA Frostbite's HDR colour grading and HDR tone mapping approach has a few points that are good to keep in mind regarding how a future of HDR output might be implemented.

source: godotengine/godot#97095 (comment)

And this about HDR: godotengine/godot#107730

If this enhancement will not be used often, can it be worked around with a few lines of script?

No, as this can't be implemented by a script or shader code without modifying the engine. See below.

Is there a reason why this should be core and not an add-on in the asset library?

see #7263

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions