diff options
author | Juha Mäki-Kanto <ih5235252@gmail.com> | 2012-02-18 20:20:24 +0400 |
---|---|---|
committer | Juha Mäki-Kanto <ih5235252@gmail.com> | 2012-02-18 20:20:24 +0400 |
commit | 7beddb750610982ebccfd64d87759baa91e011a5 (patch) | |
tree | b0b810a6095f18796c1b3eeaa644a87efbf2af13 /source/blender/collada/ArmatureExporter.h | |
parent | e6b708b36bb77ff2287439f20fc79097c275c822 (diff) |
Collada export: changes to joints/weights in skincontroller
- Collecting joints/weights in one place, it's easier to exclude zero weights or vertexgroups with no matching bone than trying to match same logic in multiple places.
- Still not exporting -1 joints for vertices without weights, but also not outputting -1 joint + weight for each vertexgroup without a matching bone.
- The exported weights are now normalized.
Last I tested this patch stopped 3ds Max crashing on import of file from #29465 (opencollada / internal .dae).
Diffstat (limited to 'source/blender/collada/ArmatureExporter.h')
-rw-r--r-- | source/blender/collada/ArmatureExporter.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/source/blender/collada/ArmatureExporter.h b/source/blender/collada/ArmatureExporter.h index 925e65c9b69..9d64664fa63 100644 --- a/source/blender/collada/ArmatureExporter.h +++ b/source/blender/collada/ArmatureExporter.h @@ -111,10 +111,11 @@ private: bool is_bone_defgroup(Object *ob_arm, bDeformGroup* def); - std::string add_weights_source(Mesh *me, const std::string& controller_id); + std::string add_weights_source(Mesh *me, const std::string& controller_id, + const std::list<float>& weights); - void add_vertex_weights_element(const std::string& weights_source_id, const std::string& joints_source_id, Mesh *me, - Object *ob_arm, ListBase *defbase); + void add_vertex_weights_element(const std::string& weights_source_id, const std::string& joints_source_id, + const std::list<int>& vcount, const std::list<int>& joints); }; #endif |