diff --git a/emulator/firmware-decomp/emu860c/render_textured.py b/emulator/firmware-decomp/emu860c/render_textured.py index 5e570a9e..a43932b4 100644 --- a/emulator/firmware-decomp/emu860c/render_textured.py +++ b/emulator/firmware-decomp/emu860c/render_textured.py @@ -75,11 +75,12 @@ for a in setups: zbuf[inside]=z[inside] if up and vp and tzp: tz=tzp[0]*xx+tzp[1]*yy+tzp[2] - tz=np.where(np.abs(tz)<1e-6, 1e-6, tz) - u=(up[0]*xx+up[1]*yy+up[2])/tz # perspective-correct texel coords + tz=np.where(np.abs(tz)<1.0, np.where(tz>=0,1.0,-1.0), tz) + # divlogo: plane = scale*(coord/z); plane/texz_plane = coord (texels), tiled + u=(up[0]*xx+up[1]*yy+up[2])/tz v=(vp[0]*xx+vp[1]*yy+vp[2])/tz - ui=np.mod(u.astype(np.int64), pu) - vi=np.mod(v.astype(np.int64), pv) + ui=np.mod(np.rint(u*pu).astype(np.int64), pu) + vi=np.mod(np.rint(v*pv).astype(np.int64), pv) samp=parr[vi, ui] img[inside]=samp[inside] else: