Converted GLBs from FBX have morph Targets that affect lighting

Hello Everyone!

I recently came aross a peculiar Problem. When I view a 3 Model of a Character GLB with Morphs with the GLTF viewer from PlayCanvas then everything seems to be working correctly. But when I import an FBX File (Exported from Blender with Shape-Keys, same file but now as FBX) of the Same character with the “convert to GLB” option enabled, morph animations then weirdly affect the lighting of the character. And it does so on every morph Target.

I have recorded a short clip here, where I first load the GLB file with the GLTF viewer (everything works accordingly). Then I open a window which was opened by clicking “Open in Viewer” in the Editor on a Converted (imported as FBX) GLB file in my PlayCanvas Project and get weird results. This does affect one of my applications, where a character then is weirdly lit when playing a morph animation.

Any idea on what I could do here?

I also had an older project with the old animation system and playcanvas-gltf.js and playcanvas-anim.js where I loaded a glb animation and added this as a new animation clip. There everything works properly.

Does this have anything to do with recent updates?

We have some issue importing morph target normals from fbx files. @slimbuck tried to solve this but without a success at the moment. One of the option to avoid the issue is to not include normals for blend targets in the fbx, if this is something you have control over.
The other could be to instruct the engine to ignore the normals when morphing … but we don’t have an API for this, and is something we’d need to add.

2 Likes

Okay thank you for the tips!

So this is a known issue. I’ll keep an eye on any updates then :slight_smile:

Thank you!

@mvaligursky looks like i’m running into the same issue, is there some place we can track the progress @slimbuck is making on this bug?

We only have internal issue logged on this so far … feel free to add a public one here to track progress.

Do you need morph target normals or not? If not, there are some possible workarounds.

I need normals, as its a characters face with morph targets that are procedurally animated.

In this case, the only workaround is to export your fbx to glb elsewhere (Blender), which might preserve the blend normals better, load this at runtime and render it this way. At least till we get some time to fix our side, which we tried and didn’t succeed few months ago.

Did you guys get any further with this issue?

I’m also trying to do some facial animation on an imported FBX that uses morph targets and it messes up the lighting due to the normals shifting.

I haven’t tried exporting as GLB yet, because I’d rather avoid having to do that if possible. So just wanted to check in and see if there’s any progress on this.

There has been no update on this unfortunately.