/SimpleGLTF2

A WIP deserializer / loader and viewer for GLTF2 written in Java.

Primary LanguageJavaMIT LicenseMIT

SimpleGLTF2

GitHub Workflow Status GitHub GitHub commit activity GitHub contributors

A WIP deserializer / loader for GLTF2 written in Java. This project provides a basic deserializer to aid in loading of GLTF2 files.

Project Goals

SimpleGLTF2 is designed to be a simple library to load GLTF2 files into the Java ecosystem. Part of that ecosystem, and one of the motivations for writing this library, is fetching files from the web, from jar's, and from disk.

Motivation

I beleive that glTF2 is a great and interesting file format for all uses of 3d models. Assimp failed to load my glTF2 files in my personal project, likely due to loading over the network. This has led me to learn more about glTF2 and a desire to support it directly inside of the Java ecosystem. I am aware of the JglTF but I do not like the complexity that brings by supporting both glTF1 and glTF2.

Repository Layout

  • core package contains Java classes to hold deserialized GLTF2 JSON. All classes are prepended with GLTF

  • simple-viewer package is a port of the KronosGroup/glTF-Sample-Viewer to java. LWJGL3 is used for window management and OpenGL calls.

Getting Started

Standard Gradle Java tasks for building / running.

Prerequisites

Dependencies are managed by Gradle.

Installing

TODO

Contributing

Pull Requests are welcome! As this project is still in its very early stages I may not immediately accept pull requests while still working on design goals and strategies.

Versioning

Pre-release

##Features

core

  • Bindings to handle additional extensions
  • Data classes to handle deserialization of gltf files
    • Automatically resolve indices -> accessor/node/scene/etc
  • Loading
    • Standard .gltf files
    • .glb files
  • Extensions
    • KHR_materials_pbrSpecularGlossiness
    • KHR_draco_mesh_compression
  • Custom Engine Friendly
    • Handle calculations dictated by glTF format
    • Abstract access to glTF data
    • Getting Started and usage document

simple-viewer

  • Zoom, rotate models
  • Child Node transforms
    • Matrix
    • TRS
  • Texturing
    • Base color
    • Standard glTF PBR textures
  • Animation
    • Morph
    • Skeletal / Skin

License

This project is licensed under the MIT License - see the LICENSE.md file for details