Skip to content

landris006/path-tracer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Path tracer

Summary

A real-time 3D path tracing engine. Built with Rust and wgpu.

Features

  • flying camera to move around
  • progressive rendering (If you stand still the engine will start to accumulate previous frames over time and average the pixels together. This is a form of noise reduction.)
  • convert equirectangular HDRIs to cubemaps (useful for rendering the sky)
  • Bounding Volume Hierarchy for traversing meshes in logarithmic time
  • user interface for making changes at runtime, such as:
    • adjusting the renderer's settings
    • modifying the scene (adding and removing objects, modifying their properties, etc.)
  • select objects with the cursor (this currently only works for spheres, not complex meshes)
  • load models from .obj files

Future plans

  • saving and loading scene data
  • implementing textures
  • implementing a denoiser(?)
  • moving the whole thing to Vulkan and utilize the raytracing cores on RTX GPUs
  • DLSS (??)

Running and building

You will need the Rust toolchain. (You can install it using rustup.)

Running (in debug mode):

cargo run

Building in release mode:

cargo build --release

Progressive rendering demo

progressive_rendering_demo_cropped.mp4

Gallery

bunny cornell-2 cornell 3-balls image image image image

About

Real time path tracing engine

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published