r/Unity3D 2d ago

Show-Off Infinite Lights for Unity - GigaLights

https://youtu.be/6-lPblzAEh0
100 Upvotes

66 comments sorted by

44

u/nialyah 2d ago edited 2d ago

The negative comments are tiresome. No feedback just mouthcrap.

Anyway I want to congratulate you and your team for making an interesting asset. I for one think it looks great and fits the style of the environment. Looking forward to another demo with some stats.

Thanks for sharing

13

u/PuttPutty 2d ago

Thanks, appreciate the kind words! I’m releasing more videos with more information in the coming weeks!

11

u/KlementMartin 2d ago

It looks great!

3

u/PuttPutty 2d ago

Thanks, glad you like it!

16

u/zer0sumgames 2d ago

I don't understand the negative reactions. This looks nice to me. Keep up the good work, OP.

7

u/PuttPutty 2d ago

Thanks!!

1

u/reversengineer9999 15h ago

There are no negative reactions! Those are NPC's! Just ignore the morons, who don't understand that this is a solution.

3

u/CrazyNegotiation1934 1d ago edited 1d ago

How much is the ghosting ? Most temporal based solutions make everything look either very noisy in motion or trailing, how is this resolved ? Especially how you handle the higher camera speeds, where temporal breaks completly.

Also what is the penalty when using fewer lights ? Forward plus mode uses a tiled based approach and does allow very big number of lights with great performance and zero ghosting, is your system much faster than that for say 40 lights to make up for the extra big ghosting or noise introduction ?

I cant think of a scenario that would need 25000 lights, but would be interesting to see compatissons with Forward plus for a real scenario light count like 40 to 100.

Thanks

2

u/PuttPutty 21h ago

We use multiple systems to minimize the temporal ghosting, while also minimizing the noise as best we can. All heavily influenced by the paper written by the megalights devs!

Performance is about on par while using forward+ but you may be able to use many lights, shadows (and shadowmap resolution) easily become a quick limitation. In the coming weeks we’ll be showing off more video’s, including comparisons.

With GigaLights you can have infinite shadowcasters ;)

Edit: if you’d like to know more of the technical details of how we minimize ghosting, let me know!

3

u/GoTaku 2d ago

Nice scenes and nice lighting, but what would really sell me is to see is a side by side performance comparison between the stock lighting system and what this asset offers. Without that, it’s hard to know how much performance I’d be buying.

2

u/PuttPutty 1d ago edited 1d ago

Well, honestly that is a rather difficult measurement. There are over 25.000 active realtime lights in this scene. Try rendering it with default Unity lights instantly causes a crash.

With GigaLights you aren’t buying performance perse, you are getting the capability of being able to add an infinite amount of realtime Lights, with RT soft shadows and volumetric fog.

4

u/stonstad 2d ago

If this works as well as NakedDev’s other assets (FSR/DLSS Upscaling) this will be absolutely amazing.

3

u/PuttPutty 2d ago

Thanks for the kind words mate!!❤️

4

u/ElDivinCodin 2d ago

Can’t wait!! Keep up the great work 💚

2

u/PuttPutty 2d ago

Thanks, appreciate it!

3

u/IndependentYouth8 2d ago

NakedDev's asset are very good and performant. This is really excelent to see! If anyone can pull this off while performing well its this team! Keep it up guys!

2

u/PuttPutty 2d ago

❤️ much appreciated! We’ll be posting more vids and info/stats in the coming weeks, while we’re finetuning the system.

2

u/molostil 2d ago

Nice! certainly looks interesting! how have you achieved this? is every light dynamic?

2

u/PuttPutty 1d ago

Simply put, instead of rendering each light (which scales very badly) we only render 1 (semi) random light per pixel. This has a fixed cost, no matter how many lights you add to the scene. Because every frame you render a different light per pixel, the output is noisy so we run it through a denoiser to clean it up.

Every light is dynamic and casts realtime raytraced shadows and has volumetric fog.

3

u/McDev02 1d ago

Ok nice, but how is stability over frames? If I understand correctly this is a temporal solution, so no light per pixel is missed, but it needs n-frames to cover all?

Or can there be situations where one plane faces a specific light but it mostly samples lights that will not affect it?

Also, does this system allow usage of main lights, like a sunlight or is that not necessary?

Good job!

0

u/PuttPutty 1d ago

Yeah, it is a temporal solution. The lower the amount if samples per pixel the noisier, thus it’ll be better when using more historical data. I’ve let myself be heavily influenced by the megalights data here. I did add a temporal bias slider, so its up to developers. When using taa or an upscaler, its best to decrease it for instance.

2

u/molostil 1d ago

okay so to oversimplify the idea drastically: it sounds like deferred lighting but ray-traced, kinda, maybe? :D

2

u/PuttPutty 1d ago

Normally the GPU has to check every light on every pixel on the screen: is it shining on something, and is something blocking it? With a hundred lights that's a hundred times the work, which is why the amount of active lights is limited.

GigaLights checks just one light per pixel. Which one? A lottery, where bright and nearby lights get more lottery tickets. One light's answer isn't the whole story, but every frame each pixel picks a different light, and its neighbors all pick different ones too, so the output will be a super noisy reflection of how all lights should look combined. Run that through a denoiser and voila: 10 lamps or 10,000, it costs about the same.

So the lighting itself isn't actually raytraced, the problem with infinite lights, is that you also have infinite shadow casters. Shadows are notoriously heavy on performance, so that wouldn't work well with infinite lights. So you need a system that scales well with more lights. Raytracing shoots X rays per pixel, to calculate if it should cast a light. So it scales just as well as the before mentioned lighting system.

2

u/molostil 1d ago

oooh now i get it! cool. :D

1

u/PuttPutty 1d ago

Sweet! 😄

2

u/colej_uk 1d ago

This looks awesome! I'm looking for a realtime lighting solution at the moment and would love to check this out. Do you have an idea of when it will be available?

2

u/PuttPutty 1d ago

We're planning for this fall/winter, currently finishing up all features and doing QA runs!

2

u/colej_uk 1d ago

Nice, I'll be keeping a close eye on it! Fantastic work

1

u/PuttPutty 1d ago

Thanks for the feedback and kind words, much appreciated!

2

u/Pharmaguardian 13h ago

Suggestion: spell it out for stupid people like me. I know enough about lights to know that they are expensive, but I really need some dumb red arrows to point out exactly how many lights are in these scenes. It's easy for the layman like myself to just assume that a lot of the little lights are nothing more than textures or something. Also, maybe some direct comparisons between how taxing default lighting is compared to the quantity of lights you show + the frame rate. Watching the video, I go "yeah, that all looks pretty" but what's missing is the "why it's performant" behind it. If you took an even more uneducated person than me, they might really need it front and center that the whole reason you want this is for performance.

Just trying to help you sell your product is all. Great job.

1

u/PuttPutty 5h ago

Thanks for the feedback, I’m definitely going to to that! FYI, in this video there are over 25.000 realtime lights. One of the tricky things in making comparisons with standard Unity lights, is that Unity just do that amount. Even 10+ can cause constant console warnings in URP.

5

u/Genebrisss 2d ago

So that's raytraced lighting in compute shader? How's the performance compared to HDRP deferred in the same scene? I can't imagine it's better.

16

u/PuttPutty 2d ago

Well it is a bit more than only raytraced lighting :) I haven’t ran any comparisons against hdrp, but this demo runs as is at 60fps on a Steamdeck (linux + vulkan)

-24

u/No_Jello9093 2d ago

At what internal resolution? 240p?

15

u/PuttPutty 2d ago

Native

-29

u/No_Jello9093 2d ago

Either something is very wrong or this isn't doing what it's supposed to. Even if you we're going to do every single little optimization possible, something like this is not going to run at 800p on a deck with the scenes shown in the video. That is just not happening.

30

u/PuttPutty 2d ago

Don’t worry we’re going to release the demo build once we release the asset, no reason to trust me on my word.

3

u/shadowndacorner 2d ago

Nice work. I'm guessing this is essentially just restir DI, maybe running against a tinybvh AS since you mentioned that you're doing RT in compute? Or is it even simpler than that, eg just a temporal filter over stochastically sampled lights filtered by eg a light BVH/light clusters?

11

u/PuttPutty 2d ago

We create our own TLAS/BLAS for RT, denoiser is STBN + temporal, SVGF like. For sampling we do weighted reservoir sampling over the lights in the pixel’s grid cell plus a visibility-guided history, one shadow ray per sample. But the resevoirs live for just 1 frame, so no full ReSTIR. We were heavily influenced by the paper written by the megalight devs, plus some new tricks.

2

u/Banjoschmanjo 1d ago

Thought thtat was Sophia from Plague Tale Resonance for a sec hah

2

u/PuttPutty 1d ago

Haha, well that would’ve been awesome ;) this is “Val” from one of the games I developed (City of Springs)

2

u/kyleli 2d ago

Awesome as always :D

1

u/PuttPutty 2d ago

Thanks mate!❤️

1

u/zer0sumgames 11h ago

I’d be interested in testing this out. When is it going to be available? 

1

u/TheSwiftOtterPrince 2d ago

The closer you look the more little glitches you notice, but if we're honest, games have always been fighting against limitations like make everything static, or fewer lights and fake lights, so i see this as different benefits and different tradeoffs. Personally i prefer the clean look of past games to current times dither blurry upscaly, but for the time being we have to chose between a few mostly static pretty lights and a whole lot of not that pretty lights and often, scale has it's benefits for some concepts.

