diff --git a/engine/src/tools/jme3tools/optimize/LodGenerator.java b/engine/src/tools/jme3tools/optimize/LodGenerator.java index 277a5a53a..41ee727a9 100644 --- a/engine/src/tools/jme3tools/optimize/LodGenerator.java +++ b/engine/src/tools/jme3tools/optimize/LodGenerator.java @@ -326,12 +326,14 @@ public class LodGenerator { while (b.remaining() != 0) { Triangle tri = new Triangle(); tri.isRemoved = false; - triangleList.add(tri); + triangleList.add(tri); for (int i = 0; i < 3; i++) { if (b instanceof IntBuffer) { tri.vertexId[i] = ((IntBuffer) b).get(); } else { - tri.vertexId[i] = ((ShortBuffer) b).get(); + //bit shift to avoid negative values due to conversion form short to int. + //we need an unsigned int here. + tri.vertexId[i] = ((ShortBuffer) b).get()& 0xffff; } // assert (tri.vertexId[i] < vertexLookup.size()); tri.vertex[i] = vertexLookup.get(tri.vertexId[i]);