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! |
AThousandShips
left a comment
There was a problem hiding this comment.
Also all "colour" needs to be changed to "color"
|
Please use the batch commit feature to add all changes at once (to avoid lots of pings) |
I just discovered this feature as you were writing your message! |
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
83993d2 to
c6b5ad1
Compare
|
Thanks for your help with this AThousandShips!! I'm pretty slammed, so the assistance with the code cleanup is appreciated :)
I struggled a fair bit with this sentence and I like the wording you suggested in your review. Thanks! I also had no idea that macOS was branded as "macOS" 😅 |
|
Negation is a nightmare to write! |
|
Is it possible to provide a dedicated tooltip for each tick mark, displaying their current values? It would go a long way to minimize confusion as to what’s being measured on the screen, IMO. |
|
Maybe even better would just be the linear value at the cursor’s horizontal location that pops up and is always visible when mousing over any part of the colour sweep? (To be honest, though, it might take an extra week or two or five for me to have the small amount of time I need implement this, so maybe it can be added as an improvement after this is merged.) |
That would probably be the best possible implementation if it's trivial to add. |
| if not DisplayServer.has_feature(DisplayServer.FEATURE_HDR_OUTPUT): | ||
| tooltip_text = "Display Server does not support\nHDR output. This usually means\nthat Godot does not support HDR\noutput on your current platform,\nbut other Display Server drivers may support HDR output.\n\n" | ||
| elif not device_has_hdr: | ||
| tooltip_text = "Rendering Device does not support\nHDR output. Try changing the\nRendering Device driver in your\nproject settings to a driver that supports\nHDR output, such as d3d12 for Windows\nand metal for macOS.\n\n" |
There was a problem hiding this comment.
Should D3D12 and Metal get their "branding names"?
There was a problem hiding this comment.
I'm not sure -- I wrote them as they're seen in the Project Settings window, given that's what the user is being instructed to change.
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
- Improve Output Max Linear Value scenes (add 2D and 3D test cases). - Add a 3D scene that showcases HDR output and environment glow. - Add a project icon and README. - Move to `misc/` to avoid additional top-level folder. - Improve SubViewport quality using SSAA on top of MSAA. - Enable low-processor mode to reduce CPU/GPU utilization when idle. - Ensure all scenes are stills to avoid continuous redrawing.

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