Skip to content

Latest commit

 

History

History
35 lines (19 loc) · 1.51 KB

README.md

File metadata and controls

35 lines (19 loc) · 1.51 KB

README

TL;DR: This app is a toy Raytracer writter in Rust.

screenshoot

This is just a pet project of mine, done while sloooowly following along Ray Tracing in One Weekend over the course of >1 weekends.

Current features:

  • UI: written in iced, following the ELM architecture

  • UI: GPU Framebuffer shows a 8bit tonemapped conversion of the render buffer (32bit float)

  • UI: Save to filesystem in OpenEXR container (ZIP compression), thanks to exr

  • 3D: Rendering done in scene linear ACEScg colorspace, thanks to colstodian

  • 3D: Rendering happens in the background via async tasks, thanks to the iced Command API

  • 3D: Antialiasing (by shooting and averaging multiple rays per pixel)

  • 3D: Metallic and Lambertian-like rendering of spheres

Things I want to do

  • Proper multithreaded rendering, based on the number of cores.

    • Could happen via rayon, or via a bespoke solution.
  • IPR: Continuosly update the render buffer, starting from low res render and increasing resolution and number of samples every iteration

Things I have learned so far

  • I don't like immediate GUI approaches, like egui (sending data around is too hard, if you don't have a message/event based approach!)

  • GUI frameworks in Rust are cool, but still very very young