Skip to content

FBXLoader: Add skinning fixes.#33316

Merged
Mugen87 merged 1 commit intomrdoob:devfrom
Mugen87:dev1
Apr 2, 2026
Merged

FBXLoader: Add skinning fixes.#33316
Mugen87 merged 1 commit intomrdoob:devfrom
Mugen87:dev1

Conversation

@Mugen87
Copy link
Copy Markdown
Collaborator

@Mugen87 Mugen87 commented Apr 2, 2026

Fixed #22312.
Fixed #22167.

Description

I'm recently trying to fix open issues with our loaders. FBXLoader is next.

It's a challenging one because of the problematic/missing FBX spec definitions and the different interpretations in various importers/exporters. To improve FBXLoader I'm using the Blender FBX importer as a source.

This particular PR fixes three bugs in FBXLoader when the skeleton is setup:

  • Move bindSkeleton() after the scene traverse: This corrects the bind matrix for files without BindPose.
  • Explicit TransformLink-based bone inverse: This results in authoritative bind pose for skin weights.
  • Always provide a bind matrix: This prevents SkinnedMesh.bind() from overwriting the bone inverses.

With these fixes, the assets from #22312 and #22167 load like in Blender.

image image

I've added both assets from the issues to the repo so we have more assets for testing. That is potentially more important than with other formats since we can't just rely on a official spec document. If this and upcoming PRs would introduce a regression, please open a new issue and share the problematic model so we can fix it. With more test assets, we can easier detect regressions.

@Mugen87 Mugen87 added this to the r184 milestone Apr 2, 2026
@Mugen87 Mugen87 merged commit 13a06fc into mrdoob:dev Apr 2, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

FBXLoader: Wrong transformation of child mesh. FBXLoader: Unable to load animated mesh.

1 participant