Jason Deacutis - Portfolio

Raytracing

Realtime Raytracer, Pathtracer, & Raymarcher

Raytracing, Pathtracing, & Raymarching all form images by simulating rays of light entering a camera for every pixel. They’re computationally expensive compared to traditional triangle rasterization, but they can handle much more complicated graphical effects. They are not necessarily challenging to program, but they are difficult to optimize. All renderers here were made from scratch in Unity running on a GTX 1070 Ti without the use of RTX.

/content/Shader/Raytracer/RT.jpg
Traditional lights are simulated as "point" sources, meaning they are infinitely small & cast sharp shadows (rare in reality). Raytracing can properly simulate light sources with shape & size, creating soft shadow penumbra.

Pathtracing is an extension of raytracing where every collision "bounces" the light ray. When a ray hits a mirror, a ray is reflected. An imperfect mirror defocuses the ray into a cone (blurry reflection). A white wall defocuses the ray across a hemisphere. These bounces results in a grainy image when too few rays are used, but given enough time the result is a near perfect simulation of light.
Notice the slightly blurry reflections, & indirect illumination of the sphere’s dark side from light bouncing off the ground.