Hallo, habe mir mal den Beispielcode herrangezogen. Nur wenn ich
benutze habe ich auf einmal 2 Fenster? Eins OpenGL gerendet das andere Software...ist das normal?
Code:
buffer.enableRenderer(IRenderer.RENDERER_OPENGL);
benutze habe ich auf einmal 2 Fenster? Eins OpenGL gerendet das andere Software...ist das normal?
Code:
package test;
import com.threed.jpct.*;
import javax.swing.JFrame;
public class Test1 extends JFrame{
private World world;
private Camera camera;
private FrameBuffer buffer;
boolean running = true;
Object3D box;
TextureManager texman;
public static void main(String[] args){
new Test1();
}
public Test1(){
//Engine konfigurieren
Config.maxPolysVisible = 10000; //max. sichtbare Polygone
world = new World(); // Hauptklasse instanziieren
world.setAmbientLight(0,255,0); //grünes Umgebungslicht
texman = TextureManager.getInstance();
Texture spot=new Texture("textures/envmap.jpg");
TextureManager.getInstance().addTexture("car", spot);
//Box erzeugen
box = Primitives.getBox(8f,1f);
box.setTexture("car");
box.setSpecularLighting(true);
// Textur als Umgebungs-Map. Noch keine so rechte Ahnung was gemeint ist, sieht
box.setEnvmapped(Object3D.ENVMAP_ENABLED);
box.build();
world.addObject(box); //Box in die Welt packen
camera = world.getCamera(); //Kamera abholen
camera.setPosition(50,-50,-5); //Position verändern
camera.lookAt(box.getTransformedCenter()); //auf die Box gucken
//Frame erzeugen
setTitle("jPCT "+Config.getVersion());
pack();
setSize(800,600);
setResizable(false);
setVisible(true);
loop();
}
private void loop(){
World.setDefaultThread(Thread.currentThread()); //JPCT-Funktionen werde aus diese Thread aufgerufen
buffer = new FrameBuffer(800,600,FrameBuffer.SAMPLINGMODE_NORMAL); //FrameBuffer zum Zeichnen
buffer.enableRenderer(IRenderer.RENDERER_OPENGL); //Renderer zuweisen
buffer.optimizeBufferAccess();//schnellst Buffer-Zugriff ermitteln
while(running){
buffer.clear(); //no comment
world.renderScene(buffer);
//world.drawWireframe(buffer, Color.white);// um im Wireframe zu zeichnen
world.draw(buffer); //zeichne in den Buffer
buffer.update(); //gewährleistet, daß alle Änderungen übernommen werden. Update des Output-Buffers
buffer.display(getGraphics());
Thread.yield();
try { Thread.sleep(20);}
catch (InterruptedException e) { System.out.println(e);}
}
}
}