Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/spnda/fastgltf
A modern C++17 glTF 2.0 library focused on speed, correctness, and usability
https://github.com/spnda/fastgltf
arm-neon arm-neon-libraries avx cpp cpp-library cpp-modules cpp17 cpp17-library cpp20 cpp20-modules gltf gltf-loader gltf2 gltf2-loader json khronos neon serialization simd sse
Last synced: 7 days ago
JSON representation
A modern C++17 glTF 2.0 library focused on speed, correctness, and usability
- Host: GitHub
- URL: https://github.com/spnda/fastgltf
- Owner: spnda
- License: mit
- Created: 2022-09-11T01:24:34.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-26T13:57:23.000Z (about 2 months ago)
- Last Synced: 2024-10-30T09:11:24.880Z (about 2 months ago)
- Topics: arm-neon, arm-neon-libraries, avx, cpp, cpp-library, cpp-modules, cpp17, cpp17-library, cpp20, cpp20-modules, gltf, gltf-loader, gltf2, gltf2-loader, json, khronos, neon, serialization, simd, sse
- Language: C++
- Homepage: https://fastgltf.readthedocs.io/v0.8.x/
- Size: 2.18 MB
- Stars: 296
- Watchers: 5
- Forks: 43
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# fastgltf
![vcpkg](https://img.shields.io/vcpkg/v/fastgltf?style=flat-square)
![conan center](https://img.shields.io/conan/v/fastgltf?style=flat-square)
![CI_x64 workflow status](https://img.shields.io/github/actions/workflow/status/spnda/fastgltf/ci_x64.yml?label=CI%20x64&style=flat-square)
![CI_arm workflow status](https://img.shields.io/github/actions/workflow/status/spnda/fastgltf/ci_arm.yml?label=CI%20ARM&style=flat-square)
[![Documentation Status](https://readthedocs.org/projects/fastgltf/badge/?version=latest)](https://fastgltf.readthedocs.io/latest/?badge=latest)**fastgltf** is a speed and usability focused glTF 2.0 library written in modern C++17 with minimal dependencies.
It uses SIMD in various areas to decrease the time the application spends parsing and loading glTF data.
By taking advantage of modern C++17 (and optionally C++20) it also provides easy and safe access to the properties and data.
It is also available as a C++20 [named module](https://en.cppreference.com/w/cpp/language/modules).The library supports the entirety of glTF 2.0 specification, including many extensions.
By default, fastgltf will only do the absolute minimum to work with a glTF model.
However, it brings many additional features to ease working with the data,
including accessor tools, the ability to directly write to mapped GPU buffers, and decomposing transform matrices.To learn more about fastgltf, its features, performance and API you can read [the docs](https://fastgltf.readthedocs.io/).
## Examples and real-world usage
You can find some examples in the `examples/` directory of this repository on how to use fastgltf in a 3D renderer to load glTF files.
Additionally, this is a list of some interesting projects using fastgltf:- [Fwog](https://github.com/JuanDiegoMontoya/Fwog): The examples of this modern OpenGL 4.6 abstraction make use of fastgltf.
- [wad2gltf](https://github.com/DethRaid/wad2gltf): A WAD to glTF converter
- [Castor3D](https://github.com/DragonJoker/Castor3D): A multi-OS 3D engine
- [Raz](https://github.com/Razakhel/RaZ): A modern & multiplatform 3D game engine in C++17
- [vkguide](https://vkguide.dev): A modern Vulkan tutorial## License
The **fastgltf** library is licensed under the MIT License.
----
Libraries embedded in fastgltf:
- [simdjson](https://github.com/simdjson/simdjson): Licensed under Apache 2.0.Libraries used in examples and tests:
- [Catch2](https://github.com/catchorg/Catch2): Licensed under BSL-1.0.
- [glad](https://github.com/Dav1dde/glad): Licensed under MIT.
- [glfw](https://github.com/glfw/glfw): Licensed under Zlib.
- [glm](https://github.com/g-truc/glm): Licensed under MIT.