Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Representing single vertices being unaffected by skinning #2269

Open
appgurueu opened this issue Mar 14, 2023 · 1 comment
Open

Representing single vertices being unaffected by skinning #2269

appgurueu opened this issue Mar 14, 2023 · 1 comment

Comments

@appgurueu
Copy link

appgurueu commented Mar 14, 2023

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. What if there are some vertices have zero weight sum in a skinned mesh? #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.

@fire
Copy link

fire commented Mar 15, 2023

I would probably copy the Blender solution of:

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.

Reference:

KhronosGroup/glTF-Blender-IO#1151

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants