Pivots are in a wrong positions after FBX import #104558

Open
opened 2023-04-19 04:30:08 +02:00 by Jesse Yurkovich · 1 comment

System Information
Operating system: Windows-10-10.0.22621-SP0 64 Bits
Graphics card: NVIDIA GeForce RTX 3070/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 531.61

Blender Version
Broken: version: 3.4.1, branch: blender-v3.4-release, commit date: 2022-12-19 17:00, hash: rB55485cb379f7
Worked: (newest version of Blender that worked as expected)

Short description of error

If you import this file in Blender pivots will be in the middle of the signs. but if you import this file in Unity or Maya pivots will be in the roots of objects. Down to the beginning of geometry.

I need the right import algorithm for Blender

Exact steps for others to reproduce the error

  • none listed

Note: This was copied from blender/blender#107029

**System Information** Operating system: Windows-10-10.0.22621-SP0 64 Bits Graphics card: NVIDIA GeForce RTX 3070/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 531.61 **Blender Version** Broken: version: 3.4.1, branch: blender-v3.4-release, commit date: 2022-12-19 17:00, hash: `rB55485cb379f7` Worked: (newest version of Blender that worked as expected) **Short description of error** If you import this file in Blender pivots will be in the middle of the signs. but if you import this file in Unity or Maya pivots will be in the roots of objects. Down to the beginning of geometry. I need the right import algorithm for Blender **Exact steps for others to reproduce the error** - none listed Note: This was copied from https://projects.blender.org/blender/blender/issues/107029
Jesse Yurkovich added the
Priority
Normal
Status
Needs Triage
Type
Report
labels 2023-04-19 04:30:09 +02:00
Member

It just so happens that I'm looking into this area of the importer for a different issue at the moment.

This FBX file has Geometric Transforms defined for each Model (similar to Blender Object). It looks like Blender's FBX Importer transforms the Object by this amount, but I'm wondering if it should actually be transforming the Mesh data itself instead (Unity appears to do this). Transforming the Mesh data would make some sense of why Geometric Transforms are not inherited on child Objects. The FBX documentation notes that "[Geometric Transforms] relate to the object-offset concept in 3ds Max".

I added an Empty at the origin of one of the signs and then subtracted the GeometricTranslation (converted from FBX coordinates to Blender coordinates) and it goes to precisely where the pivot is expected to be in this issue. image

I imagine that changing the importer to transform the Meshes by the Geometric Transforms and not the Objects could be done, but care would probably need to be taken if multiple Models (Blender Objects) can share the same Geometry (Blender Meshes), but have different Geometric Transforms, since this is not possible in Blender without duplicating the mesh or doing something different like inserting an Empty into the hierarchy to achieve the Geometric Transforms instead. Though, I'm not sure how this would work for Armatures/Cameras/etc., they might need to remain with the current behaviour.

As a sidenote, slightly weird FBX file, as it has both PreRotation (FBX SDK/Maya) and GeometricTranslation/GeometricRotation (3DSMax).

It just so happens that I'm looking into this area of the importer for a different issue at the moment. This FBX file has Geometric Transforms defined for each Model (similar to Blender Object). It looks like Blender's FBX Importer transforms the Object by this amount, but I'm wondering if it should actually be transforming the Mesh data itself instead (Unity appears to do this). Transforming the Mesh data would make some sense of why Geometric Transforms are not inherited on child Objects. The FBX documentation notes that "[Geometric Transforms] relate to the object-offset concept in 3ds Max". I added an Empty at the origin of one of the signs and then subtracted the `GeometricTranslation` (converted from FBX coordinates to Blender coordinates) and it goes to precisely where the pivot is expected to be in this issue. ![image](/attachments/2797d8a7-2c89-4fb5-b92e-6aef976f40c1) I imagine that changing the importer to transform the Meshes by the Geometric Transforms and not the Objects could be done, but care would probably need to be taken if multiple Models (Blender Objects) can share the same Geometry (Blender Meshes), but have different Geometric Transforms, since this is not possible in Blender without duplicating the mesh or doing something different like inserting an Empty into the hierarchy to achieve the Geometric Transforms instead. Though, I'm not sure how this would work for Armatures/Cameras/etc., they might need to remain with the current behaviour. As a sidenote, slightly weird FBX file, as it has both `PreRotation` (FBX SDK/Maya) and `GeometricTranslation`/`GeometricRotation` (3DSMax).
Sign in to join this conversation.
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender-addons#104558
No description provided.