From 80b219effab1fd9cd375afaae01ff622ad2a8b64 Mon Sep 17 00:00:00 2001 From: Sergey Lipskiy Date: Sun, 28 Jun 2020 17:33:35 +0700 Subject: [PATCH] Correct vertex Z calculation in GraphicsDrawer::_drawThickLine Note: viewport transformation of Z coordinate performed in fragment shader. Fixed #2237 Mario Artist - Polygon Studio: line3D bug (HLE) --- src/GraphicsDrawer.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/GraphicsDrawer.cpp b/src/GraphicsDrawer.cpp index 12b982fe..de84c446 100644 --- a/src/GraphicsDrawer.cpp +++ b/src/GraphicsDrawer.cpp @@ -946,13 +946,13 @@ void GraphicsDrawer::_drawThickLine(int _v0, int _v1, float _width) pVtx[0] = triangles.vertices[_v0]; pVtx[0].x = pVtx[0].x / pVtx[0].w * gSP.viewport.vscale[0] + gSP.viewport.vtrans[0]; pVtx[0].y = ySign * pVtx[0].y / pVtx[0].w * gSP.viewport.vscale[1] + gSP.viewport.vtrans[1]; - pVtx[0].z = pVtx[0].z / pVtx[0].w * gSP.viewport.vscale[2] + gSP.viewport.vtrans[2]; + pVtx[0].z = pVtx[0].z / pVtx[0].w; pVtx[1] = pVtx[0]; pVtx[2] = triangles.vertices[_v1]; pVtx[2].x = pVtx[2].x / pVtx[2].w * gSP.viewport.vscale[0] + gSP.viewport.vtrans[0]; pVtx[2].y = ySign * pVtx[2].y / pVtx[2].w * gSP.viewport.vscale[1] + gSP.viewport.vtrans[1]; - pVtx[2].z = pVtx[2].z / pVtx[2].w * gSP.viewport.vscale[2] + gSP.viewport.vtrans[2]; + pVtx[2].z = pVtx[2].z / pVtx[2].w; pVtx[3] = pVtx[2]; if (fabs(pVtx[0].y - pVtx[2].y) < 0.0001) {