Open + Saving FBX Changes Units

fbx models being opened and saved by Aspose.ThreeD have changed units and end up being extremely big (100x) when imported by other applications, including Unity and Autodesk FBX Review

3dsMax.zip (236.7 KB)

I’ve attached a set of models, one that has been exported by 3ds max, and another that has been opened and saved by Aspose ThreeD. The scene was not modified in any way by the aspose API, yet units has changed.

Notice the UnitScaleFactor has been changed, while the geometry data and node transformation was not touched.

3ds max model GlobalSettings:
P: “UnitScaleFactor”, “double”, “Number”, “”,100

Aspose opened and saved fbx:
P: “UnitScaleFactor”, “double”, “Number”, “”,10000

In addition UpAxis has changed but that does not appear to change the resulting geometry in the application that imported the model (Unity3D)

@bortos,

Can you please share which version of Aspose.3D you are using along with environment details.

.NET Core application running on Windows with the latest Aspose.ThreeD on nuget (20.1.0)

ImportExportError.zip (3.8 MB)

I’ve attached the above test project an was able to isolate the issue to when KeepBuildinGlobalSettings is enabled.

@bortos,

Thank you for the details.

We have logged a ticket with ID THREEDNET-622 in our issue management system for further investigation and resolution. The ticket ID has been linked with this thread so that you will receive notification as soon as the ticket is resolved.

We are sorry for the inconvenience.

@bortos,

Thank you for the details.

We have logged a ticket with ID THREEDNET-622 in our issue management system for further investigation and resolution. The ticket ID has been linked with this thread so that you will receive notification as soon as the ticket is resolved.

We are sorry for the inconvenience.

@bortos,

I like to inform that we have investigated this in details and like to share our findings with you. I like to share that during importing the FBX file, the Aspose.3D will do a unit conversion from GlobalSettings to AssetInfo by multiplying 0.01, and multiply 100 when exporting the scene to FBX file, If the FBXLoadOptions.KeepBuiltinGlobalSettings is true, the importer will override all properties, thus makes the value incompatible with Aspose.3D, but you can get all unmodified raw values in this case. A solution to this is to turn KeepBuiltinGlobalSettings to false, or manually update the AssetInfo.UnitScaleFactor by multiplying 0.01 before exporting. We are evaluating the possibility to create a similar flag in FBXSaveOptions for raw properties instead of the native properties.