A JavaScript implementation of TinyRenderer based on the wiki to understand how OpenGL works. Live Demo
- Lesson 1 - Bresenham’s Line Drawing Algorithm
- Lesson 2 - Triangle rasterization and back face culling
- Lesson 3 - Hidden faces removal (z buffer)
- Lesson 4 - Perspective projection
- Lesson 5 - Moving the camera
- Lesson 6 - Shaders for the software renderer
- Lesson 6bis - tangent space normal mapping
- Lesson 7 - Shadow mapping
- Lesson 8 - Ambient occlusion
- refine two-pass rendering process (depth)
- [Demo] add shader picker
- [Demo] add light position slider
- [Demo] add model picker
- possible performance gain from matrix with 1-D TypedArray, opposed to 2-D Array?