Hi guys, I'm pretty new to the JPCT world and I'm starting a project on DTMs (digital terrain models). Basically what you get is an ASC file with a matrix of coordinates representing the elevation of that point. I saw that JPCT had a function to load these files, so I tried to write a program, but I can't load thev 3D model
The code is
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import com.threed.jpct.*;
import javax.naming.Context;
import javax.swing.*;
public class prova {
private World world;
private FrameBuffer buffer;
private Object3D map;
private JFrame frame;
public static void main(String[] args) throws Exception {
new prova().loop();
}
public prova() throws Exception {
frame=new JFrame("Hello world");
frame.setSize(1024, 860);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
world = new World();
world.setAmbientLight(0, 255, 0);
TextureManager texMan=TextureManager.getInstance();
Texture rocks=new Texture("rocks.jpg");
texMan.addTexture("rocks", rocks);
map=Loader.loadASC("411140_20_WGS.ASC", 400, false);
map.setTexture("rocks");
world.addObject(map);
map.enableLazyTransformations();
map.build();
SimpleVector pos=map.getCenter();
pos.scalarMul(-1f);
map.translate(pos);
map.rotateX((float)-Math.PI/2f);
map.translateMesh();
map.rotateMesh();
map.setTranslationMatrix(new Matrix());
map.setRotationMatrix(new Matrix());
map.createTriangleStrips(2);
world.getCamera().setPosition(50, -50, -5);
world.getCamera().lookAt(map.getTransformedCenter());
}
public void loop() throws Exception
{
buffer = new FrameBuffer(1024, 860, FrameBuffer.SAMPLINGMODE_NORMAL);
while (frame.isShowing()) {
map.rotateY(0.01f);
buffer.clear(java.awt.Color.BLUE);
world.renderScene(buffer);
world.draw(buffer);
buffer.update();
buffer.display(frame.getGraphics());
Thread.sleep(10);
}
buffer.disableRenderer(IRenderer.RENDERER_OPENGL);
buffer.dispose();
frame.dispose();
System.exit(0);
}
}
Note that my code can have many errors, beacuse I'm still learning. Anyone knows why it doesn't work?
jPCT loads ASC, which is an old text-based variant of the 3ds format. It doesn't mean that it can load every ASCII-based (i.e. text based) format in existence. In your case, i think that ASC != ASC...so you would have to write a loader for your format yourself.
So what kind of ASC files does JPCT support?
As said, it supports ASC, which is an old export format of 3ds.