diff --git a/Src/Graphics/New3D/New3D.cpp b/Src/Graphics/New3D/New3D.cpp index c7a8d20..639d453 100644 --- a/Src/Graphics/New3D/New3D.cpp +++ b/Src/Graphics/New3D/New3D.cpp @@ -926,6 +926,13 @@ void CNew3D::RenderViewport(UINT32 addr) void CNew3D::CopyVertexData(const R3DPoly& r3dPoly, std::vector& vertexArray) { + // both lemans 24 and dirt devils are rendering some totally transparent polys as the first object in each viewport + // in dirt devils it's parallel to the camera so is completel invisible, but breaks our depth calculation + // in lemans 24 its a sort of diamond shape, but never leaves a hole in the transparent geometry so must be being skipped by the h/w + if (r3dPoly.faceColour[3] == 0) { + return; + } + if (m_numPolyVerts==4) { if (r3dPoly.number == 4) { vertexArray.emplace_back(r3dPoly, 0); // construct directly inside container without copy