[Update] October 1, 2024
[Update] September 26, 2024
Hi Creators,
Today, we are announcing that Compatibility Lighting will be sunset over the course of the next 2 months and migrated to our new Tone Mapping Preset so you can continue achieving a similar visual look for your experience.
This sunset will enable us to make improvements to our lighting system, such as better lighting scalability, which were constrained by the maintenance of Compatibility Lighting, while letting you achieve a similar look.
-
If you are using Compatibility Lighting in your experiences, we encourage you to migrate your place to Voxel Lighting as early as possible. Voxel is the same code path as Compatibility Lighting and offers the same performance, but it treats light brightness differently.
We provide information on how to migrate and preserve your visuals below.
-
If you are not using Compatibility Lighting, you have nothing to do .
ColorGradingEffect and ToneMapperPreset
First, today we are releasing ColorGradingEffect, which is a new instance you can add to your post processing effects under âLightingâ. It currently provides only one simple property called ToneMapperPreset which has 2 options:
-
Default is the current Tone Mapping we use with Future, ShadowMap or Voxel Lighting.
-
Retro is the Tone Mapping we use for Compatibility Lighting and provides a retro Roblox style many of you like.
All values of ToneMapperPreset can be used with any lighting technology. For example, the âRetroâ preset could be used with âFutureâ Lighting. Read more about the new tone mapping presets in our Creator Documentation.
Removal of Compatibility Lighting
Second, we will be sunsetting Compatibility Lighting over the course of the next 2 months, in 3 phases:
Phase 1 (Migration Opt-in): Starting now
-
Places using Compatibility be can migrated to Voxel Lighting + Retro Tone Mapping at your convenience, whenever it is the best time for you (we recommend migrating as early as possible).
Please note: Compatibility Lighting will not be available anymore for places already using other lighting technologies (i.e. Future, ShadowMap or Voxel).
Phase 2 (Migration Opt-out): Week of Sept. 16
- All places using Compatibility Lighting will be automatically migrated to Voxel Lighting + Retro Tone Mapping when opening Studio. You will be able to revert this migration and opt-out from it.
Phase 3 (Full sunset): Week of Oct. 21
- Compatibility Lighting will be entirely removed from the Lighting. Technology dropdown and all places using Compatibility will use Voxel Lighting + Retro Tone Mapping instead. It will not be possible to revert this migration.
How to migrate from Compatibility to Voxel Lighting
During this transition period, we provide you with a migration tool to more easily convert experiences using Compatibility Lighting to Voxel Lighting.
To use this migration tool:
-
Click on the Lighting > Technology property.
-
Then click on the ⌠button appearing next to it.
-
The migration dialog will open. Click on âMigrateâ.
-
As an optional step, you can apply our local lights migration script provided below, under the âoptional local lights migration scriptâ section, to adapt your local lights.
This migration will not give you a perfect brightness match for your local lights. In Compatibility, local lights with a brightness > 1.0
are using a brightness of 1.0
, but display a larger light radius. This is not achievable in Voxel Lighting. This means those specific lights will look brighter in Voxel to get the same radius, or will have a smaller radius for the same brightness. You might need to adjust your local lightsâ brightness to retrieve your original look.
Please migrate as early as possible to have time to adjust your local lights before Compatibilityâs full Sunset.
An outdoor scene and a local light with brightness = 5.0.
Compatibility (Left) and Voxel with Retro Tone Mapping (Right)
Optional: Local Lights Migration Script
This script sets all your lights that have a brightness > 1.0
to a brightness of exactly 1.0
. This will give you the same brightness your lights had in Compatibility Lighting, but it will not give you the same light radius. It can help accelerate your migration work, but you will need to manually increase the brightness of the local lights youâd like to set at a larger radius.
To execute this script, open View > Command Bar and copy paste the code below. Press Enter. You can roll back this script with CTRL + Z ( â + Z on Mac).
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local recording = ChangeHistoryService:TryBeginRecording("Clamp Local Lights to 1.0")
for _, part in pairs(workspace:GetDescendants()) do
if part:IsA("Light") and part.Brightness > 1 then
part.Brightness = 1
end
end
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
Made with care by the Engine team
As always, please let us know if you experience any challenges with the Compatibility Lighting migration or with using the new ColorGradingEffect.
Thank you.
FAQ
Click here to view the FAQ!
Why are you sunsetting Compatibility Lighting?
-
Compatibility Lighting was released when we updated our Lighting system many years ago with the intent of being sunset. Its purpose was to imitate Robloxâs old lighting systemâs visual look. It is the exact same technology as Voxel Lighting, but it applies a different tone mapping curve and a brightness clamp on lights.
We have several lighting improvement projects in the making, but with Compatibility not being a real Lighting Technology, we are facing complexities in keeping it around. However, we want to allow you to continue achieving a similar look which is why we decided to find a proper home for Compatibility, as a Tone Mapping feature.
Will moving to Voxel Lighting impact my experienceâs performance?
- Not one bit. Compatibility Lighting uses the exact same code as Voxel Lighting. Compatibility had additional code to change the Tone Mapping curve and it clamped the lightsâ brightness to
1.0
.
Will you provide more Tone Mapper Presets in the future?
- Releasing our new ColorGradingEffect instance is the first step for that. We are not working on releasing more Tone Mapping Presets at this time, but we would like to extend those functionalities in the future. We donât have concrete plans to announce at this time.
Why are the local lightsâ brightness not adjusted with the migration tool?
-
In Compatibility Lighting, all lights with a brightness
> 1.0
display a brightness of exactly1.0,
but can show a larger light radius. This is not achievable in Voxel so we canât provide a perfect conversion for local lights.Some developers might find that the migration script provided above accelerates their migration, but that would not be true for all experiences. Additionally, our migration tool is built so that you can revert the migration during the opt-out phase (phase 2). Since an experience can have a very high amount of lights, we are not able to save the original state of all local lights to provide a way to revert it.
What should I do if I use Compatibility and I was scripting lightsâ brightness?
-
For local lights, If you are increasing brightness values above
1.0
, we recommend that you verify the visual results obtained and choose if youâd like to lower the brightness values to avoid over-exposure. -
For the sunlight, there exists a direct value conversion between Compatibility and Voxel. If desired, you can use the following function to obtain the direct brightness conversion for the Sunlight:
local adjustBrightnessCompatibilityToVoxel = function(brightness: number)
brightness = math.clamp(brightness, 0.0, 5.0)
if brightness >= 0.5 then
brightness = 3.135266 + (0.5605744 - 3.135266) / ((1 + (brightness / 92.74922) ^ 3.400255) ^ 3365850.0)
else
brightness *= 1.44611366946
end
return brightness
end