The models are fine. Maybe your loading code does something fishy? Here's an example for desktop jPCT that displays the different LODs when pressing the left mouse button.
import java.awt.Color;
import org.lwjgl.input.Mouse;
import com.threed.jpct.Config;
import com.threed.jpct.FrameBuffer;
import com.threed.jpct.IRenderer;
import com.threed.jpct.Loader;
import com.threed.jpct.Object3D;
import com.threed.jpct.Texture;
import com.threed.jpct.TextureManager;
import com.threed.jpct.World;
public class TerrainLODTest {
private World world;
private FrameBuffer buffer;
private Object3D[] terrains = new Object3D[3];
private int index = 0;
public static void main(String[] args) throws Exception {
new TerrainLODTest().loop();
}
public TerrainLODTest() throws Exception {
Config.glUseVBO = true;
world = new World();
world.setAmbientLight(0, 255, 0);
TextureManager.getInstance().addTexture("box", new Texture("box.jpg"));
terrains[0] = Loader.load3DS("mesh/mlvlaee1.3DS", 0.01f)[0];
terrains[1] = Loader.load3DS("mesh/mlvlaee2.3DS", 0.01f)[0];
terrains[2] = Loader.load3DS("mesh/mlvlaee3.3DS", 0.01f)[0];
for (int i = 0; i < 3; i++) {
world.addObject(terrains[i]);
terrains[i].setVisibility(i == 0);
terrains[i].compile();
terrains[i].setTexture("box");
}
world.buildAllObjects();
world.setClippingPlanes(1, 20000);
world.getCamera().setPosition(0, 2000, 500);
world.getCamera().lookAt(terrains[0].getTransformedCenter());
}
private void loop() throws Exception {
buffer = new FrameBuffer(800, 600, FrameBuffer.SAMPLINGMODE_GL_AA_2X);
buffer.disableRenderer(IRenderer.RENDERER_SOFTWARE);
buffer.enableRenderer(IRenderer.RENDERER_OPENGL);
while (!org.lwjgl.opengl.Display.isCloseRequested()) {
if (Mouse.isButtonDown(0)) {
index++;
index %= 3;
for (int i=0; i<3; i++) {
terrains[i].setVisibility(i==index);
}
Thread.sleep(200);
}
buffer.clear(java.awt.Color.BLUE);
world.renderScene(buffer);
world.draw(buffer);
world.drawWireframe(buffer, Color.RED);
buffer.update();
buffer.displayGLOnly();
Thread.sleep(10);
}
buffer.disableRenderer(IRenderer.RENDERER_OPENGL);
buffer.dispose();
System.exit(0);
}
}