This is a 3D Software renderer implemented in HTML canvas using vanilla javascript.
No WebGL, No external library used!
Live Demo: https://sopiro.github.io/SoftwareRenderer/
Video: https://youtu.be/EGpyw_Su2r0
Post processing effects |
Normal mapping |
 |
 |
Line and triangle |
Flat and smooth shaded spheres |
 |
 |
Normal mapped cube 1 |
Normal mapped cube 2 |
 |
 |
Normal mapped barrel |
Textured cubes and Blender Suzanne |
 |
 |
Diablo model with normal mapping |
Diablo model without normal mapping |
 |
 |
- Point and line rendering
- Triangle rasterization
- Depth buffering
- Clipping for near plane
- Back face culling
- Indexed mesh rendering
- Texture mapping
- OBJ model loading
- Calculate face normal and tangent vectors
- Vertex and fragment shading
- Perspective projection, viewport transform
- Phong shading model
- Normal mapping
- Post-processing effects
- Skybox rendering