True Surface Reflections in Roblox! (Real-Time Raytracing)

I managed to make the raytracer faster by only casting one ray instead of two per pixel. This manages to add on an extra 8 to 10 FPS when rendering multiple mirrors. I can even run around 57 FPS when rendering 4 mirrors on performant mode! Big jump in performance and much more optimisation to come in the future!
(Might even make a new video of the new version of the raytracer)

2 Likes

Is this a client side render? This is pretty cool. I have been considering something like this with viewport frames and a WorldModel , but surfaceappearance isn’t fully implemented yet so it would still look awful

1 Like

Really nice stuff man. :+1:

Too bad that ray casts are handled by the CPU and not the GPU.

2 Likes

Yes. This is all client sided. All though i have been having too many problems with making true reflections with viewport frames, and there is just so must more raytracing can do (such as reflections in reflections, lights, shadows, etc)

2 Likes

What is your PC spec to reach this FPS?

Hey @Ethanthegrand14, nice project! I implemented a basic version of this while answering another question.

I just used frames for the proof of concept. Can you share the blurred white rectangle image (I’m guessing) you used for you pixels? I tried to come up with one in GIMP but they just ended up z fighting and looking bad on the mirror.

I just went to the toolbox and got the first result for “blur”. You shouldn’t experience Z-fighting if the blurred image is transparent and gets more transparent towards the edge. Ill share the image asset once I get a chance

1 Like

That’s what I did! but it started Z-fighting, but i guess thats because it wasnt transparent enough, Thanks A ton!

Hey ethan, can you please send the link to the image (like you said you would) to me via Pm or something?

1 Like

Please help, I spent 3 days looking for the blur texture, no results.

Try using shadow texture, like a circle, expand it a little bit to make square

You got any examples i could try out? searching the toolbox is somehow a pain.

None of these worked, i don’t really know how you could make them blurry :slightly_frowning_face:

See what I mean?? @Ethanthegrand14 , we need help… Please teach us how you achieved such an effect. How you can blur the guis with imagelables.

Fun fact, one guy made this in 2014.

I’m not sure if it would work at such a low resolution but you could try applying a blur kernel LearnOpenGL - Framebuffers (scroll to kernel effects)

I should also mention the only reason why it is blurry is due to a bug in GreedyCanvas, the tech behind this.

I didn’t use using greedycanvas for this project. I actually just used a bunch of image labels with a transparent gradient circle image to blend the pixels together

1 Like

Oh wait, Genius. Now I know how its done. Gradient Circles!

Thanks. Also @CoderHusk, He never used greedyCanvas, and for the basic version of what i have doesnt include it either. However that’s an interesting link you sent there, i checked it out.

People seem to be bringing this thread back again and I hate seeing the old version of my surface reflections in this thread. Here is a newer version of my reflections with far more performant and more realistic looking reflections

2 Likes

Can you please send me the blur texture image? or atelast tell me how its achieved?

Rn, im trying to do box kernel image blur for this thing, Since im using GradientCanvas (turns out that its very performant ngl), I can make a get pixel function in it and achieve the blur effect, somehow.

Are you going to release this anytime soon?