Roblox Raytracing with Caustics

I made this cool raytracer in roblox that has HDR environment lighting, textures (PBR included), glass physics, caustics, and more. If you let it run for a while most of the noise goes away similarly to other engines. Here are some cool renders I got from it:




20 Likes

First the jello sphere… Now this… HOW ARE YOU MAKING THINGS LIKE THIS IN ROBLOX?

7 Likes

This is really impresive to do in roblox!

Amazing, looks like a professional rendering system!

I don’t know what else to say because I have no idea how complex rendering with reflections works.

This is absolutely amazing, and exactly the reason why we NEED GPU programming in Roblox!
Imagine this possibly running in real time!

3 Likes

I swear this looks like something that was made in Blender.
It looks very cool, I love the little caustics and whatnot, it’s so pretty!

This looks sick! It’s so cool to look at.

This is some crazy work. Keep it up

How did you make this? Did you used UI frames?

He used an EditableImage to display the pixels, but the math and algorithms behind the entire rendering process is extremely complex.

2 Likes

its possible at very low res but its noisy. Roblox wont likely ever allow users to utilize the GPU for compatibility reasons, but it should be allowed for desktop only games. I havent used parallel scripting yet, so that could be an option to increase speed.

What should I read on or study to get as knowledgeable as you?

This and the squishy ball demo are super cool

I really do hope we eventually get support for GPU programming for at least desktop-only games.

That could definitely greatly increase the rendering speeds!
How fast is it right now may I ask? This might have some great potential.

Its all about how many samples you want. 1 sample takes about 10 seconds at 512x512. So obviously you would have to hack it a bit, cut some of the features, and accept a lot of noise.


Like this screenshot is about 3 samples per pixel. Its very noisy, but is still coherent. Excuse the stretching artifacts, I think thats just image compression.

1 Like

Even that at 512x512 in real-time (30 FPS is acceptable) would probably be a great milestone for CPU raytracing on Roblox!

Not sure how much multi-threading will speed it up though — it highly depends on the way you implement it, and the way the raytracing currently works — I’d really love to see it implemented though!