GLTF model loads differently in three.js > r130.1

Hi there!

I’ve noticed one inconsistency between three.js versions which blocks me from updating my project to the latest release. Basically, I have this model (sorry, cannot upload it here because it’s too big) which loads correctly when using three versions 130.1 and below, but it kinda “breaks” (there’s a weird offset applied on the neck, see screenshots) in versions 131 and 132.

Now, I know there were a few bug fixes in those versions related to the GLTFLoader, so I’d like to know if now this is a normal behavior (and if it is, what I should do to prevent this glitch) or there’s still something that has to be fixed and if so, should I submit an issue on github in this case?

Of course, this problem is also present on gltf-viewer as it currently uses three.js r131. Strangely though, no errors are shown.

I’ve provided a simple fiddle to test this model with different versions of Three and two screenshots with the results. Thanks in advance for any advice or suggestion.

JSFiddle: Edit fiddle - JSFiddle - Code Playground

three.js r128:

three.js r132:

Does the model appear correctly in https://sandbox.babylonjs.com/?

If so it could be a bug in >r130, but I think we’d need to access the model to figure out exactly what’s happening.

Hi @donmccurdy! Thanks for the quick response and for the hint. I’ve checked the model on babylon’s sandbox and it was rendered as in the latest versions of three, so I’ve also checked it on PlayCanvas glTF Viewer and there was a hint. That viewer allows you to manually update morphTargetInfluences on model’s meshes and after resetting all those to 0, the model appeared correctry.

So, after loading the model, I just called child.updateMorphTargets(); to reset the values and that seems to be working. Not sure if this is the correct approach (probably not), it might be better to update the model directly and fix this from there, but I’m going to check first if all the animations are working correctly.

Thanks again Don for your response. I guess something changed in latest three.js versions so we have to call updateMorphTargets method now…, any idea what that might be? I’m just curious…