/based

A straight-faced, trait-based, high-paced physically based path tracer, written in Rust.

Primary LanguageRustMIT LicenseMIT

Based

Based on what?

Physics, that's what.

Basic ray tracer written in Rust. So far, I've fully implemented the features from Ray Tracing in One Weekend. Currently I am working on optimizing and implementing features from PBRT.

Although probably not nearly as efficient as using existing libraries, I am interested in doing this all from scratch. So I'm writing all of my libraries as well, except for complicated things/things I am uninterested in such as randomness or PNG encoding.

Current libraries:

.
├── antsy      -- Simple terminal escape code manipulation for progress bar, etc
├── glitz      -- Vector math library aimed at computer graphics
├── based      -- The actual path tracer
└── xenon      -- Color QOL library, houses color struct and easy PNG writing

Not even sure why I made an ANSI escape code library, it's hardly on-topic, I guess the existing ones just felt overkill for my needs.

Image so far:

Image so far

// TODO

  • Implement features from PBRT
  • Increase performance. There is never enough performance
  • Write more documentation comments
  • Write more unit tests