Skip to content

Latest commit

 

History

History
104 lines (89 loc) · 3.49 KB

readme.md

File metadata and controls

104 lines (89 loc) · 3.49 KB

ToyTrace

Born out of an ancient computer graphics exercise, this is my hobby renderer.

Images

Buddha Torus Prism Dragon Glas Reflector

Features

  • Forward- and bidirectional path tracing.
  • Volume rendering with the beam radiance estimator.
  • Participating media:
    • Homogeneous chromatic collision coefficients.
    • Atmosphere model with tabulated altitude profiles.
    • Uniform-, Henley-Greenstein- and Rayleigh phase functions.
    • Spectral delta tracking.
  • Materials:
    • Glossy microfacet metallic BRDF.
    • Dense dielectric with specular interface.
    • Specular mirror.
    • Specular transmissive dielectric, aka. glass shader.
    • Lambertian diffuse.
  • Textures & UV mapping.
  • Lights:
    • Multiple idealized light models, e.g. point lights and uniform area lights.
    • Image based lighting from HDR environment maps.
    • (Emissive Media)
  • Camera:
    • Pinhole.
    • Fisheye.
  • Statistical test for BSDF & Phasefunction sampling routines.
  • Binned spectral representation using a few dozen wavelengths.

Dependencies

  • CIMG
  • Eigen 3
  • boost
  • assimp
  • OpenImageIO
  • yaml-cpp
  • tbb
  • embree

Todo

Eventually, maybe, and in no particular order.

  • Advanced techniques. VCM and extensions to volume rendering.
  • Custom triangle intersection routines with double precision. Embree only for BVH.
  • Robust intersection computations in the style of BPRT.
  • Overlapping media volumes in the sense that a mixture medium comprising multiple components is rendered.
  • Rendering of OpenVDB data set.
  • Other geometries for the atmosphere medium: Flat (Earth) and (O'Neill) Cylinder.
  • Faster MIS weight computation from the VCM paper.
  • A multi-layer material.
  • A sane scene description format.
  • Better image reconstruction filter.
  • Support for wavelength dependent index of refraction throughout all algorithms.
  • Firefly suppression.
  • Quasi-random sampling throughout all algorithms.
  • Bloom filter.
  • Physical camera.
  • Texture filtering.
  • Bump/normal mapping.

Related work

Other projects by which this one is inspired.

Educational/Research/Reference Implementations

There is another ToyTrace on Github. I have nothing to do with it. I just happen to forget to check if the name is already assigned.

License

All rights reserved.