From ba9c2c99282e5276f9104230df4dafe6f25c801c Mon Sep 17 00:00:00 2001 From: unelsson Date: Sat, 31 Dec 2022 01:03:25 +0200 Subject: [PATCH 1/4] Add TemplateRef to animated Collada model --- components/resource/scenemanager.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/components/resource/scenemanager.cpp b/components/resource/scenemanager.cpp index 06fbd8470f..516f3e4af4 100644 --- a/components/resource/scenemanager.cpp +++ b/components/resource/scenemanager.cpp @@ -636,6 +636,9 @@ namespace Resource backToOriginTrans->addChild(newRiggeometryHolder); group->addChild(backToOriginTrans); + + node->getOrCreateUserDataContainer()->addUserObject( + new TemplateRef(newRiggeometryHolder->getGeometry(0))); } } } From d065dbbefa9c067bf0eef3c2d32fe107498224b9 Mon Sep 17 00:00:00 2001 From: unelsson Date: Wed, 4 Jan 2023 16:07:47 +0200 Subject: [PATCH 2/4] Add named-based Collada recognition --- apps/openmw/mwrender/objectpaging.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/openmw/mwrender/objectpaging.cpp b/apps/openmw/mwrender/objectpaging.cpp index 2140bd5412..b3f03de33c 100644 --- a/apps/openmw/mwrender/objectpaging.cpp +++ b/apps/openmw/mwrender/objectpaging.cpp @@ -16,6 +16,7 @@ #include #include +#include #include #include #include @@ -643,7 +644,8 @@ namespace MWRender { if (cnode->getNumChildrenRequiringUpdateTraversal() > 0 || SceneUtil::hasUserDescription(cnode, Constants::NightDayLabel) - || SceneUtil::hasUserDescription(cnode, Constants::HerbalismLabel)) + || SceneUtil::hasUserDescription(cnode, Constants::HerbalismLabel) + || cnode->getName() == "Collada visual scene group") continue; else refnumSet->mRefnums.push_back(pair.first); From bfa0e751dd39ce2bed090cb1a3a5239bfac3661d Mon Sep 17 00:00:00 2001 From: unelsson Date: Thu, 5 Jan 2023 01:34:26 +0200 Subject: [PATCH 3/4] Skip merging for only animated models (Collada) --- apps/openmw/mwrender/objectpaging.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/openmw/mwrender/objectpaging.cpp b/apps/openmw/mwrender/objectpaging.cpp index b3f03de33c..4d847a3619 100644 --- a/apps/openmw/mwrender/objectpaging.cpp +++ b/apps/openmw/mwrender/objectpaging.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include #include @@ -16,7 +17,6 @@ #include #include -#include #include #include #include @@ -645,7 +645,8 @@ namespace MWRender if (cnode->getNumChildrenRequiringUpdateTraversal() > 0 || SceneUtil::hasUserDescription(cnode, Constants::NightDayLabel) || SceneUtil::hasUserDescription(cnode, Constants::HerbalismLabel) - || cnode->getName() == "Collada visual scene group") + || (cnode->getName() == "Collada visual scene group" + && dynamic_cast(cnode->getUpdateCallback()))) continue; else refnumSet->mRefnums.push_back(pair.first); From 5b0713517a815b23e7acc094e378ff747eefe463 Mon Sep 17 00:00:00 2001 From: unelsson Date: Thu, 5 Jan 2023 01:40:36 +0200 Subject: [PATCH 4/4] Clang-format --- components/resource/scenemanager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/resource/scenemanager.cpp b/components/resource/scenemanager.cpp index 516f3e4af4..b6a22c08a4 100644 --- a/components/resource/scenemanager.cpp +++ b/components/resource/scenemanager.cpp @@ -636,7 +636,7 @@ namespace Resource backToOriginTrans->addChild(newRiggeometryHolder); group->addChild(backToOriginTrans); - + node->getOrCreateUserDataContainer()->addUserObject( new TemplateRef(newRiggeometryHolder->getGeometry(0))); }