From fac9c5f41bd8cf7bcc4bbe7ccc19198191c10577 Mon Sep 17 00:00:00 2001 From: austin Date: Tue, 23 Nov 2021 13:44:17 -0500 Subject: [PATCH] Work on minimizing terrain cell poly usage --- .../java/electrosphere/renderer/ModelUtils.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/main/java/electrosphere/renderer/ModelUtils.java b/src/main/java/electrosphere/renderer/ModelUtils.java index 06318daf..9e059478 100644 --- a/src/main/java/electrosphere/renderer/ModelUtils.java +++ b/src/main/java/electrosphere/renderer/ModelUtils.java @@ -420,6 +420,10 @@ public class ModelUtils { for(int x = 0; x < width - 1; x = x + stride){ quadCurrent = null; for(int y = 0; y < height - 1; y = y + stride){ + if((x == 5 && y == 2)){ + System.out.println(quadCurrent); +// continue; + } if(quadCurrent == null){ minVal = 100000000; maxVal = 0; @@ -452,7 +456,8 @@ public class ModelUtils { } boolean textureMatch = false; float texture = -1; - if(x+stride < width - 1 && y+stride < height -1 && texturemap[x][y] == texturemap[x+stride][y] && + if(x+stride < width - 1 && y+stride < height -1 && + texturemap[x][y] == texturemap[x+stride][y] && texturemap[x][y] == texturemap[x][y+stride] && texturemap[x][y] == texturemap[x+stride][y+stride]){ @@ -496,7 +501,8 @@ public class ModelUtils { if(newMax - newMin < MINIMIZATION_DIFF_MAX && texturemap[quadCurrent.startX][quadCurrent.startY] == texturemap[x+stride][y] && texturemap[quadCurrent.startX][quadCurrent.startY] == texturemap[x][y+stride] && - texturemap[quadCurrent.startX][quadCurrent.startY] == texturemap[x+stride][y+stride] + texturemap[quadCurrent.startX][quadCurrent.startY] == texturemap[x+stride][y+stride] && + texturemap[x+stride][y+stride] == quadCurrent.texture ){ //add to quad quadCurrent.endY = y + stride; @@ -578,7 +584,9 @@ public class ModelUtils { // finalQuads.add(currentQuad); for(QuadToGenerate current : finalQuads){ -// System.out.println(current.startX + " " + current.startY + " " + current.endX + " " + current.endY); + if(current.startX > 0 && current.startY > 0 && current.endX < 99 && current.endY < 99){ + System.out.println(current.startX + " " + current.startY + " " + current.endX + " " + current.endY); + } } // System.out.println(finalQuads.size());