Skip to content

A multithreaded ray-tracing renderer written in Rust

Notifications You must be signed in to change notification settings

JinayJain/bounce

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bounce

A multithreaded raytracer written in Rust.

example

teapot

Features

Currently, Bounce supports:

  • Rendering spheres
  • Camera with adjustable position, direction, depth of field, and field of view
  • Diffuse (Lambertian), glass (Schlick), and metallic material
  • Multithreaded rendering using rayon
  • OBJ file loading and rendering
  • Efficient ray-intersection queries using bounding volume hierarchies
    • Converts the $O(N)$ queries into $O(\log N)$, improving speeds by over 1000x for highly complex scenes (over 1M triangles).

Planned features

In the future, I plan to add:

  • Textures
  • Additional object types beyond spheres
  • Lights
  • Interactive 3D scene builder

References

Ray Tracing in One Weekend

Physically Based Rendering: From Theory to Implementation

About

A multithreaded ray-tracing renderer written in Rust

Topics

Resources

Stars

Watchers

Forks

Languages