From 0d63d1f971d5fd4e087ad893c0561cf341316adc Mon Sep 17 00:00:00 2001 From: Andy Nichols <andy.nichols@qt.io> Date: Wed, 5 Aug 2020 16:21:36 +0200 Subject: [PATCH] Add assimp import option to preserve pivot hierarchies MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit And turn it off by default since this can lead to very deep QML files that are slow to load and edit. The only time these are necessary is with certain types of animations. So only turn this on when needed. Fixes: QTBUG-85147 Change-Id: I98b9c2e25b9811fe729afc30b37d2e626fc71a05 Reviewed-by: Christian Strømme <christian.stromme@qt.io> (cherry picked from commit 171406ff4509ac49d1889a2404a302db39aa9383) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> --- src/imports/quick3d/doc/src/qtquick3d-tool-balsam.qdoc | 2 ++ src/plugins/assetimporters/assimp/assimpimporter.cpp | 3 +++ src/plugins/assetimporters/assimp/options.json | 6 ++++++ 3 files changed, 11 insertions(+) diff --git a/src/imports/quick3d/doc/src/qtquick3d-tool-balsam.qdoc b/src/imports/quick3d/doc/src/qtquick3d-tool-balsam.qdoc index 74f130c83..4d2002758 100644 --- a/src/imports/quick3d/doc/src/qtquick3d-tool-balsam.qdoc +++ b/src/imports/quick3d/doc/src/qtquick3d-tool-balsam.qdoc @@ -167,6 +167,8 @@ meshes. from meshes. \row \li \c {--removeComponentTextures} \li Removes any embedded texture components from meshes. +\row \li \c {--fbxPreservePivots} \li Preserves extra pivot nodes created by +FBX assets (can create deep node hierarchies) \endtable The following table lists the command-line options recognized by \c balsam when diff --git a/src/plugins/assetimporters/assimp/assimpimporter.cpp b/src/plugins/assetimporters/assimp/assimpimporter.cpp index c8b50b320..c9787035c 100644 --- a/src/plugins/assetimporters/assimp/assimpimporter.cpp +++ b/src/plugins/assetimporters/assimp/assimpimporter.cpp @@ -1568,6 +1568,9 @@ void AssimpImporter::processOptions(const QVariantMap &options) m_postProcessSteps = aiPostProcessSteps(m_postProcessSteps | aiProcess_RemoveComponent); m_importer->SetPropertyInteger(AI_CONFIG_PP_RVC_FLAGS, removeComponents); } + + bool preservePivots = checkBooleanOption(QStringLiteral("fbxPreservePivots"), optionsObject); + m_importer->SetPropertyBool(AI_CONFIG_IMPORT_FBX_PRESERVE_PIVOTS, preservePivots); } bool AssimpImporter::checkBooleanOption(const QString &optionName, const QJsonObject &options) diff --git a/src/plugins/assetimporters/assimp/options.json b/src/plugins/assetimporters/assimp/options.json index fc108a452..02f24f446 100644 --- a/src/plugins/assetimporters/assimp/options.json +++ b/src/plugins/assetimporters/assimp/options.json @@ -162,6 +162,12 @@ "description": "Removes any embedded texture components from meshes.", "value": false, "type": "Boolean" + }, + "fbxPreservePivots": { + "name": "FBX: Preserve Pivot Points", + "description": "Set whether the fbx importer will preserve pivot points (as extra nodes)", + "value": false, + "type": "Boolean" } }, "groups": { -- GitLab