Skip to content

Suggestion: increase the skinning weight limit per vertex from 4 to 8 #12127

@looeee

Description

@looeee

I'm opening this as a point of discussion - I have not been able to find any technical reason for this limit aside from performance and the ease of using single Vec4s for weights and indices. Going through the code base here it seems like the limit was set many years ago when skinning was first introduced to three.js, so perhaps it's time to revisit it.

I've run into issues with several models that I am not able to edit which have more than 4 weights per vertex (specifically, all models downloaded from Mixamo). When loading them in three.js the extra weights are deleted, resulting in errors in the animation. Loading the same models in Sketchfab results in the animation playing correctly, so it must be possible to support more than 4 vertex weights in WebGL.

For reference here is the difference in the animation (note the position of the fingers). In Sketchfab (correct)
sketchfab

and the same model loaded in three.js (incorrect)
three

Here is the model. The error is especially obvious with this example, however most Mixamo models show similar minor errors (head wobbling, splayed fingers, minor jitter etc).
victory_2_30fps.zip

With regards to editing the model to remove the extra vertex weights manually - I'm not sure this would be possible without a lot of work on the animation, but even so I have tried loading the models into 3DS Max and Blender and re-exporting for use in three.js using a few different methods (FBX, Collada, JSON). In all cases the model gets completely corrupted and is unusable so that is not an option.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions