Skip to content

Commit 9e1a875

Browse files
committed
doc: Update README
1 parent 12ab267 commit 9e1a875

File tree

9 files changed

+66
-1
lines changed

9 files changed

+66
-1
lines changed

README.md

Lines changed: 66 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,73 @@
11
# tinyrenderer_rs
22
This repo consists of a rust implementation of the [tinyrenderer](https://github.com/ssloy/tinyrenderer) walkthrough by professor Dmitry V. Sokolov.
33

4-
Dependencies:
4+
## Dependencies:
55
- image 0.24.5: Image loading and manipulation
66
- piston_window 1.127.0: Window to display rendered frames
77
- obj-rs 0.6: To retrieve information from .obj files
88
- nalgebra 0.31.4: For vector and matrix calculations
9+
10+
## Lessons
11+
12+
### Lesson 0
13+
Write to an image buffer and render it in a window.
14+
15+
**Branch:** [Lesson_0](https://github.com/ema2159/tinyrenderer_rs/tree/Lesson_0)
16+
17+
**Preview:**
18+
![Lesson 0 image](./imgs/lesson0.png)
19+
### Lesson 1
20+
Implement Bressenham's line algorithm. Then, use it to draw the wireframe model of a mesh.
21+
22+
**Branch:** [Lesson_1](https://github.com/ema2159/tinyrenderer_rs/tree/Lesson_1)
23+
24+
**Preview:**
25+
![Lesson 1 image](./imgs/lesson1.png)
26+
27+
### Lesson 2
28+
Implement triangle filling using both line sweeping algorithm and barycentric coordinates algorithm. Then implement a basic directional lighting model, computing the lighting of each triangle face using its normals.
29+
30+
**Branch:** [Lesson_2](https://github.com/ema2159/tinyrenderer_rs/tree/Lesson_2)
31+
32+
**Preview:**
33+
![Lesson 2 image](./imgs/lesson2.png)
34+
35+
### Lesson 3
36+
Implement Z-buffer algorithm for back-face culling. Then, apply textures to the mesh.
37+
38+
**Branch:** [Lesson_3](https://github.com/ema2159/tinyrenderer_rs/tree/Lesson_3)
39+
40+
**Preview:**
41+
![Lesson 3 image](./imgs/lesson3.png)
42+
43+
### Lesson 4
44+
Implement perspective projection.
45+
46+
**Branch:** [Lesson_4](https://github.com/ema2159/tinyrenderer_rs/tree/Lesson_4)
47+
48+
**Preview:**
49+
![Lesson 4 image](./imgs/lesson4.png)
50+
51+
### Lesson 5
52+
Implement Gouraud shading. Then, implement model view, projection, and viewport transformation matrices. Then, chain the transformation matrices.
53+
54+
**Branch:** [Lesson_5](https://github.com/ema2159/tinyrenderer_rs/tree/Lesson_5)
55+
56+
**Preview:**
57+
![Lesson 5 image](./imgs/lesson5.png)
58+
59+
### Lesson 6/6bis
60+
Structure code into shaders form. Then, implement texture-based normal mapping for the model, using both global coordinate system normal mapping and Darboux frame normal mapping. Lastly, improve lighting by composing the lighting of the model using ambient, diffuse, and specular lighting (Phong shading).
61+
62+
**Branch:** [Lesson_6](https://github.com/ema2159/tinyrenderer_rs/tree/Lesson_6)
63+
64+
**Preview:**
65+
![Lesson 6 image](./imgs/lesson6.png)
66+
67+
### Lesson 7
68+
Implement hard shadow computation through shadow mapping.
69+
70+
**Branch:** [Lesson_7](https://github.com/ema2159/tinyrenderer_rs/tree/Lesson_7)
71+
72+
**Preview:**
73+
![Lesson 7 image](./imgs/lesson7.png)

imgs/lesson0.png

7.17 KB
Loading

imgs/lesson1.png

60.1 KB
Loading

imgs/lesson2.png

67.2 KB
Loading

imgs/lesson3.png

400 KB
Loading

imgs/lesson4.png

386 KB
Loading

imgs/lesson5.png

232 KB
Loading

imgs/lesson6.png

221 KB
Loading

imgs/lesson7.png

194 KB
Loading

0 commit comments

Comments
 (0)