Skip to content

Very very simple toy OpenEXR renderer application written in Rust

Notifications You must be signed in to change notification settings

vvzen/lets-trace-some-rays-in-rust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Very very simple toy OpenEXR renderer application written in Rust

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages