diff options
author | Mitchell Stokes <mogurijin@gmail.com> | 2015-01-08 07:41:07 +0300 |
---|---|---|
committer | Mitchell Stokes <mogurijin@gmail.com> | 2015-01-08 07:41:07 +0300 |
commit | 8ebb552a9551abcb3d013b192a0dc9c2ea6f2bcc (patch) | |
tree | d8568a168e00c1e8c5a62fe2e99687bfbb41ca54 /source/gameengine | |
parent | 4fac29ca0e8cc09a3f7bce27f549cc75ffdbb1d4 (diff) |
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.
Diffstat (limited to 'source/gameengine')
-rw-r--r-- | source/gameengine/Ketsji/KX_Scene.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
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<KX_GameObject*>(m_objectlist->GetValue(i)); + gameobj->SetCulled(true); + } + // test culling through Bullet MT_Vector4 planes[6]; // get the clip planes |