Closed greggman closed 1 year ago
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.
There's a model on mixamo that could be a nice replacement.
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?
Yes! That'd be great 🙏
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.
Oh, you're right. That's about as good as a 2x2 pixel texture used to show off texturing
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)
This is not skinning (moving independent meshes)
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.