SkinnedMesh won't render when loaded from `.dae`

materials
dae

#1

I have a SkinnedMesh loaded from a .dae that won’t render if the .skinning = true; property is set on the material. Everything else works fine when I set .skinning = false; I also found that when I add the loaded THREE.MeshPhongMaterial() to a new THREE.Mesh() that’s placed closer to the camera than the loaded THREE.SkinnedMesh, that the loaded model will render just fine. Though if the THREE.Mesh() is placed farther from the camera, neither will render. I’ve also tried setting/calling skinnedMesh.frustumCulled = false;, skinnedMesh.updateMatrixWorld();, and skinnedMesh.skeleton.calculateInverses(); with no luck.

I can’t post the model currently because it’s proprietary. I’m wondering if someone can point me in the right direction for debugging this… :confused:


#2

The first thing you can try is to convert your Collada model to glTF with this tool:

glTF is the recommended 3D file format of three.js. Compared to Collada, it produces much smaller files and is also faster to parse. Read the following guide for more information:

https://threejs.org/docs/index.html#manual/en/introduction/Loading-3D-models


#3

It seems COLLADA2GLTF is unable to convert it so I assume there might be more issues with this file.

My original problem ended up being solved by properly binding the skeleton to the mesh. Before I actually got it to bind properly, the entire thing would disappear unless skinning was false. After I got it to bind properly, skinning: true worked, and was even necessary for getting bones to work.