diff --git a/tests/issue-492.glb b/tests/issue-492.glb new file mode 100644 index 0000000..3a46d0c Binary files /dev/null and b/tests/issue-492.glb differ diff --git a/tests/tester.cc b/tests/tester.cc index 807fb1c..6b10979 100644 --- a/tests/tester.cc +++ b/tests/tester.cc @@ -1182,3 +1182,21 @@ TEST_CASE("images-as-is", "[issue-487]") { } } } + +TEST_CASE("inverse-bind-matrices-optional", "[issue-492]") { + tinygltf::Model model; + tinygltf::TinyGLTF ctx; + std::string err; + std::string warn; + + bool ret = ctx.LoadBinaryFromFile(&model, &err, &warn, "issue-492.glb"); + if (!warn.empty()) { + std::cout << "WARN:" << warn << std::endl; + } + if (!err.empty()) { + std::cerr << "ERR:" << err << std::endl; + } + + REQUIRE(true == ret); + REQUIRE(err.empty()); +} \ No newline at end of file diff --git a/tiny_gltf.h b/tiny_gltf.h index 4a8d073..e0f99cc 100644 --- a/tiny_gltf.h +++ b/tiny_gltf.h @@ -5660,7 +5660,7 @@ static bool ParseSkin(Skin *skin, std::string *err, const detail::json &o, skin->skeleton = skeleton; int invBind = -1; - ParseIntegerProperty(&invBind, err, o, "inverseBindMatrices", true, "Skin"); + ParseIntegerProperty(&invBind, err, o, "inverseBindMatrices", false, "Skin"); skin->inverseBindMatrices = invBind; ParseExtrasAndExtensions(skin, err, o,