Allow developers to customize light attenuation

As a Roblox developer, it’s currently too difficult to simulate realistic light emitters without the ability to modify the emitter’s attenuation distance.

In real life, light begins to lose its intensity the further it travels from its source - this is called attenuation. Currently, it appears the engine has a fixed roll-off distance for lights. Lights could be much more versatile if developers could adjust this behavior.

In this example, both emitters have nearly identical brightness and range - but the attenuation light has a much more gradual brightness roll-off when compared to the current default lights.

The potential applications of this feature would be broad, including realistic flashlights, room lighting, or any light that a developer wishes to make photorealistic.


Currently, an approximation of the above effect is possible using multiple emitters - however, this is not performant at scale. If engineers were to address this missing functionality, developers could easily customize each light to fit their needs.

To preserve backwards compatibility with existing experiences, this could potentially be a property similar to Unreal Engine’s Attenuation Radius - developers could modify a Attenuation property for each emitter [perhaps a range of 0-1]

In 2016, @zeuxcg mentioned variable attenuation during his lighting Hackweek project (the early prototype of Future Lighting). Many of the above points have since been addressed. However, customizable attenuation remains missing.

57 Likes

Honestly I’d be perfectly happy with this just being forcefully enabled one day if it means that large lights won’t look as awful as they currently do.

5 Likes

I think this would be a really good change, lights look very weird on their own. You can get good results with multiple lights but its a lot of work for something that should just be in the engine by default.

2 Likes

This would be really good feature, achieving photorealistic lighting is difficult with awfully low light range and no way to control attenuation. I have experienced this issue with my friends a lot of times and its really bugging me out.
If Godot, Unity, UE have this, why can’t Roblox have it? We’re not in 2015 anymore, this is 2023.

7 Likes

This. And being unable to set the range greater than 60. It would be nice if it was a number sequence as well.

It would be one step in the right direction for Roblox to move towards the current game engine standard. Graphics are important in every game. Control over them gives the developer more ways of expression.

9 Likes

I am all for this, but considering they aren’t increasing the maximum range for lights, I’m doubting they’ll do anything about this.

1 Like

On the relevant feature request for this issue, an engineer mentioned that staff were investigating solutions for implementing a higher range limit for lights. Hopefully we see this limitation changed soon.

In the case of light attenuation, I’m hoping that this ticket is filed internally - perhaps a lighting update sometime in the future will include this and the above issue. :eyes:

2 Likes

In Blender, this feature is called ‘Blend’ and works like a mask feather. I find that the lights on Roblox are currently too limited to make aesthetically pleasing and physically accurate light sources without using tricks like OP mentioned (multiple lights).

I’d love to see this become a feature and allow developers to improve the visual quality of their scenes. Lighting is an important pillar that keeps visual quality up high.

3 Likes

this would be extremely useful for making ambient light as i could make lights extremely soft without having the middle part be annoyingly bright also useful for lamps and literally any other kind of light

1 Like

Bump! This would be insane as of 2023, this is something we REALLY need! It would make achieving incredible lighting so much easier for everyone! :+1: