https://github.com/alordash/renderust
Simple graphics engine capable of rendering wavefront .obj files
https://github.com/alordash/renderust
rendering rust wavefront
Last synced: about 1 year ago
JSON representation
Simple graphics engine capable of rendering wavefront .obj files
- Host: GitHub
- URL: https://github.com/alordash/renderust
- Owner: alordash
- Created: 2022-08-11T16:09:25.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2022-11-28T09:17:56.000Z (over 3 years ago)
- Last Synced: 2025-02-28T22:47:39.198Z (over 1 year ago)
- Topics: rendering, rust, wavefront
- Language: Rust
- Homepage:
- Size: 16.9 MB
- Stars: 26
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# renderust
OpenGL-like renderer written from scratch in Rust.
Based on this guide: [tinyrenderer](https://github.com/ssloy/tinyrenderer/wiki/Lesson-0:-getting-started).
Triangle rasterization is done using [scanline method](https://en.wikipedia.org/wiki/Scanline_rendering).
### Controls
[1] — toggle normal map
[2] — toggle specular light
[3] — toggle glow map
[4] — toggle self shadow
[5] — toggle ambient occlusion
[R] — toggle light spin
[WASD / Space / Shift] — move model
[LMB] — rotate model
[Scroll] — zoom camera
[Ctrl+S] — save image (to ./output.bmp)
## Demo

![]()
Diablo
Without effects

With effects (normal maps, specular light, self shadowing, glow map, ambient occlusion)

Self shadows from two lights (which are directed top-down and back-forward)

![]()
More pictures


![]()
Video

![]()