Super Optimised Pixel Raytracer with Textures! (120+ FPS!)

CanvasDraw doesnt have multi-threading unfortunately. But it isn’t really needed for most resolutions and would be super complicated to implement for the API

Fantastic, outstanding, breath-taking work Ethan.
You inspired me to work on this as well and I’m so glad the goal is finally realized, thank you and great job.


this is actually so amazing, im loving the progress!!!

1 Like

Would it be possible to get the texture of a part or mesh and then convert it to what your doing for textures? I know it would probably shoot fps down a bunch, but you could probably preload them into a table by getting all descendants of the game that are surface appearances or mesh textures and then just add to a table with its texture id. Not sure that would work though, correct me if I’m wrong!

its a 100% possible. I’d just have to load an ImageData from a part with a decal or texture once and then add that to my textures list once. CanvasDraw can handle that automatically

it shouldn’t impact performance much at all

1 Like

Are there mirrors or glass? If not, add them (or maybe just the mirrors, glass sucks).

How did you get the pixel color of textures?

I did a transformation from the ray hit position on the part compared to the part’s position to get UV coordinates, then I sample a pixel colour from an image via my CanvasDraw module with ImageData:GetPixel(X, Y)

1 Like

This is super cool, I tried doing this like a year ago but couldn’t get over 10 FPS. Could you open source this?


Added custom texture/image support (via Texture instances)

Added a textured skyboxes! :happy1:


this is incredible, i’ve been watching this post for ages and you’ve improved so much!

1 Like

This pixel raytracer with textures looks GREAT! Nice job on it! How long did it take to create?

check this new one out, it might be better

I got a working prototype within a day. Getting textures to work took a few days. I’ve been working on this thing on and off for about 2 months or so

The API is a bit hard for me to understand at the moment, and im not sure how it will perform per-pixel

Ended up adding proper sphere projection for the skybox!

Any possible release-date? EditableImage already released

1 Like

this is amazing . would you ever considering releasing/selling this?

EditableImage is not yet released for experiences. There is currently no release date yet, but hopefully within a month or so