Skip to content

Latest commit

 

History

439 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A raytracing demo that models the path of individual rays of light as they travel through a virtual 3D scene, calculating how they reflect, refract, and interact with surfaces and materials to produce realistic lighting and shadows.

Features

  • Lambertian (matte), metal, dielectric (glass) materials.
  • CPU Multithreading. Each thread is responsible to calculate rows of pixels
  • Bounded Volume Hierarchy (BVH) for faster ray intersections.
  • Triangle mesh rendering.
  • Wavefront OBJ parser that supports vertex positions, normal vectors, and texture coordinates.
  • Surface normal interpolation using barycentric coordinate.
  • XML for creating scenes and specifying parameters

Pictures

A glass/dielectric dragon showing light refraction

Bunnies with metal and lambertian material
bunnies

Bunnies with a red metal material

Another dragon

Metal spheres

References

This app was developed using C++20 and Visual Studio 2020 x64. Included dependencies are tinyxml2 and stb.

About

A CPU raytracer that simulates the physics of light rays, incorporating features such as dielectric material, triangle mesh rendering, bounded volume hierarchy, and CPU multithreading.

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages