A CPU-based real-time renderer built in Rust, this project implements core graphics techniques like triangle rasterization, perspective projection, Phong shading, and texture mapping, rendering directly to the frame buffer via X11. It serves as a hands-on learning tool and a foundation for exploring efficient CPU-based software rendering.
install the latest version of rust and:
$ sudo apt install libx11-dev libxi-dev libxfixes-dev libxcursor-dev libwayland-dev clang pkg-config
$ git clone https://github.com/mororo18/draw.git
$ cd draw
$ cargo run --release
- perspective projection
- triangle clipping
- camera movement by mouse input
- phong shading
- texture mapping
- wavefront .obj fileformat
- normal mapping
- decent user interface :(
- anti-alising
- vertical synchronization