Libgltf Save

glTF 2.0 parser/loader for C++17, supports many extensions likes `KHR_draco_mesh_compression`, `KHR_lights_punctual`, `KHR_materials_clearcoat`, and more.

Project README

libgltf

glTF status libgltf document visit milestones

build Coverage status from coveralls Codacy Badge Language grade: Python

FOSSA Status CII best practices support

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++17
  • Supports the Unicode and UTF8
  • Supports some extensions
    • KHR_draco_mesh_compression - Google's Draco
    • KHR_lights_punctual
    • KHR_materials_clearcoat
    • KHR_materials_emissive_strength
    • KHR_materials_ior
    • KHR_materials_iridescence
    • KHR_materials_sheen
    • KHR_materials_specular
    • KHR_materials_transmission
    • KHR_materials_unlit
    • KHR_materials_variants
    • KHR_materials_volume
    • KHR_texture_transform
    • ADOBE_materials_thin_transparency
    • AGI_articulations
    • AGI_stk_metadata
    • CESIUM_primitive_outline
    • EXT_lights_ies
    • EXT_mesh_gpu_instancing
    • EXT_texture_webp
    • FB_geometry_metadata
    • MSFT_lod
    • MSFT_texture_dds
  • 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

Getting Started

  1. Update the submodule

    Run git submodule update --init

  2. Generate the project by CMake

    Run cmake -G "[GENERATOR BY YOUR SYSTEM]" [LIBGLTF FOLDER]

  3. Build the project and generate the static library libgltf.lib or libgltf.a
  4. Include libgltf/libgltf.h in your project.
  5. Link the static library libgltf.lib or libgltf.a in your project.

    You have to link the static library draco.lib or draco.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.

FOSSA Status

Open Source Agenda is not affiliated with "Libgltf" Project. README Source: code4game/libgltf
Stars
72
Open Issues
1
Last Commit
1 year ago
Repository
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating