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.

2 Likes

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?

2 Likes

Added custom texture/image support (via Texture instances)

Added a textured skyboxes! :happy1:


2 Likes

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