CrazyTracer-OPEN is an open source release of an archived version of CrazyTracer, with the aim of removing the painful first steps of setting up a raytraced rendering solution and giving that springboard to developers to tinker with and contribute to.
I have released this due to a few requests from developers via CrazyTracer and other spaces, with them looking to implement into their own projects, or out of curiosity to help improve the speed of their own renderer.
CrazyTracer-OPEN is fairly performant for what it is thanks to the various techniques in place to distribute what is already a limited compute budget by running in a LuauVM within Roblox:
-
Ordered Grid Supersampling [OGSS]
Helps reduce artefacts at the cost of shared & increased pixel sampling -
Configurable Interlacing Sizes
Halves performance cost every step up by rendering 1 line out of a specified group size.
Can increase artefacts but the first step can be mitigated by OGSS. -
Half Shading
Halves the specified horizontal resolution, improving performance by 50% -
Foveated Shading
Halves the specified horizontal resolution outside the midpoint of the rendered frame.
This could be seen as a less intrusive form of half shading.
Any combination of interlacing, half and foveated shading will improve renderer performance even on the most constrained of devices.
There are many opportunities for further optimisation (Especially via multi-threading) and addition of features by the community, so there’s a lot of room for this project to grow beyond what you see it initially provided as thanks to the provided GPLv3 license.
This rendering solution does make use of the EditableImage API purely due to the raw performance gains over other abstracted methods - it might be viable for future contributors to provide an alternative if demand is high enough.
Links:
Uncopylocked Demo Place: CrazyTracer-OPEN - Roblox
Free Roblox Model: https://create.roblox.com/store/asset/136176178143668/CrazyTracerOPEN
[Open to adding more links upon request]