2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-08 23:07:42 +00:00

Frustum culling fix

This commit is contained in:
Jack Andersen
2017-11-21 12:18:52 -10:00
parent 7a5dff47b7
commit ef4a07e963
4 changed files with 6 additions and 6 deletions

View File

@@ -576,7 +576,7 @@ void CStateManager::DrawAdditionalFilters() const
zeus::CFrustum CStateManager::SetupViewForDraw(const SViewport& vp) const zeus::CFrustum CStateManager::SetupViewForDraw(const SViewport& vp) const
{ {
const CGameCamera* cam = static_cast<const CGameCamera*>(x870_cameraManager->GetCurrentCamera(*this)); const CGameCamera* cam = x870_cameraManager->GetCurrentCamera(*this);
zeus::CTransform camXf = x870_cameraManager->GetCurrentCameraTransform(*this); zeus::CTransform camXf = x870_cameraManager->GetCurrentCameraTransform(*this);
g_Renderer->SetWorldViewpoint(camXf); g_Renderer->SetWorldViewpoint(camXf);
CBooModel::SetNewPlayerPositionAndTime(x84c_player->GetTranslation()); CBooModel::SetNewPlayerPositionAndTime(x84c_player->GetTranslation());
@@ -594,7 +594,7 @@ zeus::CFrustum CStateManager::SetupViewForDraw(const SViewport& vp) const
zeus::CFrustum frustum; zeus::CFrustum frustum;
zeus::CProjection proj; zeus::CProjection proj;
proj.setPersp(zeus::SProjPersp{fov, width / height, cam->GetNearClipDistance(), cam->GetFarClipDistance()}); proj.setPersp(zeus::SProjPersp{fov, width / height, cam->GetNearClipDistance(), cam->GetFarClipDistance()});
frustum.updatePlanes(camXf, proj); frustum.updatePlanes(CGraphics::g_GXModelView, proj);
g_Renderer->SetClippingPlanes(frustum); g_Renderer->SetClippingPlanes(frustum);
//g_Renderer->PrimColor(zeus::CColor::skWhite); //g_Renderer->PrimColor(zeus::CColor::skWhite);
CGraphics::SetModelMatrix(zeus::CTransform::Identity()); CGraphics::SetModelMatrix(zeus::CTransform::Identity());

View File

@@ -920,8 +920,8 @@ void CBooRenderer::DrawUnsortedGeometry(int areaIdx, int mask, int targetMask)
if (!x44_frustumPlanes.aabbFrustumTest(model->x20_aabb)) if (!x44_frustumPlanes.aabbFrustumTest(model->x20_aabb))
{ {
//model->x40_25_modelVisible = false; model->x40_25_modelVisible = false;
//continue; continue;
} }
if (x318_25_drawWireframe) if (x318_25_drawWireframe)

2
hecl

Submodule hecl updated: 8873d52456...2bfe803bf6

Submodule specter updated: 883a7498e1...155d455379