From 8ebb552a9551abcb3d013b192a0dc9c2ea6f2bcc Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Wed, 7 Jan 2015 20:41:07 -0800 Subject: [PATCH] Fix T40257: Frustum culling not working properly Instead of getting fancy this time, we'll just use Mahalin's simpler fix. This may have slight performance impacts, but it is a lot simpler than the previous fix and shouldn't cause as many bugs. --- source/gameengine/Ketsji/KX_Scene.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp index d8f983b2d86..b6fd69fe1f4 100644 --- a/source/gameengine/Ketsji/KX_Scene.cpp +++ b/source/gameengine/Ketsji/KX_Scene.cpp @@ -1502,6 +1502,15 @@ void KX_Scene::CalculateVisibleMeshes(RAS_IRasterizer* rasty,KX_Camera* cam, int bool dbvt_culling = false; if (m_dbvt_culling) { + /* Reset KX_GameObject m_bCulled to true before doing culling + * since DBVT culling will only set it to false. + * This is similar to what RAS_BucketManager does for RAS_MeshSlot culling. + */ + for (int i = 0; i < m_objectlist->GetCount(); i++) { + KX_GameObject *gameobj = static_cast(m_objectlist->GetValue(i)); + gameobj->SetCulled(true); + } + // test culling through Bullet MT_Vector4 planes[6]; // get the clip planes