Compatibility Lighting becomes Retro Tone Mapping [Sunset + Migration]

Not fully replicated though. With this migration anything bright, even just white blocks, will now be distorted/blurred because of voxel’s poor light handling.

This isn’t even neon, it’s plastic! Compatibility does not have this effect.
image

There’s also the lack of clamping, so anything like pointlights/spotlights/surfacelights will most likely be 10x too bright now. If they could add these it would be perfect but that doesn’t seem to be the plan.

9 Likes

Just something to add onto this migration.

Can we get something similar to legacy neon? Since compatibility replaced legacy, it has become impossible to achieve neon’s blurry look as it glowed regardless of how dark it was.

So as a replacement like with the new tonemap, could we get some sort of “glow” material that pretty much has this behavior. It would be neat to use this for restoring old creations & being used as an alternative to neon for it’s continuous glow behavior.

11 Likes

I’d be very grateful if in the next 2 months the retro gradient was made a bit more like compatibility since when it comes to similarities its missing the brightness cap and shadows are more apparent.

Compatibility:

Voxel + retro gradient:

14 Likes

You can try disabling cast shadow for the roof part

4 Likes

thankfully I don’t think my games will be effected as I don’t ever really use compatability.
it doesn’t look like much of anything compared to other lighting settings imo, it felt less detailed.

1 Like

It’s sad that we are losing Compatibility; it may make a lot of games like RetroStudio and Super Nostalgia zone look less faithful to older lighting technologies.

Funnily enough, just yesterday I was looking for a way to mimic Compatibility’s lighting without actually using it, so it’s ironic that this update comes out right after. I think it would be cool to mix the Retro tonemapping with Shadowmap or Future.

And having new lighting effects is cool! I hope for the new effect to get more properties to change in the future.

2 Likes

I’m no expert but, this feels like a precursor to better customization and flexibility for lighting/ shading. If that’s the case, I’m super excited. Roblox has all the tools to make really cool games. It just lacks the lighting / shader polish that most games are known for. Complex art styles are really hard to pull off these days (shout out to those that do, you’re awesome) and if it was better, it would unlock a new generation of interesting concepts.

5 Likes

oh, that’s unfortunate

i’m not getting the same problem as you with the white blocks being extremely bright. or it could also be my lighting settings.

image
image


i’ve always used shadowmap + globalshadows off, so i haven’t really dealt with voxel/compatibility lighting that much

1 Like

Re: Extending ToneMapperPreset (+ @QALOLTHING, @supernovasalmon, @JuJuGamer7, @MrTools_Dev , @vvv331, @Witchrie, @TheCrypticRunner)

While ColorGradingEffect/ToneMapperPreset are very barebone right now, they are part of a long-term direction in which we’d like to take our rendering customization options. We released it in this very simple state to support the compatibility sunset. We want to extend it in the future, but we don’t have any active plans to do so right now as we’re still focused on higher priority tasks.

We’ll be collecting feedback to guide the direction of ToneMapperPreset and it’s great to see excitement about it!

10 Likes

In the FAQ there is this piece of code:

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

However I’ve been messing around with it for a bit and when I use the Studio’s built in conversion with a brightness of 1, it gets set to 1.981, however when I use the Lua code and do the same thing, it returns 1.841. I did try fix the issue myself however I’m not entirely sure what these numbers represent.

2 Likes

Will there be a Legacy ToneMapperPreset?


image

I really like the old neon
(Ik tone mapper has nothing to do with that)

16 Likes

Hi Beyond_5D, we’ll take a look and see what’s going on! This code should represent exactly how the in-engine conversion works, but we’ll double check if there are any precision issues.

2 Likes

Roblox High School Legacy, Murder Mystery, Prison Life, and basically every old game that used legacy lighting

3 Likes

Add chromatic abberation. The current post-processing effects are too limited for this to do anything

1 Like

Re: ToneMapperPreset.Retro shadows/lighting differences (+ @Visuile, @BrucelWayneBatman, @Profesornoobz1440, @robloxsammy747, @az09az99096 )

Hey! The main lighting differences you’re seeing are the impact of not having the brightness clamp on the local lights.

Since there is no alternative to applying the brightness clamp, we need to play with local lights’ radius and brightness to achieve a similar result. It’s not going to be the exact same as before, that is true, but in the majority of our tests on many places using Compatibility, it was possible to achieve a similar result. To correct an over-shadowed or over-exposed area, you can adjust the radius and or the brightness of the lights that are impacting that area. You can also add additional lights if you’d like.

We recognize that there are some efforts required there. We would have liked to automate local lights conversion, but there is no one size fits all approach to it. We detail the reasons in the FAQ.

5 Likes

It’s interesting! It’s sad to see the compatibility lighting go away but I’m also excited to see whatever new lighting projects the Roblox staff will push out in the future! I’m just wondering if there will eventually be support for certain niches the legacy/compatibility lighting had?

For instance, how the brightness clamps on lights in legacy made certain lights have different colors? Two purple light instances when combining with each other made a pink light, and two orange light instances made a yellow light.

Or how the reflectance property worked on parts with SpecialMeshes or MeshParts in legacy/compatibility lighting?

I don’t use compatibility lighting in my builds, but I could see how this can be an issue with developers that actively use the compatibility lighting in their games (especially with developers who specialize in making games about classic Roblox where compatibility lighting is necessary). There are quite a few differences between compatibility and voxel. Simply slapping a tone mapper onto it to make it look like compatibility wouldn’t really help, it’s just voxel with less color contrast. Even as I read through the thread, the light clamping scripts provided by Roblox staff don’t really give desirable results without having to change lights manually afterwards.

On another note, I really liked the light clamping feature that made lights have different colors whenever they combined together. I would use it if there was something like that with the current lighting technologies like voxel, shadowmap, or future :pray:

2 Likes

Well those are all games that have been discontinued for ages

1 Like

Please add chromatic abberation and more effects, the current effects are bare bones

2 Likes

Not all games that use compatibility lighting are discontinued, Murder Mystery (2) is still being mantained with updates for example.

Compatibility isnt just an old lighting, it can also just be a stylistic choice for the developer to choose.

6 Likes

Hi there!

The glowing effect you’re seeing is indeed created by a bloom post-effect, which you do have control over. If your experience does not have a bloom effect set up it will fall back to a default bloom. You can control bloom by adding a BloomEffect instance under your lighting service if you don’t already have one in your experience.

The intensity and prevalence of the glow effect can be controlled by the Intensity and Threshold parameters of the BloomEffect instance, while the size of the glow can be controlled by the Size parameter. Setting the Intensity parameter to 0 will remove the bloom effect entirely, which might be what you’re looking for here!

4 Likes