Fake Volumetric Lighting w/ Beams (Proximity Transparency)

I purposefully kept the same use as the original. You could easily change it to CollectionService if you wanted to.

Also, your suggestion was already mentioned earlier:

1 Like

it’s as far as personal preference goes

1 Like

Where do I put the script? and make the fake volumetric lighting to work

1 Like

Literally drops my games fps from 60 to 30 and I can get the exact same look with roblox’s
atmosphere :expressionless:

I personally prefer collectionservice because if you have streaming enabled, this will not affect anything unloaded- which for this script thats fine but for other cases it isnt
And I’m pretty sure if you use collectionservice, it still affects streamed objects
correct me if I’m wrong!

1 Like

I was completely unaware of this, so if that is the case, that’s very nice!

1 Like

Could you share how? As far as I am aware, Atmosphere is just fog with realistically-based parameters like Density, except the fog appears like the skybox. This is quite different to what both Volumika and this resource should be doing, which is to create localized “light shafts” instead of there just being uniformly-distributed fog that just… sits there.

From: “Roblox - Volumetric Lighting advanced implementation

3 Likes

I didnt even know volumika could do this because no matter how I used it, it just looked like plain fog, which is what roblox’s atmosphere is. I just thought it was straight up fog that wasnt affected by the sun in that way
also it puts large circles on the players screen and you cant remove it


without:

And the settings I used for my atmosphere, its blue but you can make it white
It looks very similar to the volumika fog
image

1 Like

elttob mentioned it in their blog that the implementation of it is rather ridiculous and best works indoors.
i recreated the same environment as it was in the blog and the banding was quite obvious and it looked ridiculous as expected outdoors.

We really do need an official implementation of it though. Poor mobile compartibility/performance is no excuse to this. It’s up to a developer how would they handle the multi-platform compartibility (to either propose changes for cross-platform or restrict it to PC users)

2 Likes

Instead of saying “This has horrid optimization”, you could give some tips and actual advice to make it more constructive criticism.

3 Likes

@Aerophagia @vvv331
From the experience of my friend, the reason Volumika is almost exclusively designed for indoor scenes is because it uses ALL OF Roblox’s built in voxel lighting data, which means it cannot differentiate between sunlight and light instances, which results in strange screen artifacts when outdoors or if the lighting diffuse is up too high. Although, there is a somewhat viable solution to reducing outdoor fog, and that is to increase the value of the LightInfluence.

1 Like

Yes it would’ve been nice. They also missed the memo that this is a solution to a already existing cheap and fake volumetric effect.

p.s. I’m currently seeking ways to hide the underpart of a beam. If anyone has any suggestions let me know. I think it’d be the best way of fixing beams pointing horizontally or on an angle where the observer is able to look directly down the beam as shown here:
image

2 Likes

Why would you purchase volumetric lighting if you thought it was just… fog… The artifacts can also be lessened with just a few settings; There’s dithering settings for a reason.

1 Like

Elttob already showed a proof-of-concept of stable 60fps in VR running on an old GTX card.

1 Like

You might want to edit your original post’s code to match this.

1 Like

I will now!

Any ideas or suggestions?

2 Likes
3 Likes

I will take a deep look at this when I have some time! Thank you

where should i parent this? i don’t know & if i put it in the wrong spot, it just doesn’t work at all.

You put it under StarterPlayerScripts under StarterPlayer.
Beams being affected by this script need to be named VolumetricBeam by default. Make sure they have a ancestor BasePart to check distance with.

For everyone else who may be wondering, I still plan on implementing the method @LerpSoh linked. I’m just not around for it at the moment.

does this mean i have to create a LocalScript?