Description
High level GlTF loader.
Description
Please see the README on Github at https://github.com/sgillespie/haskell-gltf-loader#readme
README.md
Haskell GlTF Loader
A high level GlTF loader
Prerequisites
In order to build or install you will need
Building
Build the project
stack setup
stack build
Run the tests (if desired)
stack test
API Documentation
To build the documentation, run
stack haddock
API Examples
Use fromFile
or fromBytestring
to load a GlTF scene
import Text.GLTF.Loader (fromFile)
-- ...
-- Load a GLTF scene from a file
loadGltfFile :: IO (Either Errors Gltf)
loadGltfFile = fromFile "./cube.gltf"
Then you can, for example, get all the vertices:
getVertices :: Gltf -> [V3 Float]
getVertices gltf = concatMap getVertices' (gltf ^. _meshes)
where getVertices' mesh = concatMap (^. _meshPrimitivePositions) (mesh ^. _meshPrimitives)
CLI
This includes a CLI utility to inspect GlTF files
gltf-loader --help
Roadmap
Currently, only geometries and PBR materials are supported, but we hope to support the majority of GlTF features:
- [ ] Animations
- [x] Asset
- [ ] Cameras
- [x] Images
- [x] Materials
- [x] PBR Metallic Roughness
- [x] Textures
- [x] Meshes
- [x] Positions
- [x] Indices
- [x] Normals
- [x] Texture Coordinates
- [x] Nodes
- [x] Samplers
- [ ] Skins
Authors
Sean Gillespie [email protected]
Acknowledgements
This project is largely based on https://hackage.haskell.org/package/gltf-codec by Alexander Bondarenko
License
This project is licensed under the MIT License. See LICENSE.