PcoWSkbVqDnWTu_dm2ix
We use cookies on this site to enhance your user experience

High Dynamic Range Rendering

High Dynamic Range Rendering

The “Future is Bright” project is an ongoing project to upgrade the lighting system in Roblox. As part of this, Roblox is upgrading from our old Low Dynamic Range (LDR) rendering system to High Dynamic Range (HDR). To enable these upgrades, you can change the Technology property on Lighting as follows:

  • “Voxel” enables the new HDR system which simulates wide ranges of brightness in a physically realistic way. Camera exposure can be adjusted similar to how your eyes adjust to bright or dark environments.
  • “Legacy” enables an approximation of the old lighting engine for backwards compatibility.
Dark room viewed from outside
Bright outside viewed from inside

Low vs High Dynamic Range

In the old LDR renderer, values stored for each pixel directly represent what percentage of the display’s maximum pixel brightness to emit. The value of a part’s pixel on screen is roughly equal to the RGB color of the part multiplied by the RGB intensity of the light it’s receiving (ignoring fog, post-process effects, etc.). For example, a part whose RGB color is [0.5, 0.5, 0.5] receiving a light with intensity [1, 1, 1] will show up on screen approximately as [0.5, 0.5, 0.5].

LDR is not capable of storing wide ranges of brightness typical in real-life scenarios. For example, outdoor areas in direct sunlight can be over 100 times brighter than indoor areas. HDR rendering solves this by storing intermediate values for each pixel that represent physical brightness quantities, then it converts these values to a 0 to 1 range with a tonemap so they can be displayed on screen.

Higher Brightness Values

The old LDR renderer did not support light values greater than 1. Around the light with the Brightness value of 25, there’s a visible circle where higher brightness values are being limited to 1.

In the new HDR renderer, arbitrarily bright values are supported:

Exposure Compensation

HDR allows you to simulate camera exposure. In real life, cameras and human eyes can adjust how much light contributes to the resulting image. In HDR, we simulate an exposure for the camera which can be controlled with the ExposureCompensation property on Lighting.

ExposureCompensation of 0
ExposureCompensation of 2.5

Converting to HDR

Overall Brightness

Due to the tonemap compressing colors, objects that appeared in the “Legacy” system with LDR values of 1 may appear with LDR values of ~0.8 in the HDR system. Consequently, some areas may appear darker. There are several options for tuning the overall brightness of your place:

  • Modify LightingBrightness to change the brightness of direct sunlight. We’ve found that most old content looks good with this value set to 2.
  • Modify LightingAmbient to change the base brightness everywhere in your place.
  • Modify LightingOutdoorAmbient to change the brightness from the sky.
  • Modify LightingExposureCompensation to change the brightness of the final results you see on screen.

Bloom

Bloom is an effect that creates highlights in bright areas on screen. In the HDR system, bloom is enabled by default, with a threshold of 2. The default bloom properties are overridden by those on a BloomEffect if one is present in Lighting or Camera. Setting the Intensity to 0 disables bloom entirely.

Neon

The behavior of the Neon material in the new system is different from legacy. Previously, Neon always had a blurry overlay that could not be configured or disabled. In the new system, Neon is no longer special in this way — it is simply an emissive material, just like beams and particle emitters, that glows based on bloom settings. Therefore, the size and intensity of the glow around Neon can be modified through BloomEffect settings and through the brightness of the part color. Also, black Neon no longer glows.

Overly Bright Lights

If you see a bright area, you may have too many lights in that area or too high of Brightness values. With HDR, brightness is no longer capped at 1 as it was in the old LDR renderer, so multiple lights and lights with high brightness can add up to be brighter than desired.

Light Leaking

Since a higher brightness contrast can be achieved in the new system between indoor and outdoor areas, light leaking may become more apparent.

Light leaking is a consequence of the 4×4×4 resolution of the voxel grid. If you have a thin wall that intersects a voxel that is mostly exposed to sunlight, some of the sunlight may be visible from behind the wall in an indoor environment. To fix this, try increasing the wall’s thickness.