Make SurfaceLights project light based on a part's geometry

With the current Future lighting technology, SurfaceLights do not project light based on a part’s geometry. No matter the shape of the part, the light projection is rectangular.

As a developer, this makes it difficult to create scenes in which the lighting is supposed to be projected in a non-rectangular shape.

I personally ran into this issue in my game where I wanted to emit light upward from the surface of a tile on the floor, but because it is a union, the shape of light was not accurate to the part’s geometry, which made it look bad.

image

I would think that a SurfaceLight projects light from the visible surface of a part. Instead, it is projected from the full bounding box of a part, even though a large portion of the space where light is being projected from may not be visible.

The lighting technology already has the ability to project light through shapes based on geometry, but if this were able to be done from a part in the first place, it would allow for developers to create more immersive scenes with Future lighting.

image

If there a negative performance impact for a feature like this, then perhaps a property could be introduced to SurfaceLights that determine how the light projection is rendered, much like how union collisions are handled with the CollisionFidelity property.

As a side note, I believe if this feature were implemented, developers could use meshes to project shapes of light onto surfaces, which is similar to a highly requested feature.

60 Likes

I’d like to bump this as it hasn’t yet been implemented, and is annoying as ever.

If I have a union and use SurfaceLight, it will use a rectangular surface which is completely different from the shape of the unioned part.

Another example, where the shape is a ring. SurfaceLight still uses the full bounding box.

Considering this was suggested 3 years ago I would’ve loved to see it implemented by now, especially considering it can be done through shapes.

1 Like