Visualize HDR Sample
APIs Used
- OpenGL ES 3 AEP
Shared User Interface
The Graphics samples all share a common app framework and certain user interface elements, centered around the "Tweakbar" panel on the left side of the screen which lets you interactively control certain variables in each sample.
To show and hide the Tweakbar, simply click or touch the triangular button positioned in the top-left of the view.
Technical Details
This sample is an implementation of the Weighted Blended OIT (Order Independent Transparency) algorithm from this research paper:
McGuire and Bavoil, Weighted Blended Order-Independent Transparency, Journal of Computer Graphics Techniques (JCGT), vol. 2, no. 2, 122--141, 2013.
Introduction
The Radiance format (.HDR/.RGBE) is a popular format used for storing HDR images. This application is specially designed to work with HDR displays as displays images saved in the Radiance format. When connected to a compatible display, options show up in the application UI that allow tweaking of various settings of the ACES tonemapper and visualize their effect on the image.All images used in this sample are courtesy of Epic Games Inc.
Rendering Procedure
A typical HDR image has values that go from 0.0 to well beyond 1.0. Typically images of this form are tonemapped to fit between the 0 to 1 range so that they work well with backbuffers that are RGB888. In our case, we use the ACES tonemapper to tonemap our image to an alternate range which has far more precision and range than the previous 0-1 range. The ACES tonemapper also takes into account the color space that the original image is stored in (scene-referred) and also the final output color gamut capabilities of the display. If the display is capable of higher peak brightness levels, the tonemapper curve can tone the final output based on that as well. The ACES tonemapper could be run completely as a final pass in the fragment shader, but in this case, it is implemented as a LUT. The 32x32x32 FP16 LUT stores the entire range of input to output color mappings for quick access from the fragment shader. This significantly reduces performance overhead.UI
- Image Chooser
- Output Curve (based on max display brightness)
- Output Color Space
- Output Mode (final image passed to the driver)
- Enable ACES D60 to D65 White Adjustment
- Enable ACES desaturation
- Enable ACES Dim Surround
- Adjustment of Middle Gray
- Tone Curve Saturation
- Surround Gamma
- Max CLL
- Splitscreen mode