[Bf-blender-cvs] [f469185] master: Fix T40344: Levels of Detail not smooth with Armature Modifier

Mitchell Stokes noreply at git.blender.org
Tue May 27 21:57:13 CEST 2014


Commit: f469185f2540378cf0cec9af11e94015f83ecbe1
Author: Mitchell Stokes
Date:   Tue May 27 12:52:56 2014 -0700
https://developer.blender.org/rBf469185f2540378cf0cec9af11e94015f83ecbe1

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.

===================================================================

M	source/gameengine/Ketsji/KX_Dome.cpp
M	source/gameengine/Ketsji/KX_KetsjiEngine.cpp

===================================================================

diff --git a/source/gameengine/Ketsji/KX_Dome.cpp b/source/gameengine/Ketsji/KX_Dome.cpp
index 71d7257..657eaef 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 96a3845..dc81bae 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);




More information about the Bf-blender-cvs mailing list