High dynamic range (HDR) is a technique that produces images with a greater dynamic range of luminosity than standard dynamic range (SDR) images, allowing for realistic depictions of color and brightness.
In standard renderingThe process of drawing graphics to the screen (or to a render texture). By default, the main camera in Unity renders its view to the screen. More info
See in Glossary, the red, green, and blue values of a pixelThe smallest unit in a computer image. Pixel size depends on your screen resolution. Pixel lighting is calculated at every screen pixel. More info
See in Glossary are stored using an 8-bit value between 0 and 1, where 0 represents zero intensity and 1 represents the maximum intensity for the display device. This limited range of values doesn’t accurately reflect the way that we perceive light in real life and leads to unrealistic images when very bright or very dark elements are present.
In HDRhigh dymanic range
See in Glossary rendering, the pixel values are stored using floating point numbers. This allows for a much larger range of values, which more accurately represents the way that the human eye perceives color and brightness.
In Unity, you can use HDR images for internal rendering calculations. This feature is called HDR rendering. When HDR rendering is enabled, Unity renders the sceneA Scene contains the environments and menus of your game. Think of each unique Scene file as a unique level. In each Scene, you place your environments, obstacles, and decorations, essentially designing and building your game in pieces. More info
See in Glossary to an HDR image buffer, and performs rendering operations, such as post-processingA process that improves product visuals by applying filters and effects before the image appears on screen. You can use post-processing effects to simulate physical camera and film properties, for example Bloom and Depth of Field. More info post processing, postprocessing, postprocess
See in Glossary effects, using that HDR image. This means that the calculations are carried out using realistic values, which can lead to more realistic results.
On certain compatible platforms, Unity supports sending that HDR image to the display device. This feature is called HDR output.
Advantages of using HDR
Disadvantages of using HDR
Render pipeline | HDR rendering | HDR output |
---|---|---|
Built-in Render Pipeline | Yes Enable HDR rendering per-Camera in the Inspector, or using the Camera.allowHDR API. Enable HDR rendering and configure the format of the HDR buffer for each tier in the Graphics settings window. |
Yes Use the HDROutputSettings API to configure HDR output options. See platform-specific documentation for further details. |
Universal Render Pipeline (URP) | Yes Enable HDR rendering per-Camera in the Inspector or using the Camera.allowHDR API. Enable HDR rendering for all Cameras using the Universal Render Pipeline Asset. |
In research The development team are researching how to implement this feature. It does not yet have a planned release date. |
High Definition Render Pipeline (HDRP) | Yes HDR rendering is enabled for all Cameras by default. You cannot disable it. |
In research The development team are researching how to implement this feature. It does not yet have a planned release date. |
Tonemapping is the process of mapping color values from one range to another. When working with HDR, you must use tonemapping to convert the colors in the HDR image buffer so that the values are within a range that your display device can handle. If you do not use tonemapping, you can lose much of the detail and color information from the image, especially in very bright areas.
When using HDR rendering with SDR output, you must use tonemapping to convert the HDR image buffer to an SDR image for display. Unity provides tonemapping post-processing effects that let you do this: the Post-Processing Stack V2 package, the URP integrated post-processing solution, and HDRP integrated post-processing solution all contain tonemapping effects.
When using HDR rendering with HDR output, you can either:
In the Forward renderingA rendering path that renders each object in one or more passes, depending on lights that affect the object. Lights themselves are also treated differently by Forward Rendering, depending on their settings and intensity. More info
See in Glossary path, a CameraA component which creates an image of a particular viewpoint in your scene. The output is either drawn to the screen or captured as a texture. More info
See in Glossary only supports HDR if you have a post-processing effect on the Camera. This is due to performance considerations. If you have no post-processing effect on the Camera, the scene will be rendered directly to the back buffer where HDR is not supported.
In the Deferred ShadingA rendering path in the Built-in Render Pipeline that places no limit on the number of Lights that can affect a GameObject. All Lights are evaluated per-pixel, which means that they all interact correctly with normal maps and so on. Additionally, all Lights can have cookies and shadows. More info
See in Glossary rendering pathThe technique Unity uses to render graphics. Choosing a different path affects the performance of your game, and how lighting and shading are calculated. Some paths are more suited to different platforms and hardware than others. More info
See in Glossary, when HDR is enabled for a Camera the lighting buffer is also allocated as a floating point buffer. This reduces banding in the lighting buffer.