Future Lighting needs to expose more "internal" hardcoded properties for light instances

Future Lighting needs to give us more access to lighting related properties.

As a Roblox developer I currently struggle with controlling the hardcoded internal behavior of Future lighting, and I think it’s a great time to gather your opinions on it. You see, the current state of Future lighting tech on Roblox is limiting our style when it comes to making our games look just right. Let me break it down for you.

So, we’ve got the Future lighting technology provided to us back in 2017, showing us amazing new tech and properties for lights, but here’s the catch: we don’t have access to all the properties of light instances, some even got removed before Future was fully shipped to the public! :scream:.
And no, I’m not talking about the basics like color, intensity, range, and shadows; we’ve got those covered. I’m talking about the properties buried deep inside the engine, the hardcoded values that are locked away from us. It’s frustrating, right?

I mean, isn’t it a bit crazy that we can’t access these important properties? It’s like trying to paint a masterpiece with only a few colors on your palette, requiring constant workarounds and hacky fixes to make your scene look just right!

That’s why I’m making this post. I’m asking the Roblox Engine Development team to give us developers more control over these hidden properties in the lighting system. If we can tweak these, we can take our games to a whole new level of awesome.

Here is a list of the properties I believe the engine should really have available to be changed, if not yet available, to be added.

Suggestions of Features to add to the current lighting engine.

Section 1 | Shadows

  • Shadow Bias, from the Unreal Engine 4.27 Documentation
  • Shadow Sharpen Filter, (similar to post processing, this will not require the shadow to be drawn perfectly sharp, it takes the blurry result and attempts to make it sharper.)
  • Shadow Color (I believe that this was a property a one point, but more or less for the sun light.)
  • Shadow Resolution per light instance
  • Control over the max Shadow Atlas size. (Optionally per platform to not degrade performance on mobile platforms.)

Section 2 | Light Properties

  • Falloff Exponent, (Also known as light attenuation.)
  • Source Radius (Pointlights Only)
  • Lightsource Radius (Control over the size of specular highlights.)
  • Lightsource Length, (This is extremly useful for elongated lights such as tube lights!)
  • Soft Source Radius, (Lets you make a specular highlight more smooth if you think it is too sharp for you.)
  • Access to the Specular & Diffuse intensity values on lights. Letting us disable specular highlights in certain scenarios where they are very disruptive to a scene.

Section 3 | Functionality that does not yet exist, but would benefit us a lot.

  • IES Light Profiles (Also known as light cookies in Unity.)
  • Lightmaps (Pre-Computed lighting and shadows. And for the engine developers saying “we want realtime dynamic graphics”. I genuinely don’t care. You have to consider the limitations of certain platforms like mobile not being able to handle realtime lighting at the same performance as desktop or console devices.)
  • Volumetric Lighting/Fog
  • Per platform lighting optimization tools. (Especially to control the performance properly. Certain platforms such as desktops running with GPU’s that have the ability to do literal raytracing should be accounted for and properly used if available. Its unacceptable that I get over 300fps on a game using literal Raytracing but I can not get my Roblox game to surpass 120+ fps with a RTX 4070 TI.)
  • Deprecate the current EnvMap system and replace it with a manual Cubemap probe placement system, such as Parallax Corrected Cubemaps

Now, this is all for now that has really bothered me about the engine and its very limited implementation of lighting. What is your opinion about these suggested settings, do you think they would benefit you? Or are you content with the current system provided to you by Roblox.

If so, please let me know in this poll!

  • Yes, I agree that Future lighting needs more scalability and customization.
  • No, the current implementation fits me just fine.

0 voters

I appreciate your time for reading this post, please let me know by replying to this thread, as it would greatly help in getting more attention to Roblox Staff.

122 Likes

I’m so glad somebody finally made a (very detailed may I add) suggestion about this.

Lighting on Roblox has been an uphill battle against the engine for a long time now because it’s about as flexible as a brick.

Lights just don’t form such a visible circle in real life, for starters. How am I supposed to achieve any semblance of realism with that? Well there is a way it’s just very time consuming and the performance when you fake better attenuation with 4 light instances per light model is… not good. Light range also desperately needs to be extended - it’s near impossible to efficiently light a large space with just 60 studs to work with.

In general it’s definitely the part of the engine I feel has fallen behind (simply because it gets zero attention) despite being one of the most important parts of creating a decent looking world.

25 Likes

i also support this. considering roblox plans to release future lighting for mobile devices there might be potential they might do work with lighting and make it better. no other game engine has these limitations, while were stuck with light range limit of 60 and no way to adjust attenuation ir anything really

14 Likes

Exactly this. Roblox engineers often fight with two contrasting swords:

  • Plug-and-play, everything should be dynamic so it’s easy for the new developers
  • Compatibility with all platforms, everything should run everywhere

