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
- Perspective-correct vertex attribute interpolation
- Paper Scratchapixel
- 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
- Directional light
- Normal mapping
- Post-processing effects
- Skybox rendering