Volumetric Lighting Plugin [NO LONGER UPDATING]

DISCLAIMER:
I really don’t recommend using this in any actual games. I made the plugin easier to edit but it’s still a disaster. Again, this is not designed for any games, please don’t place this into your game and expect good performance. The mesh is huge.

Hello there! Throughout my time on Roblox I’ll commonly think about something that I really enjoy in games. Volumetric Lighting. I saw that there was literally nothing out there for making realistic mimics of this and I decided to kill my brain in what has to be one of my favorite projects. Anyway, here are some examples of it.

This trick works best with darker games & enclosed areas.

I’m making a sort-of demo/early access version of it if you wanna test it. (This was my first time making a plugin so let me know if there are any issues)


THERE IS SOME ASSEMBLY REQUIRED
Because this takes advantage of the way that shadows work with mesh, you need to change the MeshId to the MeshId of the SpecialMesh that is placed inside of the mesh. To find the mesh, go to ReplicatedStorage and search for a meshpart with the name “Filter”.

HOW TO USE INTERIOR CHECK
When you apply the filter for the first time with “Interior Check” enabled, a folder will appear in replicated storage. Create parts and scale them to the size and positions of the areas that you want the filter to be applied, once you’re done place the parts in the folder that was created in ReplicatedStorage.


Features
Capsture

  • Auto-Shadow
    Automatically sets all lights in your workspace to have shadows
  • Performance
    Togglable to put emphasis on performance or quality
  • Minimum Graphics Quality
    How high your graphics need to be set to enable for this to work
  • Density
    How dense the lighting is. More density = less performance
  • Night Check
    When enabled only applies the filter at night (overridden by Interior Check when inside a room)
  • Interior Check
    When enabled only applies the filter in a room (overridden by Night Check when outside a room at night)

In order to reduce dropping frames I recommend:

  • Removing overlapping lights

  • Keeping your game neat and clean

  • Setting the performance option to Performance

  • Setting the minimum graphics quality to 10


Please remember this is early access please tell me of any and all issues/bugs with this!

Version 0.4
Special thanks to @Sdtrydr for showing the boundaries with shadow and @tinysam2004 for helping with the filter checks.


CHANGELOG:
The first update is out! This update includes a new feature: Density
The density option allows you to change the density of the filter. Less density = better performance.
Along with that we have:

  • Fixed UI
  • Fixed filter inconsistencies
  • Fixed horizontal ray appearance with vertical rays
  • You no longer need to change the filter’s size


V0.3 is out! This update just contains bug fixes!


After a long time I’ve finally updated the plugin again! This update includes:

  • Two new options: Night Check & Interior Check
    These options allow for you to control when the filter is used (scroll back up to learn more)

  • A new filter, It’s a slight variant from the original that helps to remove horizontal lines.

  • Bug fixes

  • The filter now saves every time so you don’t need to go in and edit the mesh every time you apply.

137 Likes

Now this will make Roblox games more lit. Hope to get your plugin in early access

15 Likes

Beautiful look. It’s going to do a lot to many games on this platform. Thanks for sharing this. I do have a few questions.

Is this using Shadowmap, Voxel, or Future technology? If it’s not using Future, how does it work with that?

What are the performance implications to this?

How does this work on mobile?

Would this be recommended for a production-level game?

Thanks! :slightly_smiling_face:

9 Likes

Hi! Thanks for replying!

This version uses future, meaning that it can’t be released on any games until FiB is released. However this helps me further the quality and performance on this allowing me to release it faster.

This version certainly requires a higher-end PC in order for it to run smoothly, but that’s something that I’m working to fix, and will be updating this tomorrow with a new feature that allows you to control the density of the filter.

This currently doesn’t work on mobile because mobile will not be using future engine, in the next update that I add I will be disabling it for mobile devices.

Because this is super new and still has a lot to be worked on, I don’t reccomend trying to use this in any actual game yet, just like how FiB isn’t ready to be released because it has a lot of problems that I’m working as much as I can to fix.

I only reccomend actually using this on darker games with less lights for a few reasons:
Currently on games with bright ambience it looks almost like there’s a lot of horizontal rays that look very weird.
Going into a room with lights that have mutliple different colors at a brighter color blends them together and it looks washed out.

6 Likes

The first update is out! This helps a ton with some of the problems mentioned in the post above.
Make sure to set this topic to Tracking to be notified of new updates!

1 Like

got an error when I try to load the plugin (on the button of the plugin)image

2 Likes

Just fixed the issue, update and restart the plugin. It should be fine from now on.

3 Likes

Hey! For some reason, i don’t have the density options. Do you have any idea why?
Also, when we close the window we can’t get it back.
nvm i just udated it and it works!

1 Like

Thanks for the feedback! Let me know of any other problems.

1 Like

I tried applying it to the game, but i didnt see anything so i undid a coupla times and i got this in the output idk why lol

What is the mesh thing you are talking about in the replicated storage, and how do i find it?

I jump to quick to conclusions. My smoking rtx 2060 super salutes you with all its warmth lol

I feel like it only works with point lights

3 Likes

Hi! Thanks for the feedback, if you read my post there’s a MeshPart in ReplicatedStorage named “Filter”. Yes this is quite taxing! In the next update I’ll be replacing the filter with one that is a lot less consuming. I understand how frustrating this may be and I’m doing my best to fix things. It does only work with point lights and spot lights because surface lights don’t have shadows. If you read my second post it explains in more detail why I don’t recommend using bright games, or games that have a lot of overlapping lights. Don’t worry though, I am finding solutions to these problems!

1 Like

I don’t want to look dumb here, but what exactly is Volumetric Lighting? Is it just another way of saying Realistic Lighting?

1 Like

The idea behind volumetric lighting is to give all lights their own rays, not just the sun. Because it’s not actually possible in roblox, this is simply a mimic of it.

@katclap Thank you for getting back to me so soon! Will Volumetric Lighting lag my games (kind of like using a lot of meshes)?

2 Likes

Right now it is pretty consuming, but that’s something that I’m working to fix before I fully release the plugin.

2 Likes


i dont notice anything different am i doing something wrong or is it the plugin. I just got it rn

1 Like

it works better in dark environnements like night

1 Like

I found this snippet of code in the plugin using a web extension, can you please explain what it actually is, because I’m not sure if I would want to install this piece of obscure code anywhere near my games.

(it seems like you are getting RunService and then changing the quality level, which to my knowledge, has a security context higher than client code)

4 Likes

Hi! The reason it looks that strange is because the string was encoded to hexadecimal to make the code less readable, if you convert it you’ll simply get “RunService”.
It does not change the graphics quality, it simply checks if the graphics quality is equal to or higher than the set minimum required graphics option.
It also sets the position of the filter to the camera so I put it in RunService although I’ll be updating it to check any time it changes.

Your game may not have the filter in place is because scripts can’t change the MeshId even in plugins, if you read the post you’ll find a section that explains how to set it up!