-
-
Notifications
You must be signed in to change notification settings - Fork 2k
[DRAFT] Add HDR output demo #1287
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
Thanks for taking the time to try it out and provide feedback @iuymatiao! This is very appreciated and helpful!
I agree, the old approach was better. Unfortunately, it is no longer possible due to clipping to
I opted to put the setup instructions as the last page because the primary goal of this project is to demonstrate the HDR output feature, rather than explain how to enable it in your own project. I could simply remove these setup instructions entirely, which would give a sharper focus to the project being only a demo, but I don't think there is harm in including them. The manual page will be the primary source for setup instructions, as it provides additional information on how to correctly use the feature. I've added a link to the manual page on the setup instructions of this demo. Let me know if there are any specific reasons you believe it should be the first view that is shown when starting the project, even with the above rationale in mind.
Good points. I now realize that it would probably be a good idea to have a limit on some things, like the sun, to show that it is sometimes a good idea to not just blindly trust the I'm going to need to think a bit more about how to display more information about these. Maybe a tooltip is best... There is a LOT on the screen for a new user and I don't want to overwhelm with too many numbers and text. The
I think this sounds like something that would be better as a feature in the Godot editor, rather than this demo project?
Ah, thanks for bringing my attention to the exposure stop labels! In my porting project, I use exposure stops quite heavily, but it doesn't make sense to have them at all in this project. I've removed the exposure stops entirely. The default min and max values are pretty arbitrary: they are intended to show the difference of very dark and very bright colours between SDR and HDR, but the exact numbers don't matter. I'm hesitant to add a reset button because these default values are very arbitrary.
Good idea, I've added a tooltip that explains the tick marks. Thanks again! |

HDR output is planned for Godot 4.7. Along with its release, we should provide an official demo project. This PR is my attempt at this sort of a demo project.
Please use the build artifacts from the HDR output PR to test this demo.
Overview
I recommend trying out this demo yourself. My hope is that you will learn some things along the way. Regardless, I'll go over some of my rationale for different elements I've included in the project:
Demo scenes
output_max_linear_value
This scene demonstrates how to use the Window.output_max_linear_value. This could be 2D or 3D, although I currently have only 2D nodes. The important part is that no WorldEnvironment is used in this scene.
Environment
This scene demonstrates how to use a WorldEnvironment with the AgX tonemapper to produce HDR visuals. There is a lot of potential to make something that looks pretty cool here.
Color sweep
The colour sweep scene presents a full range of saturated colours and a greyscale band with tick marks showing linear values as well as sliders to control the min and max. Min and max are presented in exposure stops relative to reference white. The output_max_linear_value is shown as a tick mark on the chart that moves as max luminance is adjusted.
Setup instructions
This final scene outlines the full set of steps that must be followed to enabled HDR output on a project. I have kept this as the last scene on the list so that people can see the fancy visuals first before diving into the technical details of how to implement HDR in their project.
Remaining work