rynorris / paths

Path tracing renderer

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

paths

paths is a software path-tracing renderer written in Rust.

It is purely a hobby-project for me to learn about this technology, and I had no idea how path-tracing worked (other than vague intuition) before starting.

Implementation Checklist

  • Basic path tracing of spheres
  • Point lights
  • Multithreading
  • Collision acceleration (BVH)
  • Textures
  • Triangle meshes
  • Normal smoothing (of triangle meshes)
  • Importance sampling
  • Reflective materials
  • Glossy materials
  • Microfacet specular model
  • Camera lens simulation
  • Next event estimation
  • HDRI Environment maps
  • Translucent materials (refraction)
  • Subsurface scattering
  • Bi-directional path tracing

Examples

[2020/05/23] Support for HDRI environment maps (thanks for HDRI Haven for the HDRIs!) image

[2020/05/15] Support for per-vertex colours baked into meshes (thanks to Artec3D for this awesome model): image

[2020/05/10] Rewritten large parts of the renderer so that the results match a reference renderer (Mitsuba) image image

[2020/05/04] Next event estimation to efficiently simulate point/area light sources image

[2020/04/22] Microfacet model to create shiny, rough teapot material image

[2019/03/14] Teapot model with ~6000 triangles and smoothed normals image

[2019/03/11] 500 randomly generated spheres image

[2019/03/07] Close up of green sphere with strong bokeh on the background image

[2019/03/05] 2 glossy spheres and one perfect mirror sphere on a reflective plane. image

[2019/03/03] 2 Spheres with large off-screen light source image

About

Path tracing renderer


Languages

Language:Rust 100.0%