Luma Light | Volumetric Lights Plugin

LumaLightIconV2Medium

Luma Light

Luma Light is a Plugin that lets you add a realtime Volumetric Lights in ROBLOX.
But you maybe asking: What are Volumetric Lights?
Volumetric Lights (also known as “God rays”) is a 3D computer graphics lighting technique that let’s you see light beams in 3D space. An example of volumetric lights is seeing sunbeams shining through a window.

Get plugin here!

Features

  • Beam based Volumetric Lights
  • Billboard based Volumetric Lights
  • Particle based Volumetric Lights
  • Trail based Volumetric Lights
  • In-Studio preview
  • In-Game rendering
  • Easy configuration

Why should you care about it?

Default ROBLOX lights look flat, you can’t see them if they are not intersecting with geometry.
Volumetric Lights fix that by adding a fog, which will cause light scatter, hence you’ll be able to see light.

Motivation

Getting hands on volumetric lights for average developer is hard. There wasn’t a lot info on how to do it. That’s why i decided to start working on a plugin that would let user easily add Volumetric Lights and for Free.

Examples

These example used these settings in Lighting
settings

Outdoors

No volumetric lights

Beam based volumetric lights

Particle based volumetric lights

(Billboard based volumetric lights don’t work correctly outdoors :frowning: )


Indoors

No volumetric lights

Beam based volumetric lights

Particle based volumetric lights

Billboard based volumetric lights

(EnviromentDiffuseScale set 0)


(EnviromentDiffuseScale set 1)

How to use it

Step 1

When plugin first opened, you will be prompted to allow this plugin script injection, you should allow it. Don’t panic, Luma Light automatically tries to insert a script that will render volumetrics when Play Testing game.

Step 2

After you allowed script injection, open the plugin itself. You should see this panel.

image

Step 3

Click on check box with Render Volumetrics in order to enable Rendering.

image

Step 4

Change Rendering Technology to preferable (for this guide we will use Beams)

Step 5

Press on Setup Lights button. It will automatically set certain settings in Lighting so the fog will be noticeable.

Note: You should press on Setup Lights everytime you change the Rendering Method in Technologies

Step 6

Add some lights in your scene (if you haven’t already done it), set lights Brightness property to 3 or higher. You can also set ClockTime to 0 in Lighting in order to have a night time.

After you done all of these steps, you should have something like that:

Note: You may need to adjust Brightness, Ambient and ExposureCompensation to get better results

Important!!

The performance isn’t the best when using Beams and Billboards and i don’t recommend relying a lot on Volumetric lights. If you plan on using it in game please leave it as option for users!

Thank you for reading this post!

If you find bugs :bug:, please report them here.

23 Likes

The fact that this is free is actually crazy lol. Recently thought of volumetric lighting as they looked pretty cool but never found a way on how to set it up.

That’s to be expected. Can we get a performance drop (image) of it?

Overall, I like this plugin and have a question, how long did it take you? It’s a pretty handy plugin!

Elttob’s article: Dynamic volumetrics in Roblox - Technical Fluff
Video I found: https://www.youtube.com/watch?v=f5QrVTyM7e0

1 Like

I can see how this could help me with making realistic games! I’m not a builder but this seems pretty cool!

Thanks! It was my goal to get this tech to many people as easy as possible. Getting the volumetric lights itself is easy, it’s just figuring solution itself is very hard.

Overall, I like this plugin and have a question, how long did it take you? It’s a pretty handy plugin!

It took me a few months, mainly figuring out how to render the fog. The information was very scarce (or it was just hidden) when i started.

(Also i re-read Elttob’s article 15 times on how he did his Volumetric Lights)

Can understand the pain lol. There’s not many advanced developers talking about volumetric lighting on roblox. You’d really have to go out of your way to other watch other videos and understand this.

(bro’s wording and sentences are insane)

Can we get a performance drop (image) of it?

