libgltf
The project includes a generator that can generate codes by glTF 2.0 JSON schema.
It is used in glTFForUE4.
Features
- glTF 2.0
- Load the gltf/embedded/glb file
- This is a static library
- Cross platform
- C++11
- Supports the Unicode and UTF8
- Supports some extensions
KHR_draco_mesh_compression
- Google's DracoKHR_lights_punctual
KHR_materials_clearcoat
KHR_materials_ior
KHR_materials_sheen
KHR_materials_specular
KHR_materials_transmission
KHR_materials_unlit
KHR_materials_variants
KHR_materials_volume
- and more
- Platforms
- Windows
- Win32 (win32)
- x64 (win64)
- Linux (linux)
- macOS (macos)
- Android
- armeabi-v7a
- armeabi-v7a-with-neon
- arm64-v8a
- x86
- x86_64
- iOS
- iOS (iphoneos)
- watchOS (watchos)
- simulator
- Windows
Getting Started
- Update the submodule
Run
git submodule update --init
- Generate the project by CMake
Run
cmake -G "[GENERATOR BY YOUR SYSTEM]" [LIBGLTF FOLDER]
- Build the project and generate the static library
libgltf.lib
orlibgltf.a
- Include
libgltf/libgltf.h
in your project. - Link the static library
libgltf.lib
orlibgltf.a
in your project.You have to link the static library
draco.lib
ordraco.a
with your project, if you want to support the Google's Draco. And you can find the draco in the external folder.
Code example:
std::shared_ptr<libgltf::IglTFLoader> gltf_loader = libgltf::IglTFLoader::Create(/*a function to load the file by std::istream*/);
std::shared_ptr<libgltf::SGlTF> loaded_gltf = gltf_loader->glTF().lock();
if (!loaded_gltf)
{
printf("failed to load your gltf file");
}
License
This software is released under the MIT license.