From f469185f2540378cf0cec9af11e94015f83ecbe1 Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Tue, 27 May 2014 12:52:56 -0700 Subject: Fix T40344: Levels of Detail not smooth with Armature Modifier Due to skinning changes for multi-threaded animations, the LOD check was being done after skinning. Now the LOD check is run before animations. This means the culling information is a frame old, but this should be fine. --- source/gameengine/Ketsji/KX_Dome.cpp | 3 --- source/gameengine/Ketsji/KX_KetsjiEngine.cpp | 6 +++--- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/source/gameengine/Ketsji/KX_Dome.cpp b/source/gameengine/Ketsji/KX_Dome.cpp index 71d7257a907..657eaef72b7 100644 --- a/source/gameengine/Ketsji/KX_Dome.cpp +++ b/source/gameengine/Ketsji/KX_Dome.cpp @@ -2045,8 +2045,5 @@ void KX_Dome::RenderDomeFrame(KX_Scene* scene, KX_Camera* cam, int i) scene->CalculateVisibleMeshes(m_rasterizer,cam); scene->RenderBuckets(camtrans, m_rasterizer); - - // update levels of detail - scene->UpdateObjectLods(); } diff --git a/source/gameengine/Ketsji/KX_KetsjiEngine.cpp b/source/gameengine/Ketsji/KX_KetsjiEngine.cpp index 96a3845a439..dc81bae1f0c 100644 --- a/source/gameengine/Ketsji/KX_KetsjiEngine.cpp +++ b/source/gameengine/Ketsji/KX_KetsjiEngine.cpp @@ -686,6 +686,9 @@ bool KX_KetsjiEngine::NextFrame() SG_SetActiveStage(SG_STAGE_ACTUATOR_UPDATE); scene->UpdateParents(m_frameTime); + // update levels of detail + scene->UpdateObjectLods(); + if (!GetRestrictAnimationFPS()) { m_logger->StartLog(tc_animations, m_kxsystem->GetTimeInSeconds(), true); @@ -1316,9 +1319,6 @@ void KX_KetsjiEngine::RenderFrame(KX_Scene* scene, KX_Camera* cam) scene->CalculateVisibleMeshes(m_rasterizer,cam); - // update levels of detail - scene->UpdateObjectLods(); - m_logger->StartLog(tc_rasterizer, m_kxsystem->GetTimeInSeconds(), true); SG_SetActiveStage(SG_STAGE_RENDER); -- cgit v1.2.3