Sorts skinning weights from high to low, for each vertex of the input
Primitive or PrimitiveTarget, and normalizes the weights.
Optionally, uses the given 'limit' to remove least-significant joint
influences such that no vertex has more than 'limit' influences.
Most realtime engines support a limited number of joint influences per vertex,
often 4 or 8. Sorting and removing the additional influences can reduce file
size and improve compatibility.
Example:
import { sortPrimitiveWeights } from'@gltf-transform/functions';
const limit = 4;
for (const mesh ofdocument.getRoot().listMeshes()) {
for (const prim of mesh.listPrimitives()) {
sortPrimitiveWeights(prim, limit);
}
}
Sorts skinning weights from high to low, for each vertex of the input Primitive or PrimitiveTarget, and normalizes the weights. Optionally, uses the given 'limit' to remove least-significant joint influences such that no vertex has more than 'limit' influences.
Most realtime engines support a limited number of joint influences per vertex, often 4 or 8. Sorting and removing the additional influences can reduce file size and improve compatibility.
Example:
import { sortPrimitiveWeights } from '@gltf-transform/functions'; const limit = 4; for (const mesh of document.getRoot().listMeshes()) { for (const prim of mesh.listPrimitives()) { sortPrimitiveWeights(prim, limit); } }