BabylonJS / Exporters

Exporters for Babylon.js and gltf file formats
Other
613 stars 313 forks source link

3ds Max 2023 takes extremely long time to export and logs nothing #1094

Closed PatrickRyanMS closed 1 year ago

PatrickRyanMS commented 1 year ago

The character asset .fbx below was imported into 3ds Max 2023 and exporter using the 20230608.5 exporter to .glb and .babylon files. The export took an extremely long time - over an hour - and the log window was blank for the entire export process making it seem like the exporter had hung.

Importing the same file into Maya 2023 and exporting to .glb and .babylon took between 30 and 60 seconds at most and had a complete history in the log window.

It seems like there may be some issues with the 3ds Max implementation that is getting stuck in loops. The files successfully export given enough time, but it does feel like it's doing a lot more than it should. Further, the lack of any information written to the log window for the entire export is troubling.

This file uses a skinned mesh with many morph targets for the entire character body (morphing body shape and size) so the culprit may be somewhere in the code dealing with morphs. I have not seen this type of lag with other recent 3ds Max exports, but none of those files have had the number or complexity of the morphs present in this file.

riggedMeshTest.zip

bghgary commented 1 year ago

@SergioRZMasson Can you investigate?

SergioRZMasson commented 1 year ago

This PR: https://github.com/BabylonJS/Exporters/pull/1096 should reduce the export time by 50%. However, we continue to be slow because the call to ManagedServices.MaxscriptSDK.ExecuteStringMaxscriptQuery is super slow (96% of the current export time), since the model has 200+ morph target we call this API 200+ times. If we need to get this faster we will probably have to find an alternative to that API for getting the morph targets information.

SergioRZMasson commented 1 year ago

@PatrickRyanMS After PR #1101 the print issue has also been fixed.

Since we are now much faster doing this export and the log messages are been printed can we consider closing this issue? There is not much we can really do since getting the morph information from 3DS Max is an expensive call.

PatrickRyanMS commented 1 year ago

Sounds good. If we have done as much as possible here, we can close this one and open a new issue if we see any other performance issues in the future.