From c548a3a8dd7656cd9b524556aed7b55a7ab323af Mon Sep 17 00:00:00 2001 From: Stephen Gold Date: Mon, 9 Nov 2020 13:29:23 -0800 Subject: [PATCH] fix issue #1382 (LODGeomap index buffers with elements too small) --- .../java/com/jme3/terrain/geomipmap/LODGeomap.java | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/LODGeomap.java b/jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/LODGeomap.java index ccffca1c89..6b81424bfd 100644 --- a/jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/LODGeomap.java +++ b/jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/LODGeomap.java @@ -158,14 +158,11 @@ public Vector2f getUV(int x, int y, Vector2f store, Vector2f offset, float offse * @return the LOD-ified index buffer */ public IndexBuffer writeIndexArrayLodDiff(int lod, boolean rightLod, boolean topLod, boolean leftLod, boolean bottomLod, int totalSize) { - - + int numVertices = getWidth() * getHeight(); int numIndexes = calculateNumIndexesLodDiff(lod); - - IndexBuffer ib = IndexBuffer.createIndexBuffer(numIndexes, numIndexes); + IndexBuffer ib = IndexBuffer.createIndexBuffer(numVertices, numIndexes); VerboseBuffer buffer = new VerboseBuffer(ib); - // generate center squares minus the edges //System.out.println("for (x="+lod+"; x<"+(getWidth()-(2*lod))+"; x+="+lod+")"); //System.out.println(" for (z="+lod+"; z<"+(getWidth()-(1*lod))+"; z+="+lod+")"); @@ -360,13 +357,11 @@ public IndexBuffer writeIndexArrayLodDiff(int lod, boolean rightLod, boolean top } public IndexBuffer writeIndexArrayLodVariable(int lod, int rightLod, int topLod, int leftLod, int bottomLod, int totalSize) { - + int numVertices = getWidth() * getHeight(); int numIndexes = calculateNumIndexesLodDiff(lod); - - IndexBuffer ib = IndexBuffer.createIndexBuffer(numIndexes, numIndexes); + IndexBuffer ib = IndexBuffer.createIndexBuffer(numVertices, numIndexes); VerboseBuffer buffer = new VerboseBuffer(ib); - // generate center squares minus the edges //System.out.println("for (x="+lod+"; x<"+(getWidth()-(2*lod))+"; x+="+lod+")"); //System.out.println(" for (z="+lod+"; z<"+(getWidth()-(1*lod))+"; z+="+lod+")");