Fx Gltf Versions Save

A C++14/C++17 header-only library for simple, efficient, and robust serialization/deserialization of glTF 2.0

v2.0.0

2 years ago

This release introduces the use of std::filesystem to properly support Unicode paths on various platforms. Along the way some minor improvements have also occurred.

  • Change the API to support filesystem::path if this feature is available #85 (Thank you dimitri-tdg!)
  • Fix warning about enum value not handled in switch #84 (Thank you nasso!)
  • Fix a wrong test on quaternion identity in the viewer app #88 (Thank you nasso!)
  • Use inline constexpr for c++17 onwards #89

Note: The introduction of std::filesystem will cause build breaks around the parts of code dealing with filepaths, hence the major version bump here.

v1.2.0

3 years ago

This is primarily a bug fix release which addresses the following:

  • Fix issue #67 (Validation warning when using some Accessor data types)
  • Fix issue #68 (Allow application/gltf-buffer mimetype)
  • Fix issue #72 (Building with newer versions of nlohmann/json)
  • Fix issue #77 (Out of bounds access reading GLBs)

Additional changes include:

  • Various minor clang-tidy cleanups
  • Simplified window/console support for the viewer

v1.1.0

4 years ago

A new release primarily to support iostream loading/saving! The new overloads can be used when more flexibility is required beyond the already existing raw file loading/saving support.

Changes from v1.0.2

  • fx-gltf: iostream loading/saving (originally from skrat: https://github.com/skrat)

  • misc: updates for the included dependencies of CLI11, Catch2, nlohmann-json, and glTF-Sample-Models

v1.0.2

5 years ago

A minor release with some pretty important additions and fixes. First, CMake installation and dependency support was added! Secondly, a fuzzing run was performed and that exposed a buffer overrun around how .glb header data was handled. Please update to this version to pick up these critical fuzzing fixes.

Changes from v1.0.1

  • fx-gltf: CMake support! (courtesy of Ansoulom)

  • fx-gltf: Fix buffer overrun in GLB header parsing/processing (found through local AFL fuzzing run)

  • viewer: fixes project file to properly copy the assets/shaders into the right location on build (vs 2017 and vs 2019)

  • viewer: random assortment of cleanups and static analysis changes

  • viewer: updates for d3dx12.h

  • tests: stricter checks for certain parts of roundtrip tests

  • misc: updates for the included dependencies of CLI11, Catch2, nlohmann-json, and glTF-Sample-Models

v1.0.1

5 years ago

See current README.md for complete docs.

This release focuses on fixes related to nlohmann-json's latest version. Along the way several minor tweaks and updates were made as well.

  • fx-gltf
    • Complete support for required glTF 2.0 schema elements
    • Modern C++14/C++17 support
    • Fast, Efficient, and Safe processing
    • Small, header-only library
  • viewer
    • DirectX 12 rendering
    • PBR materials and image-based lighting (IBL)
    • Mouse controlled orbit camera
    • Support for loading external, embedded, and binary glTF files

Changes from v1.0.0

  • fx-gltf: adjust to newer versions of nlohmann-json which changed their SFINAE support slightly (reorder header)

  • fx-gltf: fix Save(...) argument type to take a reference instead of a copy

  • fx-gltf: prevent unused var warning when not using c++17

  • viewer: use more appropriate DirectX feature level in the viewer to allow acceleration on earlier DirectX 12 capable cards

  • misc: update glTF-Sample-Models

  • misc: update CLI11, Catch2, nlohmann-json

v1.0.0

5 years ago

See current README.md for complete docs.

This release sees a number of changes to round out glTF spec conformance as well as the standard assortment of updates to the sample models and testing / viewer thirdparty headers.

  • fx-gltf
    • Complete support for required glTF 2.0 schema elements
    • Modern C++14/C++17 support
    • Fast, Efficient, and Safe processing
    • Small, header-only library
  • viewer
    • DirectX 12 rendering
    • PBR materials and image-based lighting (IBL)
    • Mouse controlled orbit camera
    • Support for loading external, embedded, and binary glTF files

Changes from v0.9.9

  • fx-gltf: fix GLB alignment of JSON chunk during saving (spec conformance)

  • fx-gltf: write out the bufferView field, even if set to its default of 0, when the uri is empty (spec conformance)

  • fx-gltf: write out empty {} sampler objects when using a default Sampler object

  • viewer: no changes

  • misc: update glTF-Sample-Models

  • misc: update CLI11 and Catch2 headers

v0.9.9

5 years ago

See current README.md for complete docs. This release includes:

  • fx-gltf
    • Complete support for required glTF 2.0 schema elements
    • Modern C++14/C++17 support
    • Fast, Efficient, and Safe processing
    • Small, header-only library
  • viewer
    • DirectX 12 rendering
    • PBR materials and image-based lighting (IBL)
    • Mouse controlled orbit camera
    • Support for loading external, embedded, and binary glTF files

Changes from v0.9.8

  • fx-gltf: uses more appropriate mimetype detection

  • fx-gltf: fixes the default value of texCoord for Textures

  • viewer: no changes

  • misc: full automated builds and testing for MSVC, Clang 5/6, and GCC 6/7/8 (c++14 and c++17 modes)

  • misc: updated CLI11 and Catch2 headers

v0.9.8

5 years ago

See current README.md for complete docs. This release includes:

  • fx-gltf
    • Complete support for required glTF 2.0 schema elements
    • Modern C++14/C++17 support
    • Fast, Efficient, and Safe processing
    • Small, header-only library
  • viewer
    • DirectX 12 rendering
    • PBR materials and image-based lighting (IBL)
    • Mouse controlled orbit camera
    • Support for loading external, embedded, and binary glTF files

Changes from v0.9.0

  • fx-gltf: proper exception contracts for the main public Load/Save APIs implemented

  • fx-gltf: added API for loading in embedded fx::gltf::Image data / removed API for loading in embedded fx::gltf::Buffer data (handled internally)

  • fx-gltf: more tests added

  • fx-gltf: added helper method for formatting nested exceptions

  • fx-gltf: fixed gcc/clang compile

  • viewer: added an orbit camera

  • viewer: calculate tangents if not included in the mesh

  • viewer: properly load embedded and binary image data

  • viewer: WIC image loading (jpg now supported)

  • viewer: added fps counter

  • misc: refreshed glTF-Sample-Models repo

v0.9.0

5 years ago

See current README.md for complete docs. This release includes:

  • Complete support for required glTF 2.0 schema elements
  • Modern C++14/C++17 support
  • Small, header-only library
  • Fast, Efficient, and Safe processing
  • DirectX 12 viewer example supporting PBR materials and image-based lighting (IBL)

Changes from v0.8.1

  • Addition of a DirectX 12 viewer application utilizing fx-gltf
  • Minor static analysis changes to fx-gltf
  • Refreshed glTF-Sample-Models repo

v0.8.1

6 years ago

See current README.md for complete docs. This release includes:

  • Complete support for required glTF 2.0 schema elements
  • Modern C++14/C++17 support
  • Small, header-only library
  • Fast, Efficient, and Safe processing

Changes from v0.8.0

  • Fix mis-detecting std::string_view on MSVC

A proof-of-concept DX12 viewer is in the works and has demonstrated true end-to-end usage of the API and data buffer handling implementation.