https://github.com/joelbeedle/rust-renderer
Basic renderer and camera in rust using only minifb to render point clouds
https://github.com/joelbeedle/rust-renderer
Last synced: 5 months ago
JSON representation
Basic renderer and camera in rust using only minifb to render point clouds
- Host: GitHub
- URL: https://github.com/joelbeedle/rust-renderer
- Owner: joelbeedle
- Created: 2024-06-02T19:31:02.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-10T16:48:59.000Z (6 months ago)
- Last Synced: 2025-01-10T17:40:02.379Z (6 months ago)
- Language: Rust
- Size: 338 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# rust-renderer
Rendering project that helped me to learn rust.
In essence, it's a renderer that can take any 3D model and render it. It doesn't use GPU acceleration, only `minifb` for the window and a frame buffer.
All rendering, camera, projection is done manually, writing pixels to the framebuffer (essentially an array of pixels). This means it's slow, but allowed me to focus on the things that were interesting in the project.
It can take `.obj` and `.off` files and render them, with multiple types of lighting available.
Also has support for Bézier patch conversions into triangles at varying resolutions.
## Features
- [Back-face culling](https://en.wikipedia.org/wiki/Back-face_culling)
- [Painters algorithm](https://en.wikipedia.org/wiki/Painter%27s_algorithm)
- [Flat Shading](https://en.wikipedia.org/w/index.php?title=Shading§ion=13#Flat_shading)
- [Gouraud Shading](https://en.wikipedia.org/wiki/Gouraud_shading)
- [Phong Shading](https://en.wikipedia.org/wiki/Phong_shading)
![]()