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

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

Games that rely on lights, such as pilgrammed, which has catacombs that you need a lantern to navigate, immediately have terrible systems. The problem is, moving lights in Roblox lag behind, this, combined with the low lighting, makes it impossible to navigate well and you’ll most likely get instakilled by the jailer due to being in the dark.

3 Likes

I think the worry is that players and developers will think that a feature is “unfinished” and “buggy” when the games they play or work on suddenly have broken mechanics on mobile, but works fine on their PC. Though some engineers have said that there are plans to phase out GLES2 support some time in the future (my guess would be around the same time Future lighting is released for Android). Like, imagine if Decals didn’t work on mobile? A core part of games just unavailable for a large portion of the playerbase.

4 Likes

That is the developers concern. If there is a buggy feature developers can make workarounds. We aren’t babies. We are developers and should have the freedom to make our own solutions.

2 Likes

I don’t think we should be encouraging them to release broken features and force us to use workarounds? The idea is that sure, features are less customizable, but the artistic intent is preserved across updates instead of engines like Unity and Unreal being able to remove stuff that they decided were a bad idea and marked “Deprecated” after a few versions, and if developers on those engines don’t like that then they can remake the feature themselves because of deeper engine-level access or stick to an older version.

I’m not saying that Roblox should babysit developers and become Scratch 2.0, but they’ll have far less freedom to overhaul parts of the engine (like adding raytracing) by giving us access deep into it’s internals, because then they’d risk breaking games that rely on complicated, idiosyncratic techniques to look nice, like manipulating the shadow biases.

I am also not saying that Roblox has been perfect in this regard (one particular gripe are the environment maps that appear to not have any significant work done on them since they were introduced), but I can only imagine how difficult it must be to not accidentally break a “feature-bug” that people exploit like glass with transparent parts or GUIs, because I think that does make it much harder to introduce improvements to the engine as a whole when each update must consider the impact on even the smallest parts of the community, else risks significant backlash for breaking artistic intent.

3 Likes

I’m not saying it wouldn’t be really cool to see raytracing in Roblox, but frankly I’ll take some of the more basic stuff that provides much more flexibility working with lighting over a raytracing toggle that cuts off my game to most of its audience because they can’t run it. Standard features in other engines should be a priority over more advanced stuff like RTX support since the former shouldn’t have anywhere near as much of a problem being used by most of the players on the platform.

As harsh as it is, a bug is a bug and relying on it and expecting it to remain in the engine forever is… not a good move. If concerned about things like this the engine would never make any progress which in the case of lighting is exactly what this post is addressing, because the lighting engine has entirely stagnated and has gone without significant improvement for a long time.

6 Likes

Roblox has to run Luau code between each frame. Take a look at your CPU’s single-threaded performance. -_-

2 Likes

My code is optimized and isn’t the problem. Lua is also not single threaded, at least when you use it right. We are using parallel Lua to run all Lua code in separate threads on intensive scripts.

2 Likes

Luau is single-threaded. Parallel Luau simply runs multiple instances of Luau, each on their own thread. Parallel Luau does not eliminate the existence of serial Luau nor does it allow Luau code to run at the same time as frame generation. Both the serial & parallel execution phases have to run to completion between each frame.

“My code is optimized and isn’t the problem” is not helpful and I don’t believe you. Check if lowering the graphics quality or screen resolution increases your FPS - then I’ll believe that it’s Future that is the problem.

1 Like

Micro profiler clearly states that shadows are the biggest issue here, turning down graphics or changing the lighting mode to voxel gives me over 400fps

6 Likes

This is something I was hoping for when this kind of lightning was being developed. And now that we actually have it, I believe that they didn’t give us enough control over the new lightning system.

5 Likes

I strongly agree with this. Games with Future lighting tend to lag very badly on my mid-end hardware and there are times where I want more control over how the lighting engine works in my game, especially with shadows, render distance, and ways to toggle aspects of the engine with serious performance problems on certain platforms/hardware.

5 Likes

its either ramped up brightness scale with insane contrast that strains your eyes, or boring realistic lighting. they need to work on giving us more so our games can actually feel unique with the lighting system, same for foliage and what not, just feels like roblox devs in that department aren’t prioritizing these things

2 Likes

Please lead with that next time instead of giving a baseless “my code is optimized”, remember who you are sharing this forum with. Plenty of people would have said that without actually checking.

Regardless, thanks for the info.

2 Likes

I just used raytracing as an example of a situation they might run into where, because they’ve given us so much control, they can’t update the rendering pipeline because games use it for gameplay or artistic reasons.

For example,

If Roblox let games manually change values in the voxel grid early on because tons of people asked for it, then how would they have introduced Future Is Bright? FiB has a dramatically different lighting model, and at higher quality settings voxels are almost completely overridden by the shadowmaps. And, who’s to say that games are modifying the voxel grid to only improve lighting? What if they do it for gameplay reasons like highlighting a specific part of the map? How would that look with the new rendering features?

Not to mention, Roblox changed the voxel grid with FiB to be structurally different than how it was before, so they would have to introduce a very long beta period where tons of games will still end up breaking because they relied on deep engine access to an inferior lighting engine, but the developers couldn’t update in time because… who knows, they could’ve just forgotten, or scrap/delay the improvements entirely.

I completely support this and I too am frustrated when they try and fix bugs and then get massive backlash for it, like the animation blending change that had to be eased in over a year and where people were still unhappy because they managed to completely avoid every single “Check if your game is affected before the Opt-Out period concludes!”.

Unfortunately something I’ve started to speculate is that, the more people say “Don’t fix this, it’ll break our games!”, the more Roblox hesitates (after all you don’t want to add more fuel to the fire of “Roblox doesn’t care about it’s developers”), and the more games start using the bug, for example, Phantom Forces:

And when popular games start using bugs, that’s even worse for fixing bugs because tons of players will now say how Roblox broke their favorite game in a random update.


I wonder what would happen if you forced dynamic shadows on everything that previously used baked lighting on the game you played with raytracing.

EDIT: Uhhhh I thought I deleted this??? I tried to delete this 'cause I felt I wasn’t in the right state of mind (i.e., late in the night and tired) and was coming off the wrong way, but it’s kind of part of the discussion now, sooooo I guess it’s staying.


Extra responses to not fill up this thread.

Phantom Forces isn’t revolved around bugs (as far as I know), the developers just saw an opportunity at improving their game graphically and took it. I can’t explain why they decided to abuse an intentional limitation (because it’s not technically a bug), just that they did and now Roblox has even less of a reason to change the behavior of Glass to improve graphics.

Or you’re just being hyperbolic and sarcastic…

3 Likes