Hello people,
I have never played around with 3D before, I know java pretty well, but just never used it for graphics though.
I tried following the example from http://www.jpct.net/wiki/index.php/Loading_3ds_Models_from_Blender (http://www.jpct.net/wiki/index.php/Loading_3ds_Models_from_Blender), to load a model.
All went ok, but then i changed the model to a MD2 model. I seems like it loads the model, and applying textures, and I can't seem to either size it correctly i think. The model looks very FLAT.
if its any help then I downloaded a Quake 2 model from http://www.polycount.com/models/quake2/ (http://www.polycount.com/models/quake2/), that i tried with.
Here is the my source code.
import com.threed.jpct.*;
import javax.swing.*;
public class HelloWorldSoftware {
private String[] textures = {"sydney"};
private String thingName = "sydney";
private int thingScale = 1;//end
private World world;
private FrameBuffer buffer;
private Object3D thing;
private TextureManager tm = TextureManager.getInstance();
public static void main(String[] args) throws Exception {
new HelloWorldSoftware().loop();
}
public HelloWorldSoftware() throws Exception {
world = new World();
world.setAmbientLight(150, 150, 150);
for (int i = 0; i < textures.length; ++i) {
tm.addTexture(textures[i] + ".jpg", new Texture("res/" + thingName + "/" + textures[i] + ".jpg"));
}
TextureInfo ti=new TextureInfo(tm.getTextureID(textures[0] + ".jpg"));
thing = loadModel("res/"+ thingName + "/" + thingName + ".md2", thingScale);
thing.setTexture(ti);
world.addObject(thing);
world.getCamera().moveCamera(Camera.CAMERA_MOVEOUT,100);
world.getCamera().lookAt(thing.getTransformedCenter());
}
private void loop() throws Exception {
buffer = new FrameBuffer(800, 600, FrameBuffer.SAMPLINGMODE_GL_AA_2X);
buffer.enableRenderer(IRenderer.RENDERER_OPENGL);
buffer.disableRenderer(IRenderer.RENDERER_SOFTWARE);
while (!org.lwjgl.opengl.Display.isCloseRequested()) {
SimpleVector place = new SimpleVector();
buffer.clear(java.awt.Color.BLUE);
world.renderScene(buffer);
world.draw(buffer);
buffer.update();
buffer.displayGLOnly();
thing.rotateY(0.02f);
thing.rotateX(0.01f);
Thread.sleep(10);
}
buffer.dispose();
System.exit(0);
}
private Object3D loadModel(String filename, float scale) {
Object3D temp = Loader.loadMD2(filename, scale);
temp.build();
return temp;
}
}
I hope one of you have some time to give me a bit of help.
//Michael
Never mind... I just saw there was more then one model in the file i downloaded. :-(
I just had too load the right model. :-)