Custom Textured Ray-Tracing GUI in Roblox!

Hey all. Today, I have something pretty cool that I made in my spare time.
I present to you all my custom textured roblox ray-tracing GUI!

Here are some rendered scenes!

Main demo scene


(152s) (82030 frames) (600x600)


Dining table


(96s) (43758 frames) (700x700)


Demo scene of current materials


(53s) (48740 frames) (700x700)


Textured scene with grass and objects


(156s) (71164 frames) (700x700)


Demo scene of glass and tinted shadows


(53s) (33308 frames) (600x600)


Raytracing is nothing new to the world of computers. But a roblox ray-tracer is something that is pretty rare to see due to multiple reasons;

  1. Roblox doesn’t have an efficient way to draw pixels on to the screen
  2. Renderering images and gui objects uses the CPU instead of the GPU
  3. Performance issues
  4. Slow rendering times for high resolutions
  5. And many other limits and issues

Now even though my ray-tracer is just another one of the few ray-tracers on roblox, it is very powerful roblox ray-tracer that has many features that you don’t see in much roblox ray-tracers. Such as:

  • GUI frames compression (reduces the amount of frames being used by approximately 80-90%)
  • Colour compression (helps reduce the frame count from very colourful scenes with shading and textures)
  • Textures
  • Lots graphical procedures (such as: Reflections, Diffuse shading, Specular lighting, Texturing, Transparency)
  • Clean and high resolution renders

There is also a lot of missing features from this ray-tracer that I will eventually implement. Such as;

  • Lights
  • Refraction
  • More advanced textures
  • Soft shadows (maybe)
  • Anti-aliasing
  • Even more optimization
  • Removal of that annoying fisheye effect
  • Finding an alternative and more performant way to draw pixels on the screen instead of using a GUI

I am also open for feedback and any suggestions that I could implement to this ray-tracer.
Let me know what you guys of this project!

27 Likes

It does look slightly buggy, but other than that 10/10! Maybe you could make a tutorial? :thinking:

1 Like

Did you script it? Or whatever? If you did, can I see them in Roblox Studio and maybe use them with permission please?

Yes I did this script this. And I dont have any plans to open source this any time soon.

Alternatively though, you could use this as a benchmark to figure out how this works

or analyze my code here (it’s written in opengl shading language)

1 Like

Can I have it in Lua if you mind?

Can you share the GUI Compression, if of course you want to.

sorry for bumping

How you even make so big resolution, i make 128x64 and its render in real time for 0.5 seconds, and also what about raycasting function? i got so much lags with it, can you give me any tips please?

P.S. Sorry for necro