This is my undergraduate project, it is no longer suitable for modern typescript dev pipeline, please consider babylonjs for serious ts 3d engine
Lightweight WebGL/WenGL2 rendering engine, see some examples here
- PipeLine
- Forward Rendering
- Tile Based Deferred Rendering(TBDR)
- Shading
- Physical-based(GGX) material model
- Image Based lighting (IBL)
- Traditional material model(blinn-phong)
- Reflection and retracions
- Load and Parsing
- .obj .mtl,
- .fbx
- .gltf
- Variours types of images (through HTMLImageElement) as Textures
- Lights
- Point lights
- Directional lights
- Spot lights
- Shadows
- Basic shadow mapping
- Expotional soft shadow mapping (forward approach)
- Expotional soft shadow mapping (deferred approach)
- Percentage closer soft shadow(PCSS)
- Screen-space shadow mapping (deferred approach)
- Transforms
- Basic object transforms
- Scenes Graph
- Bones and Animation Parsing
- Engineering
- More than 95% test cover
- Automatically handle async resources loading, including models, images and videos. You don't need to write some code like image.onload = ...
- Using github workflow
- Build && test using pure node.js scripts and typescript compiler, without gulp or grunt, webpack and bash , etc.
- Generate a typescript declaration file .d.ts to provide type hint.
See CONTRIBUTING.md.
The MIT license.