Is there a way to get SurfaceGui LightInfluence to perfectly match in-game lighting?

Hello! I work for a train simulation game on Roblox, building train models. Here is one set which is particularly affected by the issue I’m about to describe, a set of container-carrying flatcars.

These cars, and other cars like them, are typically covered in different numbers and markings, in this case a variety of numbers showing common container sizes, as well as the name of the railroad that owns the car.

To replicate this, rather than placing dozens of different invisible parts in order to cover the cars in decals, I opted to use fewer invisible parts with SurfaceGUIs on them. As you can see, once the SurfaceGUIs are color matched to account for the fact the metal material (annoyingly) darkens colors, it’s almost indistinguishable from decals (the large 53) and CSG parts (the stripe under the “NRSF” lettering)

However, the moment the cars enter shadows, night falls, or the lighting is less-than-ideal in any other circumstance, this consistency is ruined. The SurfaceGUIs, despite using LightInfluence, are much brighter than the surrounding elements, and thus appear to glow unnaturally. While in these images it’s hard to tell, if you open them in an editing program you can see that the lettering in the shaded picture is darker than the well-lit picture… but not nearly enough.

By increasing the LightInfluence to be greater than 1, it is possible to make the SurfaceGUIs look to be the same brightness as their non-SurfaceGUI counterparts in the shade, but this comes at the cost of making the SurfaceGUIs look darker than they should in well-lit scenes, and they still look too bright in darker scenes such as at night.

Does anyone know anything about this issue; whether there’s some “golden” value that is as close to perfect as possible, Roblox is planning on changing this functionality, or any good alternatives to using these? We would love to expand our use of SurfaceGUIs wherever possible to lower part counts on cars like these (very important for Roblox trains, which are plagued with lag issues due to their daisy-chained nature) and to implement features such as randomized numbers on our train cars (currently they have no numbers), but we simply cannot justify it currently with how problematic this feature is. Unnaturally glowing elements on shaded cars really break the illusion of reality in our game, and - at least in my eyes - ruin train cars that are affected by this.

If anyone has anything on this, I’d love to hear it, so that my work (and likely others’ too) can be held down less by something as frustratingly basic as Roblox not correctly calibrating their SurfaceGUI lighting.

2 Likes