Skip to content

Commit 507cc22

Browse files
authored
fix issue #1382 (LODGeomap index buffers with elements too small) (#1418)
1 parent 34efdac commit 507cc22

File tree

1 file changed

+4
-9
lines changed

1 file changed

+4
-9
lines changed

jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/LODGeomap.java

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -158,14 +158,11 @@ public Vector2f getUV(int x, int y, Vector2f store, Vector2f offset, float offse
158158
* @return the LOD-ified index buffer
159159
*/
160160
public IndexBuffer writeIndexArrayLodDiff(int lod, boolean rightLod, boolean topLod, boolean leftLod, boolean bottomLod, int totalSize) {
161-
162-
161+
int numVertices = getWidth() * getHeight();
163162
int numIndexes = calculateNumIndexesLodDiff(lod);
164-
165-
IndexBuffer ib = IndexBuffer.createIndexBuffer(numIndexes, numIndexes);
163+
IndexBuffer ib = IndexBuffer.createIndexBuffer(numVertices, numIndexes);
166164
VerboseBuffer buffer = new VerboseBuffer(ib);
167165

168-
169166
// generate center squares minus the edges
170167
//System.out.println("for (x="+lod+"; x<"+(getWidth()-(2*lod))+"; x+="+lod+")");
171168
//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
360357
}
361358

362359
public IndexBuffer writeIndexArrayLodVariable(int lod, int rightLod, int topLod, int leftLod, int bottomLod, int totalSize) {
363-
360+
int numVertices = getWidth() * getHeight();
364361
int numIndexes = calculateNumIndexesLodDiff(lod);
365-
366-
IndexBuffer ib = IndexBuffer.createIndexBuffer(numIndexes, numIndexes);
362+
IndexBuffer ib = IndexBuffer.createIndexBuffer(numVertices, numIndexes);
367363
VerboseBuffer buffer = new VerboseBuffer(ib);
368364

369-
370365
// generate center squares minus the edges
371366
//System.out.println("for (x="+lod+"; x<"+(getWidth()-(2*lod))+"; x+="+lod+")");
372367
//System.out.println(" for (z="+lod+"; z<"+(getWidth()-(1*lod))+"; z+="+lod+")");

0 commit comments

Comments
 (0)