The first constraint is at odds with other constraints. When balancing a major performance boost with accessibility, performance should always win.

17 Likes

Exactly this, they seem to not understand that older graphics API’s, especially OpenGL ES on mobile is limiting this entire platform. It would require more work to have different graphical capabilities like this per platform, but you have to see the bigger picture here. Imagine if Epic Games did the same with Unreal Engine. Just because 0.1% of users use OpenGL, lets make everyone suffer right?

12 Likes

I fully agree:
there is a significant need for more lighting options and improved lighting optimization methods. In my particular case, my game’s FPS is lagging primarily due to the presence of shadows. Apart from the options of either removing shadows from objects or entirely disabling shadows, I don’t have many other alternatives. However, my goal is to create a game with high-quality and visually pleasing graphics. The computational load imposed by lighting shadows is substantial. For example, my trees sway in the wind, causing the shadows to continuously update in real-time, resulting in a decrease in the game’s FPS. The same issue applies to vehicles; I have highly detailed models, which leads to a high number of shadow triangles.

8 Likes

Roblox continues to make the argument that mobile users must have access to the same capabilities as users on other platforms, which I still don’t understand, and I wonder when this will change.

It would feel like a fever dream to have them in it and would elevate Roblox to a whole new level of high-quality games; therefore, I hope soon everything you described will be in the engine.

(If there is something I said wrong or anything tell me)

10 Likes

The mobile platform makes good money for roblox and developers yum yum, and mobile platform generates about 45 percent in revenue in gaming industry making roblox focusing on mobile.

5 Likes

Again, your argument has no valid point. They can keep mobile at the current graphical fidelity, but at least add greater visual fidelity if your hardware is capable of said features.

10 Likes

I know that. They can just make them as options that can be turned on and off, and it’s up to the developer to optimize it like adding option in settings or making them turned off if the platform is mobile.

5 Likes

Bump. Introducing these features could significantly help all developers. Gaining control over aspects like shadows and lighting properties would allow my team and me to create better looking experiences. While Roblox mobile users do make up a significant portion of the player base, offering developers the flexibility to edit and change visuals for higher-end hardware would be amazing.

12 Likes

Solution: Environmental diffusion. Roblox needs to add that or realism with lights will never be truly feasible.

6 Likes

If your talking about EnvironmentDiffuseScale, its absolutely useless.

Since it is dependent on either the skybox or reflection cubemap (which as mentioned above isn’t controllable), will result in unpredictable and uncontrollable behavior.

3 Likes

This. If Roblox wants to power imagination, then this is one way to go.

8 Likes

Yes it was ColorShift_Bottom, but this only works on technologies before Shadowmap.
Shadowmap and Future both use OutdoorAmbient for shadows.
I dont know why it isnt just labelled “Shadow Color”

also colorshift_top controls your sunlight colour for people who read this and dont know

8 Likes

No, there was an actual property for light instances. ColorShift only affects the sun light source from what I remember. Not to mention certain lights might need individual shadow colors hence why it should be a seperate property for each light.

1 Like

This build didnt have it but I remember light instances during the FIB beta (when VoxelGPUCascaded was being tested) had more properties already.

Screenshot 2023-07-20 221109

2 Likes

yes thank you, that is what i said… colorshift_top controls your Sunlight colour. colorshift_bottom does nothing nowadays.
And I agree, the pointlight shadow properties should come back as a harsh edge around a pointlight is hideous. It needs a falloff.

4 Likes

might aswell include the fact we still have not received increased light range.
theyre working on gpu-based rendrring of i think voxel lighting, but the problem is still there, there is no way to override the shadow softness, falloff and bias and other things in the lights. If you look at say Godot engine, it is far more advanced lighting wise. it got angle attenuation, normal attenuation, shadow fine tuning and really good light range limit youll never get pissed off at.
I don’t get it why’s environment feature requests that appear to be ghosted so much. we either dont get decal/texture rotation, better sky tuning, more fine light tuning, actually volumetric clouds with volumetric fog/lighting (volumetric lighting is still possible, but its not really the case for fog), etc.
I already asked whats up with all that ancient mess in AMA and i got a response that theyre working on GPU-based rendering for voxel lighting, which barely answers the question but raised attention to those details.
so yea im not sure if we will ever get what we want.

4 Likes

This was added in roblox at one point, I believe in 2017 by a engineer. Its called “deffered decals” but the reason we wouldn’t get them shipped is because 0.1%> of mobile users were still using OpenGL ES 2.0.

“Its a gameplay feature so we cannot just disable it”.
Yes you can! By simply giving the people the capabilities! Most people who would want such features don’t care about mobile users. :slight_smile:

8 Likes