Software implementation (based on CPU) of a 3D engine.
- Three types of rendering (wireframe, shading and texture).
- User has the control over the camera.
- Presentation mode (the model rotates automatically).
- Eight 3D models included:
- Cube
- UV Sphere
- ICO Sphere
- Cylinder
- Cone
- Torus
- Suzzane
- Import 3D models in Babylon JSON format.
- Models can be exported from Blender with Babylon exporter plug-in.
- Left-handed world.
- Rendering loop: 60hz.
- Lines are drawn with Bresenham’s algorithm.
- Triangles are filled with Scan-Line algorithm.
- Visibility problem is solved with Z-Buffer.
- Gouraud Shading for handling lightning.
- Fixed point of light.
- UV coordinates for texture mapping.
- Data loaded from Babylon JSON files:
- Mesh: Name / Vertices / Faces / Position / Rotation / Texture / UV coordinates
- Texture: Name / ID / Image file name
- https://www.davrous.com/2013/06/13/tutorial-series-learning-how-to-write-a-3d-soft-engine-from-scratch-in-c-typescript-or-javascript/
- http://www.codinglabs.net/article_world_view_projection_matrix.aspx
- http://www.opengl-tutorial.org/beginners-tutorials/tutorial-3-matrices/
- http://blog.db-in.com/cameras-on-opengl-es-2-x/
- https://msdn.microsoft.com/en-us/library/windows/desktop/bb206269(v=vs.85).aspx
- http://inear.se/talk/a_brief_introduction_to_3d.pptx
- http://www.songho.ca/opengl/gl_transform.html
- https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm
- https://en.wikipedia.org/wiki/Scanline_rendering
- http://doc.babylonjs.com/
- https://en.wikipedia.org/wiki/Z-buffering
- https://en.wikipedia.org/wiki/Gouraud_shading
- https://en.wikipedia.org/wiki/Normal_(geometry)/
- https://en.wikipedia.org/wiki/Dot_product
- https://en.wikipedia.org/wiki/Cross_product
- http://www.bencloward.com/tutorials_normal_maps2.shtml
- https://en.wikipedia.org/wiki/Texture_mapping
- http://ogldev.atspace.co.uk/www/tutorial16/tutorial16.html
- https://www.blender.org/manual/render/index.html
- http://www.real3dtutorials.com/tut00005.php