al-tameemi/rust_tracer

A CPU ray tracer written in rust

How and Where Multithreading is used

Rust Tracer

.

Contents

  • Requirements
  • Install
  • Latest Render
  • Current Speed
  • Notes
    • Multithreading Optimization

Requirements

  • The Rust toolchain.

Install

  1. git clone [email protected]:al-tameemi/rust_tracer.git
  2. cd rust_tracer
  3. cargo run for debug build, cargo run --release for release build.

Latest Render

Current Speed

CPU (Pre randomized world, speed can't be accuratly compared now) Single Threaded Multi Threaded
Ryzen 7 5800x 8-Core, 16-Threads @ 3.8GHz Base, 4.7GHz Boost 28S 2.5S
Apple M1 8-Core, 8-Threads @ 3.2GHz 18S 3.9S

Notes

How and Where Multithreading is Used

Multithreading is being used during the iteration over the pixels in the screen. A new thread is requested from a thread pool for each pixel using Rayon's into_par_iter.

Multithreading Optimization

  • Convert the pixel sample calculation for Anti-Aliasing into a multithreaded workload (possible?).
  • Iterate over the world using threads (not worth it unless the number of objects is large enough, needs testing).

Information - Updated Jul 25, 2022

Stars: 0
Forks: 0
Issues: 0

This is an example of a Rust server that functions as a remote schema for...

Rust + Hasura Rust server that functions as a Hasura

This is an example of a Rust server that functions as a remote schema for...

Newport Engine is a modular 2D and 3D game engine built in Rust for Rust

It is designed to be easily extendable and easy to use

Newport Engine is a modular 2D and 3D game engine built in Rust for Rust

Newport Engine is a modular 2D and 3D game engine built in Rust for Rust

It is designed to be easily extendable and easy to use

Newport Engine is a modular 2D and 3D game engine built in Rust for Rust

liboqs-rust: Rust bindings for liboqs

Qyantum Safe liboqs rust bindings

liboqs-rust: Rust bindings for liboqs

msgflo-rust: Rust participant support for MsgFlo

Flowhub visual programming IDE

msgflo-rust: Rust participant support for MsgFlo
Actix

1.0K

How to be a full stack Rust Developer

Read Rust the Rust blog posts at Steadylearner

How to be a full stack Rust Developer

Rust library translation (rust-src/rust-std/stdlib/rustlib translation)

This is the place to translate Having a documentation in your native language is essential if you don't speak English, and still enjoyable even if...

Rust library translation (rust-src/rust-std/stdlib/rustlib translation)

False Positive for rust-lang/rust#83583

The deprecation lint proc_macro_derive_resolution_fallback is intended to catch proc macro generated code that refers to items from parent modules that should not be in scope:

False Positive for rust-lang/rust#83583

A CHIP-8 & SuperChip interpreter written in Rust using rust-sdl2

If you're getting compile errors it may be because

A CHIP-8 & SuperChip interpreter written in Rust using rust-sdl2

Rust-Svelte-on-Rust

Starter template for Rocket backend server

Rust-Svelte-on-Rust

xbuild is a build tool for rust and rust/flutter projects with support for cross compiling...

xbuild is a build tool for rust and rust/flutter projects with support for cross compiling and

xbuild is a build tool for rust and rust/flutter projects with support for cross compiling...
Facebook Instagram Twitter GitHub Dribbble
Privacy