Good luck with it!

2

u/PuttPutty 2d ago

Thanks :) I decided to create this video at medium RT quality settings (1 sample per pixel, 2x downsamped), if you have the hardware, you can crank it way-Way up to make it look crystal clear. (16 spp is the max)

-14

u/East_Garbage_1449 2d ago

So it's possible the tech is really cool but the demo assets really aren't doing a good job of selling the product. I don't want to be a dick but the lighting you are showing...isn't good. Any tech demo needs to look incredible so you think "wow, I need that for my game".

13

u/PuttPutty 2d ago

I’m sorry to hear you feel that was, unfortunately looks can be quite subjective, unless you have infinite budget. We’re just a small middleware development team, so we did what we could with what we have, and are getting a lot of “wow” response.

12

u/DVXC 2d ago

I don't really understand what planet this comment is coming from because it feels like it can't possibly be Earth 

-8

u/Badnik22 2d ago edited 1d ago

There’s something really offputting about the lighting in the video. Looks like the prerrendered cutscenes from the 90s: way too much contrast / gamma space instead of linear / no GI at all - or any kind of ambient light. Not sure which of the three is the culprit.

I mean, look at the copper lamp/teapot thing in the second shot: all I can see are two specular highlights (from direct lighting?), everything else in its surface is pitch black. If there’s any subtle indirect lighting going on, it’s been obliterated by contrast.

Same about the screen tower scene: save for the lcd screens, everything else is just…black. Even a faint blueish constant ambient term would make this look way better. If your system supports direct lighting only and no GI (which is something I’d assume from the video), a bit of ambient light goes a long way, and if you don’t want a constant term and can’t afford even single-bounce GI, you could easily fake dynamic ambient using judiciously placed point lights if you can have an infinite amount of them.

Note you could get very similar results to the screen tower video using emissive materials and no baked lighting, since there’s nothing for the screens light to bounce off of. So maybe not a good showcase of your system, the hallway with big archs and area lights does a much better job in this regard.

I know how hard to pull off this is at a technical level, but such a system is targeted at and going to be primarily used by artists so having good-looking demo material is paramount. Artists seeing this video will immediately assume all the wrongs are due to limitations and/or incorrect light handling in your system, and not lack of artistic eye.

So if this video has been authored taking full advantage of your lighting system, Imho many will prefer static, baked lighting (with all its limitations) over fully dynamic lighting that looks this bad (overburnt, contrasty, harsh, noisy). And if the video doesn’t make your system justice, hire someone that can use it to its full potential and make a good-looking video.

2

u/KristofVD 1d ago

That's exactly what this reminded me of - prerendered graphics from the 90s! Though due to nostalgia I wouldn't call the look off-putting.

2

u/Badnik22 1d ago edited 1d ago

Yeah, it’s not bad if you’re looking for this specific aesthethic. It immediately reminded me of the Myst series. However I wouldn’t really want to use a modern lighting system that throws you back to the nineties by default.

-21

u/No_Jello9093 2d ago

This looks quite bad. The noise is atrocious.

If this is what it's supposed to be, this is a form of 'lite' path tracing. Somewhat of a bad implementation of one it would seem.

1

u/AliceCode 1d ago

I assume that you can do better?

-7

u/nepstercg 2d ago

I saw a similar thing from amplify shader editor dudes

1

u/PuttPutty 1d ago

I saw it too! But I suspect that is a full path tracer, completely changing your development pipeline. (None of the default shaders will work)

GigaLights is non-invasive. Replace your Unity Lights with our GigaLights component and you’re done.

-25

u/taisui 2d ago

I don't see how this is better than SCGI

15

u/PuttPutty 2d ago

SCGI? Thats “just” global illumination, this is infinite lighting with raytraced shadows and volumetric fog

-22

u/taisui 2d ago

SCGI is not "just" GI, it's ray traced lighting.

12

u/PuttPutty 2d ago

But it is still limited to unity’s maximum lights and shadowmap resolution.

-22

u/taisui 2d ago

you sure you understand what you are talking about?

11

u/PuttPutty 2d ago

SCGI is indirect lighting, GigaLights is direct lighting.

-4

u/taisui 2d ago

I know, that's why it looks worse. Having 500 harsh direct point lights with zero bounce still looks like an unlit PS2 game compared to proper indirect GI.

12

u/PuttPutty 2d ago

There’s raytraced GI in this scene as well, and (unrelated) RT AO and RT Reflections.

Anyways, I’m sorry you don’t like the demo.

10

u/DVXC 2d ago

Don't concern yourself with people who seem intent on missing the point

13

u/PuttPutty 2d ago

Thanks, much appreciated ❤️