He estado tratando de entender las matemáticas detrás del desollamiento de Three.JS y he estado atrapado allí por un tiempo.
Mi caso de uso es cargar "cualquier" modelo 3D que se pase a través de OpenAssetImport y se guarde en un formato de modelo personalizado (principalmente construido para un renderizado nativo personalizado, pero es solo una representación de las estructuras de datos de Assimp).
En este formato de modelo hago un seguimiento:
Para cada hueso, registro:
Luego estoy luchando por reconstruir el esqueleto en Three.JS. Mi intento es este:
THREE.Object3DTHREE.Object3D ) al que está conectadoTHREE.Bonebone.applyMatrix(assimpBone.bindMatrix)THREE.Bone como hijo de THREE.Object3DTHREE.Skeleton con la matriz de objetos THREE.BoneSin embargo, para algunos modelos esto funciona, mientras que para otros tengo grandes errores con las mallas deformadas (incluso si la malla base aún es al menos reconocible).
Ejemplo de malla cargada con desollar deshabilitado:
Misma malla cargada con desollado habilitado: