How can I recreate beam using a flat plane mesh that is doublesided but the light influence actually work?

You can write your topic however you want, but you need to answer these questions:

  1. What do you want to achieve? Keep it simple and clear!
    I want to use flat plane mesh for the replacement of beam instance because its light influence doesn’t work on light source if the future lighting technology is used.

To be more clear, says a plane is always facing the camera and if the flat plane get close to source light 2 things will happen, if the source light is in front of the flat plane mesh it get lighted, if it behind it doesn’t get lighted. So to fix this, I inverse the normal using CFrame but then the problem is inversed if light behind the flat plane mesh it get lighted if it in front it doesn’t.

I guess it due to where the normal is receiving light from.

  1. What is the issue? Include screenshots / videos if possible!
    Flat plane mesh doesn’t react to light on both surface even if I inverse the normal using CFrame and enabled double sided.

  2. What solutions have you tried so far? Did you look for solutions on the Developer Hub?
    I don’t think there anything on devhub that can help me.

I have try using particle emitter but it cost 4 tris it does react to light on all angle but it is limited to voxel lighting technology.

I have try using billboardGui it cost 2 tris the same as Beam so that nice but it doesn’t react to light on certain angle it probably because it backside is never render and because it always face in front of the camera. I’m also scare that because it always face the camera I might create unnecessary lag to face the camera while it doesn’t need to.

I have try using surfaceGui it cost 2 tris if flat plane mesh is transparent but since it only able to appear in front of the surface and doesn’t warp around the flat plane mesh mesh so it always face it in front of the camera so the same problem for billboardGui never react to light on certain angle, although the always face to camera behavior is gone which I haven’t test if it will lag.

I have try using decal it does warp around the flat plane mesh it cost 2 tris but it the same when the flat plane mesh isn’t transparent.

I used to have a prototype where I would limit the angle on the flat plane mesh and if it get over that angle amount it get turn to the other side but I just realize how slow it react time is and how un performance it will be but the testing was on multiple flat plane mesh, I have created a group of flat plane mesh and exported it before for RenderFidelity option but I guess I was too focusing on other thing that I forgot.

Oh also scaling the flat plane mesh so that it kinda tilted while its normal is inverse using CFrame kinda show light on both of it surface but it is cut off in half…

Use OpenGL Graphic. Someone please post an engine bug report about light not casting on both surface when using Vulkan, Direct3D11, Metal.

Reproduction file:
Graphic Engine Bug.rbxl (50.5 KB)

OpenGL:
Front:

Back:

Vulkan, Direct3D11, Metal:
Front:

Back:

Seem like an intentional design since OpenGL uses voxel even when lighting technology is set to future

Just reverse the uv and use a surface appearance to fix the light being eaten in half.
nvm it doesn’t work with all orientation of the plane and there this weird light spectacular also.
it wasn’t the uv I think it was the normal map with the only texture is all blue blue like max out to 255.

Tbh honest this would be better if it were to work with billboardGui originally. Meshes or Part are just ways to laggy even with instancing. I guess I’ll wait when that day come.

Eh, I guess I’ll just combine it with billboard gui, an array of plane put in a special mesh that has one axis of scale property flipped, and add a decal so that lights influence the back of it. I think that doubled sided cost double tris than the original mesh even though the render info in the scence told there still only 2 tris ( if the mesh using is plane ).

Oh, I forgot beam got fixed.