'Roblox' does REALTIME pathtracing w/o RTX [CrazyTracer Demo #3]

Crazyblox Guide 10 months ago

Description

My personal realtime raytracer project has now become a pathtracer!

To my knowledge nobody has made a realtime pathtracer in Luau/'Roblox' before, so I feel pretty happy about how this has turned out so far given the fact that this has been mostly educational for me.

All 16 cores are being used on my M4 Max to push what Luau (A high level interpreted language) can do.

Sadly as Roblox hard-limits the client to 3 threads only (I had to derestrict the thread limit via FFlags), this project can never be used for production inside of Roblox, but the next paragraph indicates a potential path for this project.

Why put 'Roblox' in quotations in the video title? I've been using this project lately as my medium for learning how to structure Luau code with the goal of making it as platform-agnostic as possible; this means minimising dependency on Roblox-engine functionality and routing any hard dependencies through my own 'DataModel' module when possible, improving the portability of the code. So really, the only thing Roblox provides for me here is a multi-threaded Luau environment and 'game.Workspace:Raycast()'.

I'm sure you don't need me to say the other underlying reason for what has motivated me to become platform-agnostic 😉

Notes for improvement:
Use blue noise to improve 1SPP visuals [Demo shows 2SPP, 2 Bounces],
Implement a denoising solution [Indoor scenes really need this],
Many many other things....

Literally after uploading I realised ray bounces were wrong 😭 I do be learning tho 😳
Fixed footage: https://youtu.be/2boW0qqKp8c

DevForum link:
https://devforum.roblox.com/t/crazytracer-raytracing-project/3419354

Music:
Ten Years Ago Today - 2011 : Mango