Skip to content

A physically based raytracer written in C++ w/ support for Monte Carlo rendering.

Notifications You must be signed in to change notification settings

brennengreen/Physically-Based-Raytracer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Physically Based Raytracer

My implementation of a physically based raytracer which utilizes a simple monte carlo approach to importance sampling using BxDFs.

This raytracer has support for the following:

  • Lambertians
  • Dielectrics
  • Metals
  • Emitters (Area and Point Lights, emissive materials)
  • Texture Mapping
  • Procedural Textures
  • Instancing
  • Constant Density Volumetrics
  • Motion Blur
  • Depth of Field

To improve performance of the raytracer, I utilized a Bounding Volume Hierarchy (BVH) to improve intersection testing efficiency.

Dependencies:

Examples

Ye olde Cornell Box rendered with a couple of diffuse cubes

My implementation of the typical approach to rendering the moon, using the Oren–Nayar reflectance model and some textures from NASSA

A marble sitting atop a floor textured with perlin noise, surrounded by volumetric fog

About

A physically based raytracer written in C++ w/ support for Monte Carlo rendering.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published