Gltf-Simple
WORK-IN-PROGRESS: There will be breaking changes and what's there isn't reliably working either ;)
DEMO
What it will be:
- Renderable scene as a custom easy-to-work-with plain object, derived from processing the gltf
- Very simple API surface (e.g. "loadGltf, updateAnimations, applyTransforms, render")
- Stands on the foundation of webgl-simple to optimize and skip unnecessary low-level webgl calls (and can share the context)
- Follows the same idea here - e.g. batching shaders with the same source, re-using buffers, etc.
- Immutable helpers to drive transform updates and animations
- Geared for a functional pipeline
- Uses the reference PBR shader from Khronos Group
- Uses Fluture for initial loading (therefore Sanctuary and Fluture are peer dependencies)
- Fully exported Typescript definitions
- Built on WebGL 1
What it won't be:
- A full engine (bring your own physics, sound, input, particle emitters, etc.)
- Optimized beyond the low-level (bring your own culling)
- Mutable helpers (kudos for wanting the extra juice!)
- Bleeding edge / state of the art (extensions at the proposal stage are not on the radar)
- Too opinionated - for example the returned objects are mutable so you can choose to work with them as you wish before passing them back into the pipeline.
What it might be later:
- Built on WebGL 2
- Supporting more extensions
- A Library of helpers to make piecing together an engine easier (e.g. get bounding boxes)