pathed icon indicating copy to clipboard operation
pathed copied to clipboard

Pathed: An educationally-motivated physically-based path tracer

Pathed

Pathed is a path tracer written in C++ that I have been working on to solidify my understanding of rendering techniques and algorithms.

Some of Pathed features include: Lambertian, Oren-Nayar, Beckmann microfacet, Mirror, and Glass scattering models; multiple importance sampling and next event estimation; environment maps; and heterogeneous volumetric scattering.

My most recent project has been attempting to render Disney's Moana research scene. So far I've added support for B-spline curves, ptex textures, and hierarchical instancing. Currently I'm working on optimization, bug fixes, and supporting the Disney BRDF.

Rendered Images

Current WIP: Moana scene


Glass material, homogeneous absorption, and environment lighting


Microfacet reflection modeled with Beckmann distribution


Heterogeneous volume scattering


Heterogeneous volume scattering


Tungsten's material ball with absorbing dielectric material


Tungsten's material ball with rough dielectric material


Volumetric caustic in homogeneous medium


Bunny with Bezier curve fur


Cornell box with mirror material


Veach MIS scene


Traditional Cornell box

Build Instructions

> git clone https://github.com/chellmuth/pathed
> cd pathed
> git submodule update --init --recursive
> mkdir Release; cd Release
> cmake ..
> make

Render Instructions

> cp job.json.example job.json
> cd Release
> ./pathed