diff --git a/Src/Graphics/New3D/New3D.cpp b/Src/Graphics/New3D/New3D.cpp index b8e1491..a726d6a 100644 --- a/Src/Graphics/New3D/New3D.cpp +++ b/Src/Graphics/New3D/New3D.cpp @@ -1584,6 +1584,10 @@ void CNew3D::ClipModel(const Model *m) void CNew3D::CalcViewport(Viewport* vp, float near, float far) { + if (far > 1e30) { + far = near * 1000000; // fix for ocean hunter which passes some FLT_MAX for a few matrices. HW must have some safe guard for these + } + if (near < far / 1000000) { near = far / 1000000; // if we get really close to zero somehow, we will have almost no depth precision }