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

Should skinning examples show skinning? #24005

Closed
greggman opened this issue May 4, 2022 · 6 comments · Fixed by #25654
Closed

Should skinning examples show skinning? #24005

greggman opened this issue May 4, 2022 · 6 comments · Fixed by #25654
Labels

Comments

@greggman
Copy link
Contributor

greggman commented May 4, 2022

I noticed none of skinning examples actually show skinning. At best maybe the stomach of the stormtrooper in this example shows skinning. The rest might be using the skinning code but the models don't "skin". They're a collection of solid parts that would look exactly same without skinning code.

A good example that makes this clear is this example:

https://threejs.org/examples/webgpu_skinning_points.html

You can see, no points are being weight blending by multiple vertices. That's not "skinning"

The same is true for all of these examples: https://threejs.org/examples/webgpu_skinning_instancing.html, https://threejs.org/examples/webgpu_skinning.html, https://threejs.org/examples/webgl_animation_skinning_morph.html,
https://threejs.org/examples/webgl_animation_skinning_additive_blending.html

Even this one, https://threejs.org/examples/webgl_animation_skinning_blending.html, it's hard to see any actual "skinning". It's possible there's some skinning in the black parts of the joints but given the armor is stiff this example shows no actual skinning.

If it's not clear what I mean. This is skinning (computing vertex positions by summing the weighted influence of multiple matrices)

skinning-lines
skinning-solid

This is not skinning (moving independent meshes)

not-skinning-lines
not-skinning-solid

All of the three.js "skinning" examples are not skinning or at least not good examples of skinning. Note: It's possible the examples are going through the skinning code. It's even possible they're using weights but if so the weights are all set such that there's only one matrix influencing each vertex which is not really a good demonstration of skinning.

Would it be ok to replace the example models with something else? A quick search, all of these CC-BY models are much better examples of skinning.

https://sketchfab.com/3d-models/tyrannosaurus-rex-20-512712b314404760a860389ebd0ce78a

https://sketchfab.com/3d-models/white-pointer-8e429052939a4677861d0d550a0e27cd

https://sketchfab.com/3d-models/hummingbird-flying-4e6d591f6e50493aa5e31355084fc4e8

https://sketchfab.com/3d-models/ramsey-fb31d1eeeb90425394d0a708bd5e4552

https://sketchfab.com/3d-models/elephant-animation-idle-a8e7e10f005f4baab0a2f5079d759fcd

https://sketchfab.com/3d-models/icy-dragon-2db9268227b943e6a41e88390f2875a6

https://sketchfab.com/3d-models/low-poly-fox-by-pixelmannen-animated-371dea88d7e04a76af5763f2a36866bc

https://sketchfab.com/3d-models/fox-rigged-ee7d17f164724896b4f2c417a5153163

https://sketchfab.com/3d-models/tiger-51ed5186afb04487ae6adb51f8ffd09b

https://sketchfab.com/3d-models/animated-dog-shiba-inu-9abfce885a834399b2c3ccaed51cd474

I'd be happy to replace the current models with some of these.

@Mugen87 Mugen87 added the Addons label May 5, 2022
@Mugen87
Copy link
Collaborator

Mugen87 commented May 11, 2022

The project used the term skinning as an alternative for skeletal animation which is not entirely correct. Skinning is something that happens during skeletal animation. Wiki says:

Each bone in the skeleton is associated with some portion of the character's visual representation in a process called skinning

However, all mentioned examples fulfill this definition since they use SkinnedMesh and thus a skeletal in combination with skin indices and weights. Hence, I see no need to update the examples with different models.

@mrdoob
Copy link
Owner

mrdoob commented May 11, 2022

There's a model on mixamo that could be a nice replacement.

Screen Shot 2022-05-11 at 5 30 45 PM

@greggman
Copy link
Contributor Author

greggman commented Mar 9, 2023

Showing skinning examples that don't actually show any skinning about the same as showing texturing example with 1x1 pixel textures or loading a gLTF with a single triangle. Yes, technically a 1x1 pixel texture would still be showing texturing but it's not an illustrative example of texturing. Nor would loading a 1 triangle gLTF show off loading gLTF files.

In the same way, showing skinning with only 1 influence per vertex is not really showing skinning. It doesn't really matter that it happens to go through the right code path.

I'd be happy to replace the model that that's there with this model above. Would that change be accepted?

@mrdoob
Copy link
Owner

mrdoob commented Mar 10, 2023

Yes! That'd be great 🙏

@WestLangley
Copy link
Collaborator

I noticed none of skinning examples actually show skinning.
You can see, no points are being weight blending by multiple vertices. That's not "skinning"

Well, that is not true.

Samba

@greggman
Copy link
Contributor Author

greggman commented Mar 11, 2023

Oh, you're right. That's about as good as a 2x2 pixel texture used to show off texturing

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

Successfully merging a pull request may close this issue.

4 participants