From 6bfe0adf0ad7bda23125fbc4272ec48a3c8b2263 Mon Sep 17 00:00:00 2001 From: Sergey Lipskiy Date: Fri, 28 Jul 2017 10:50:02 +0700 Subject: [PATCH] Fix triangle index calculation for flat shading. --- src/GraphicsDrawer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GraphicsDrawer.cpp b/src/GraphicsDrawer.cpp index 1cb0cdd3..408105fe 100644 --- a/src/GraphicsDrawer.cpp +++ b/src/GraphicsDrawer.cpp @@ -66,7 +66,7 @@ void GraphicsDrawer::addTriangle(int _v0, int _v1, int _v2) } else if ((gSP.geometryMode & G_SHADING_SMOOTH) == 0) { // Flat shading - SPVertex & vtx0 = triangles.vertices[triangles.elements[firstIndex + ((RSP.w1 >> 24) & 3)]]; + SPVertex & vtx0 = triangles.vertices[triangles.elements[firstIndex + (((RSP.w1 >> 24) & 3) % 3)]]; for (u32 i = firstIndex; i < triangles.num; ++i) { SPVertex & vtx = triangles.vertices[triangles.elements[i]]; vtx.r = vtx.flat_r = vtx0.r;