Certainly! Here are result of my tests.
Test were done in 1080p using GTX1050, Graphics Level 21, Technology set to Future.

Settings in Luma Light:

  • Layers: 100
  • Thickness: 1.0

Enviroment Lighting only

Outdoors Day time/Night time

Render Method FPS
Beams 23
Bilboards Broken Outside
Particles 81

Indoors Day time/Night time

Render Method FPS
Beams 55
Bilboards 48
Particles 82

Enviroment Lighting + Lights + Shadows

Outdoors Day time

Render Method FPS
Beams 21
Bilboards Broken Outside
Particles 58

Outdoors Night time

Render Method FPS
Beams 24
Bilboards 20
Particles 60

Indoors Day time

Render Method FPS
Beams 55
Bilboards 45
Particles 80

Indoors Night time

Render Method FPS
Beams 52
Bilboards 46
Particles 80

In terms of performance Particles perform best. It has something to do with GPU instancing and the fact that there is very little data being transferred to GPU.
Beams and Billboards on the other side cause more lag, it has to do something with overdraw and having too many transparent objects stacked on top of each other + positional data being transferred to GPU. Ofc i’m simplifying things, these methods can perform better depending whether you are using Future, ShadowMap or Voxel and how many light sources you have in your scene.

So my personal recommendation is to use Beams and Billboards at night time and in closed spaces. They can give you much better visual quality compared to Particles.
Particles work everywhere without significant FPS drops.

2 Likes

I think Particles work just fine! Maybe it’s because of the fact that particles are not much visible at night time which is why you might use beams or billboards. But yeah, thanks for the performance chart!

Luma Light | 1.1V

Hey, Plugin is updated! Bringing new features on the table.

Changes:

  • Added new Rendering method for volumetric lights.
  • Added ability to change LightEmission on volumetrics.
  • Fixed issue where there is one or more duplicate of last beam. (This could cause performance drops, but not anymore)
  • Made panel little bit bigger.

The new Trail Renderer

After i published the plugin, i wasn’t satisfied with the performance of beams and billboards. They can give you good visual quality at cost of huge FPS drops. Particles are a good alternative to these two methods having better performance (2.5x or 3x) compared to beams and billboards, but the effect uneven and you were left at the mercy of physics.

But! With this update you can now get the same effect (as beams) and still run at 60 FPS!
Trails surprisingly share same properties as beams and behave similarly as beams, but they render twice as fast as beams (for some reason).

If someone knows why transparent trails are much faster than beams, please explain it to me :smile:


4 Likes

Finally! i’ve been wanting something like this for AGES!

my plugin is not opening, when I click in the icon nothing happens

This is absolutely incredible! :clap: I’ve been trying to create volumetric lighting for a long time, but every single time I tried to create it, I failed! It’s very difficult to find information on how to create volumetric lighting in Roblox. I first learned about volumetric lighting from Elttob’s YouTube videos. The only volumetric lighting plugin for Roblox that I know of is VOLUMIKA, but it is paid and quite expensive. :sob:

Excited to see you release Luma Light! Thank you so much! :white_heart:

Hi NOPESbucket, a quick request to make the part in the camera locked so the selection box doesn’t show while I’m working. Would be great, thanks. I can lock it myself, but I work in multiple games at a time, testing different features in every game but with the same lighting technology. Would also be very useful for players who don’t know how to avoid this type of situation.

1 Like

Luma Light | 1.2V

Hello again! It’s been a while since the last update.

Changes:

  • Full code refactor of plugin, there should be no regressions.
  • Fixed bug where attributes didn’t updated in VolumetricScript.
  • Fixed properties not being saved (because VolumetricScript attributes weren’t updated).
  • Small UI changes.
  • Fixed tiny memory leak in plugin code (whoops).
  • CamPart is now Locked avoding highlight in Studio (which was in patch 1.1.1 that i didn’t documented). Shout out to @labr_nth for his request.
1 Like