Javascript Software Renderer
3D Software renderer implemented in HTML canvas.
This program is written in vanilla javascript. No WebGL, No external library used.
Video: https://youtu.be/EGpyw_Su2r0
Live Demo: https://sopiro.github.io/SoftwareRenderer/
Post processing |
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 |
|
|
- Real-time rendering
- Point and line rendering
- Triangle rasterization
- A Parallel Algorithm for Polygon Rasterization. Juan Pineda. Siggraph 1988.
- Explained
- Indexed vertex rendering
- Depth buffering
- Clipping for z-near plane
- Perspective projection, viewport transform
- Back face culling
- Perspective-correct vertex attribute interpolation
- Texture mapping
- Skybox
- OBJ model loading
- Calculating face normal and tangent vectors
- Vertex, Fragment(Pixel) shading
- Phong shading model
- Normal mapping
- Resolution changer
- Post-processing stage