15
« on: March 04, 2009, 11:10:48 am »
Hi:
I have read all Texture defined in 3ds file and add all Texture in TextureManager.Now I want to add Texture to Object3D.But I dont know
how to select the correct Texture to Object3D.
code:
import java.awt.Color;
import java.io.File;
import com.threed.jpct.*;
import javax.swing.*;
public class HelloWorldSoftware {
private World world;
private FrameBuffer buffer;
private Object3D car3ds;
private Object3D[] car;
private JFrame frame;
TextureManager texMan = null;
public static void main(String[] args) throws Exception {
new HelloWorldSoftware().loop();
}
public HelloWorldSoftware() throws Exception {
//Config.saveMemory = true;
frame=new JFrame("Hello world");
frame.setSize(800, 600);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
world = new World();
world.setAmbientLight(0, 255, 0);
texMan=TextureManager.getInstance();
char c=File.separatorChar;
File dir=new File("brick_3ds");
String[] files=dir.list();
for (int i=0; i<files.length; i++) {
String name=files;
if (name.toLowerCase().endsWith(".jpg")) {
texMan.addTexture(name, new Texture("brick_3ds/"+name));
}
}
car=Loader.load3DS("brick_3ds/brick.3DS",0.2f);
if(car.length != 0){
car3ds = car[0];
//car3ds.setTexture("plant");
car3ds.setTransparency(2);
car3ds.setCulling(Object3D.CULLING_DISABLED);
car3ds.rotateX(-(float)Math.PI/2f);
car3ds.rotateMesh();
car3ds.setRotationMatrix(new Matrix());
//car3ds.setAdditionalColor(new Color(100,100,100));
car3ds.build();
}
world.addObject(car3ds);
world.getCamera().setPosition(50, -50, -5);
world.getCamera().lookAt(car3ds.getTransformedCenter());
}
private void loop() throws Exception {
buffer = new FrameBuffer(800, 600, FrameBuffer.SAMPLINGMODE_NORMAL);
while (frame.isShowing()) {
car3ds.rotateY(0.01f);
buffer.clear(java.awt.Color.white);
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);
}
}
Thank you