RADIUS: Native, Physically Based, and Performant Pathtracing [Open Source!]

Not really, but if I have to guess, the demo will be released sometime next week. The full public release would not be until later though; I plan many things for this project.

Making the bloom shader is taking the most of my time right now. I have already finished most of my todo list for the demo release, but because I chose the hardest way to implement bloom, it might take me an extra week to implement. For some reason I chose unity’s bloom shader implementation, which is only really used in AAA games.

It does not support particles… yet

1 Like

this will be roblox in 2013 ‎ ‎ ‎ ‎

1 Like

you could leave bloom for the full release if its been that difficult to implement

I just finished most of it yesterday actually! I stayed up till 3AM that day and I could’ve sworn that I felt my brain melting. It’s mostly lack of documentation on how it’s made.

This is not what you’ll be seeing in the demo release. I’m still fine-tuning it and optimizing it.

UPDATE: I’m going to ditch this method for now, but I will be using a “dummed” down version of this bloom. Once I feel like I completely understand how modern bloom works, I will rewrite the bloom shader. This is how it looks now (and i’m still making it better):

before/after

1 Like

Thanks for sharing this! The ability to roam about in realtime to orient your camera for the right angle is nice for helping you get the right angle beforehand, and it does give me a good impression for the performance of this.

The only other pathtracer I’ve been aware of before this thread was made is by Vorobeyy (They don’t seem to have a presence on DevForum?) so this adds to the library of pathtracers on Roblox. Neat.

Looking forward to see more progress on this :+1:

2 Likes

Hey everyone!

Big announcement now! I’m finally releasing the demo for radius. The demo will not be downloadable and it’s only going to last 7 days. Try it out! - RADIUS [Pathtracing Engine] - Roblox

2 Likes

ok well its a little more pixelated than advertized

You can adjust the resolution using the buttons on the top!
{4ABC5AE2-AD60-434A-B202-FC623DAEBC99}

The skyboxes are pixelated as shown here though to save memory, and I’m doing a 4096 sample render here whilst roblox is minimized for context.

1 Like

Wow it works faster than I expected!

Specs:

Processor: Intel(R) Core™ i7-4710HQ CPU @ 2.50GHz, 2501 Mhz, 4 Core(s), 8 Logical Processor(s)
Ram: 4GB DDR3
GPU: None.
I know it’s a potato but woah Radius does work on this!

Renders!

Test place , 320x167, 512 samples, rendered in ~6 minutes, 5 bounces. All rendered natively.

Tried to recreate the crossroad scene with my potato, turned out beautiful even without PBR:

Crossroads , 533x279, 256 samples, rendered in ~7 minutes, 5 bounces. All rendered natively.

It works really good with an average of 14 fps on my potato with the lowest res. The max I was expecting was 5 fps but you nailed it! Although I couldn’t know how fast/slow it would render PBR in Crossroads. In conclusion this works wayy faster and better than your previous raytracer, which couldn’t run in realtime and took 4 - 5 minutes to render a 100 resolution with 2 samples. Also, sorry I couldn’t record a video on my laptop.

Here are a few questions:

  • How much bounces does it render?
  • Did you use image labels for the previous raytracer?

Great work on this! :+1:

4 Likes

This is better than any “diet” ray tracer that I made, because this is an ACTUAL PATH TRACER. I do have a question, does this (or will this) support mesh parts?

1 Like

Yes it does. You can see it from the renders in the orignal post.

Each sample has the ray bouncing 5 times, so 6 raycasts in total (excluding refractive materials).

No. It does not use frames. As I annunciated, this uses OSGL, which itself uses EditableImages.

You mean its predecessor? The old one does use frames.

The devforums isn’t really made for short replies like this, it really clutters the post. Instead, join the OSGL discord server where you can ask as much as you want! I’m pretty much always online there.

1 Like

This is not a resource if you didnt provide anything. It should be on #help-and-feedback:creations-feedback not here

That’s what the original post was tagged as, but it seems like @nix102on suggests otherwise? Not really sure what to tag it anymore; this is my first “real” post.

I’m going to research the technicality with what this should be tagged as later.

this is stupidly impressive. great job

ive got my own path tracer going along and i just wanna know, how did you get the transparency working? especially with the refraction going on here

ive been rlly stuck on that for a while now, changing the transparency property i have just makes any part with it more reflective

1 Like

I’m actually planning to improve transparency now, allowing for semi-translucent objects. Currently, the refract function skips a step. What I mean about that is that with the car, the headlights inside is completely invisible where there should be a light…

It’s really simple actually! I’ll be documenting everything once I open source the path tracer. Refraction is something that I did not really have any documentation to base off of so I can’t link any resources here; I literally just pulled out laws and formulas from my physics class and just applied them here :joy:

so what im getting is that you just place a ray on the other side of that shape so it blends with colours behind it?

honestly did think of doing that but i was being dumb and couldnt figure it out

anyways imma try implement snells law when i get transparency figured out


imma also try messing with gloss and texture sampling at some point after ive figured out actors and coroutines. takes like 1 second per sample on a 120x120 image so its 12 seconds per frame meaning i cant even have my own real time enabled or my pc will quite literally explode

the only reason it doesnt crash right now is cause i have 1 task.spawn function that separates each row into a line scan

(also not to mention its gonna be hell to add cause all my code is mere guess work for all 800 lines :skull:. i think imma get to rewriting it at some point and will hopefully get an id that persona will actually register so i can use editable images instead of 21k frames. the one i do have doesnt register at all even tho its a legal id)

You don’t need an ID to use EditableImages if it’s a local file. I develop OSGL and I’m not even ID verified myself LOL