From 01605433cb6fc43928f1456ebe43105d2e6907c0 Mon Sep 17 00:00:00 2001 From: Bo Svensson <90132211+bosvensson1@users.noreply.github.com> Date: Sat, 16 Oct 2021 19:48:13 +0000 Subject: [PATCH] quadtreeworld.cpp (#3174) Currently, we disable a paging root node that we only need in exterior cells by setting its node mask to 0 when transitioning into an interior cell. Node masks are not ideal for this usage case because Node::getBound is unaware of masks. With this PR we just detach the unused node from the scene graph. _shadowedScene->getBound() in the MWShadowTechnique should return a much better value in interior cells with these changes. --- components/terrain/quadtreeworld.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/components/terrain/quadtreeworld.cpp b/components/terrain/quadtreeworld.cpp index c2d212f8a5..0282eb8de1 100644 --- a/components/terrain/quadtreeworld.cpp +++ b/components/terrain/quadtreeworld.cpp @@ -498,9 +498,8 @@ void QuadTreeWorld::enable(bool enabled) if (!mRootNode->getNumParents()) mTerrainRoot->addChild(mRootNode); } - - if (mRootNode) - mRootNode->setNodeMask(enabled ? ~0 : 0); + else if (mRootNode) + mTerrainRoot->removeChild(mRootNode); } View* QuadTreeWorld::createView()