From d07b976d59b053eaf12539c474f4f94243985b84 Mon Sep 17 00:00:00 2001 From: Syoyo Fujita Date: Wed, 28 Apr 2021 19:15:16 +0900 Subject: [PATCH] Do not write negative `skeleton` id(skeleton is not assigned). Also ensure `inverseBindMatrices` should not be -2 or other negative values. --- tiny_gltf.h | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/tiny_gltf.h b/tiny_gltf.h index 15d738c..0aa9b76 100644 --- a/tiny_gltf.h +++ b/tiny_gltf.h @@ -7243,11 +7243,17 @@ static void SerializeGltfScene(Scene &scene, json &o) { } static void SerializeGltfSkin(Skin &skin, json &o) { - if (skin.inverseBindMatrices != -1) - SerializeNumberProperty("inverseBindMatrices", skin.inverseBindMatrices, o); - + // required SerializeNumberArrayProperty("joints", skin.joints, o); - SerializeNumberProperty("skeleton", skin.skeleton, o); + + if (skin.inverseBindMatrices >= 0) { + SerializeNumberProperty("inverseBindMatrices", skin.inverseBindMatrices, o); + } + + if (skin.skeleton >= 0) { + SerializeNumberProperty("skeleton", skin.skeleton, o); + } + if (skin.name.size()) { SerializeStringProperty("name", skin.name, o); }