KhronosGroup / KhronosGroup/glTF
Representing single vertices being unaffected by skinning
- Dominant language
- HTML
- Stars
- 7.8k
- Forks
- 1.2k
- Avg merge
- 17h 26m
- Merged PRs (30d)
- 5
Description
I don't see a simple way to represent single vertices being unaffected by skinning (static vertices in an otherwise animated mesh). What I have considered:
1. All zero `JOINTS_n` and `WEIGHTS_n` attributes for the unaffected vertices. This does not work since the spec mandates a normalized weight sum of exactly 1 (plus/minus a minimal error) - see e.g. https://github.com/KhronosGroup/glTF/issues/1929.
2. A separate, unskinned primitive. This would probably work for most models in practice, but it doesn't work if I have e.g. a triangle where only a single vertex is unaffected by skinning but the other two are.
3. Introducing no-op bones. This would work, but it feels dirty and presumably makes the models harder to edit if imported into e.g. Blender.
Background: I'm writing a b3d (Blitz3D) to glTF converter. The Blitz3d model format turns the lookup around: Rather than each vertex having affecting joints & weights as attributes, each joint has a map of vertices to weights. This allows vertices to be completely unaffected by skinning; they simply don't appear in these map(s), or they appear only with zero weights.
Contributor guide
Assessment
This issue has not been assessed yet.