Xision Path Tracing Engine

This is a project I’ve been working on a long time and i would like some opinions

Basically i have made a path tracer that i have been working on for some years

Heres some screenshots:

They’re all rendered on 1024x576 pixels, 32 samples and 5 bounce light

Features:

  • Direct Lighting (Sun Light)
  • Indirect Lighting (Global Illumination)
  • Terrain support
  • Emmisive Light
  • Reflections
  • Refractions (sorry i didnt show any)
  • ACES tonemapping
  • Accumulation (the longer you wait the less noisy)

Plans??

  • A better upscaling technique
  • Denoiser
  • Probably PBR or just textures

and idk what else

12 Likes

Its really really good, i’d never be able to make this in my lifetime but i would definitely love to see the denoiser and textures added soon!!

3 Likes

I came across your videos on YouTube recently, so I’m stoked to see that you’ve made a post here too!
Keep up the good work, always happy to see more Luau-based rendering solutions.

4 Likes

really cool to see another path tracer on the platform. honestly shows the talent of some developers.

ive been working on one on and off for about 8 months now also with help from slel and a few others who have worked with him. still planning on some stuff, like refraction, and denoising

one issue i have tho is with my sun light, where currently i check if the dot product between a bounced ray that goes into the sky and the sun is less than the suns size, which is a really meh approach. so i wanna ask how you went around it, especially for the soft shadows from the sun. the method i use does achieve a similar effect to what you have but the shadows are far softer and take way more samples to render

3 Likes

Hi, the way i did it is by casting a ray directly to the sun (using Lighting:GetSunDirection()) and then i check if it hits anything, if it doesnt hit anything then you know that its lit up by the sun.

And the way i achieve the soft shadows are done by offsetting the rays directions very slightly. This can be achieved by lerping the sun direction to a random direction by a very small amount (i think mine is 0.05).

Its probably not the best approach but it works.

thx to Sle_l and the others for making RADIUS path tracer, since my path tracer pretty much uses their refraction system. (I will probably replace them with my own later)

and also thx to Ethanthegrand for making CanvasDraw, since this project uses CanvasDraw to render the pixels

Heres some refractions:

Heres an indoor scene:

Both are rendered in 125 samples and 5 light bounce
And both finished in 272-286 seconds

(i think compression killed some details, it had more colors in the original image)

3 Likes

thats exactly what i used to do but my shadows would be several studs shorter than what they should be

2 Likes

i actually managed to get sun shadows working properly, where the suns size affects how soft the shadows get

sun size of 0.95

sun size of 0.998

(right now im just using the dot product to get the suns size, so thats why shadows are softer on smaller numbers)

3 Likes