LWJGL: Performance glBegin, drawList, ...

Rubber

Aktives Mitglied
Hi,
ich wollte mal nachfragen, wie es am besten ist zu zeichnen.
Momentan nutze ich eigentlich immer
Java:
glNewList(drawList, GL_COMPILE);
.
Habe aber jetzt das Problem, dass meine FPS mächtig in den Keller gehen.
(Was mich nur wundert, ist dass weder CPU noch GraKa eine auslastung von 20% erreichen, aber die FPS zt auf 35 sinken.)
Dabei werden gerade mal um die 200 Objekte gezeichnet.
Die Position der Objekte verändert sich eher selten.

Jetzt bin ich auf der suche, eine bessere Art zu finden, meine Objekte zu zeichnen.

Habt ihr da Tipps für mich?

Gruß
 

Rubber

Aktives Mitglied
Ich habe jetzt mal die Zeit gemessen, die das Programm braucht.
Das komische ist, dass bei glCallList folgendes Ergebnis raus kommt:

Call List: 2 Time: 0
Call List: 2 Time: 0
Call List: 2 Time: 0
Call List: 2 Time: 10
Call List: 2 Time: 0
Call List: 2 Time: 10
Call List: 2 Time: 10
Call List: 2 Time: 0
Call List: 2 Time: 0
Call List: 2 Time: 0
Call List: 2 Time: 0
Call List: 2 Time: 0
Call List: 2 Time: 0
Call List: 2 Time: 0
Call List: 2 Time: 0
Call List: 2 Time: 0
Call List: 2 Time: 0
Call List: 2 Time: 20
Call List: 2 Time: 10
Call List: 2 Time: 0
Call List: 2 Time: 2
Call List: 2 Time: 1
Call List: 2 Time: 2
Call List: 2 Time: 0
Call List: 2 Time: 10
Call List: 2 Time: 0
Call List: 2 Time: 10
Call List: 2 Time: 0
Call List: 2 Time: 0

usw

Woran kann das liegen, dass die Zeit so sehr variiert?
 

Rubber

Aktives Mitglied
Hier übrigens meine draw Methode, falls es da noch was zu verbessern geben sollte:
Java:
glPushMatrix();

glTranslatef(position.x, position.y, position.z); 
glRotatef(rotation.x, 1, 0, 0);
glRotatef(rotation.y, 0, 1, 0);
glRotatef(rotation.z, 0, 0, 1);

glCallList(drawList);

glPopMatrix();

Ist es eigentlich Sinnvoller, eine Liste zu haben und die dann immer zu bewegen, oder lieber mehrere Listen und die nicht zu bewegen.
 
Zuletzt bearbeitet:

BuddaKaeks

Bekanntes Mitglied
Sind die angaben in sekunden oder mllisekunden?
wenns millisekunden sind braucht die methode in etwa immer gleich lang, das liegt dann an system.currenttimemillis, diese methode ist auf 20 millisekunden ungenau oder so.

was deine Frames in den keller treibt ist vermutlich nicht dein render teil, sondern deine sonstige logic etc.
 

Rubber

Aktives Mitglied
Hi,
die Zeit ist in ms.
(Danke für die Info mit der ungenauigkeit)

Hatte auch nen kleinen Fehler in der draw Methode.
(eine nicht vorhandene Liste aufgerufen)

Hm...
das komische ist halt, dass ich, als ich noch einfache Quader verwendete um die 400 FPS hatte und jetzt, wo ich nen Obj verwende eben die FPS so abgesunken sind.
Deshalb hätte ich auf die draw Sachen getippt, weil ich an der Logik nichts verändert habe.
 

Rubber

Aktives Mitglied
Hab nochmal genau geschaut.
Meine draw-Methode braucht insgesamt um die 200ms.
Der Rest liegt im bereich von unter 10ms.

Zeichnen gesamt: 220
Zeichnen gesamt: 143
Zeichnen gesamt: 194
Zeichnen gesamt: 137
Zeichnen gesamt: 168
Zeichnen gesamt: 148
Zeichnen gesamt: 150
Zeichnen gesamt: 234
 

Rubber

Aktives Mitglied
Jo,
Java:
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
immer zu beginn meines Draw-Vorganges
 

Rubber

Aktives Mitglied
Ich werd mich heut abend mal dran machen.
Ist etwas aufwändiger, da die DisplayList aus einem .OBJ entsteht
 
Zuletzt bearbeitet:

Rubber

Aktives Mitglied
Erstmal ein Danke an dich.
bin gerade noch dran, aber mir ist aufgefallen, dass bei meiner DisplayListe wohl was schief läuft.
Mal sehn, wie es sich verhält, wenn ich den Fehler gefunden habe.
 

Rubber

Aktives Mitglied
Hi,
hier jetzt mein "K"SKB.
Hat leider etwas gedauert.
Und irgendwie hab ichs nicht kleiner als 5 Klassen bekommen.

Hab alle Texturen und Farbe entfernt.
Läuft trotzdem nur mit rund 80 - 100 fps.
(Auf meinem Notebook)
Und das scheint mir halt sehr wenig dafür, dass eig "nur" etwa 200 Objekte gezeichnet werden.

Durch das beheben mit den Texturekoordinaten Fehlern läuft das Programm jetzt auf meinem Desktop PC mit ~60fps und auf dem Notebook mit etwa 10.

Hier jetzt die Klassen, ich pack sie mal in Spoiler.
Java:
package kskb;

import static org.lwjgl.opengl.GL11.GL_ALPHA_TEST;
import static org.lwjgl.opengl.GL11.GL_BLEND;
import static org.lwjgl.opengl.GL11.GL_COLOR_BUFFER_BIT;
import static org.lwjgl.opengl.GL11.GL_DEPTH_BUFFER_BIT;
import static org.lwjgl.opengl.GL11.GL_DEPTH_TEST;
import static org.lwjgl.opengl.GL11.GL_LIGHT0;
import static org.lwjgl.opengl.GL11.GL_MODELVIEW;
import static org.lwjgl.opengl.GL11.GL_NO_ERROR;
import static org.lwjgl.opengl.GL11.GL_ONE_MINUS_SRC_ALPHA;
import static org.lwjgl.opengl.GL11.GL_PROJECTION;
import static org.lwjgl.opengl.GL11.GL_PROJECTION_MATRIX;
import static org.lwjgl.opengl.GL11.GL_SRC_ALPHA;
import static org.lwjgl.opengl.GL11.GL_TEXTURE_2D;
import static org.lwjgl.opengl.GL11.GL_VERTEX_ARRAY;
import static org.lwjgl.opengl.GL11.glBlendFunc;
import static org.lwjgl.opengl.GL11.glClear;
import static org.lwjgl.opengl.GL11.glClearColor;
import static org.lwjgl.opengl.GL11.glEnable;
import static org.lwjgl.opengl.GL11.glEnableClientState;
import static org.lwjgl.opengl.GL11.glGetError;
import static org.lwjgl.opengl.GL11.glGetFloat;
import static org.lwjgl.opengl.GL11.glLoadIdentity;
import static org.lwjgl.opengl.GL11.glLoadMatrix;
import static org.lwjgl.opengl.GL11.glMatrixMode;
import static org.lwjgl.opengl.GL11.glOrtho;
import static org.lwjgl.opengl.GL11.*;
import static org.lwjgl.util.glu.GLU.gluErrorString;
import static org.lwjgl.util.glu.GLU.gluPerspective;

import java.nio.FloatBuffer;

import javax.swing.JOptionPane;

import org.lwjgl.BufferUtils;
import org.lwjgl.LWJGLException;
import org.lwjgl.Sys;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;

public class Root {
	//Fensterinfos
	public static final int FENSTER_BREITE = 800;
	public static final int FENSTER_HOEHE = 600;
	public static final int FOV = 60;
	public static final float ZNEAR = 0.1f;
	public static final float ZFAR = 100;
	
	//für die FPS
    private static int fps;
    private static int drawingFps;
    private static long lastFPS;
    
    //elemente
    private static World world;
    
    //Matritzen
	private static FloatBuffer perspectiveProjectionMatrix = BufferUtils.createFloatBuffer(16);
	private static FloatBuffer orthographicProjectionMatrix = BufferUtils.createFloatBuffer(16);

	
    public static void main(String[] args) {	
        System.err.println("Starte Grafikinitialisierung");
		//Fenster initialisieren
		createWindow();
		
        //OpenGL initialisieren
        initGl();
        
        System.err.println("Starte Weltinitialisierung");
             
        //Gegenstände erstellen
        createWorld();

	    
		lastFPS = getTime();
        //Hauptschleife
        System.err.println("Starte Hauptschleife");
        while (!Display.isCloseRequested()) {       	
        	//objekte zeichnen
        	draw();
	
        	//FPS berechnen
        	updateFPS();
        	
        	//FPS in Fenstertitel anzeigen
        	Display.setTitle("FPS: " + drawingFps);
        	
            // Update the display
            Display.update();

//            Display.sync(75);

        }
        end(0);
	}
	
	private static void createWindow(){
		try {
            Display.setDisplayMode(new DisplayMode(FENSTER_BREITE, FENSTER_HOEHE));
            Display.setTitle("FPS: " + drawingFps);
            Display.create();
        } catch (LWJGLException e) {
            e.printStackTrace();
            end(1);
        }
	}
	
	private static void createWorld() { //initialisiert die welt	
		world = new World();
	}
	
	public static void end(int c) {		
        // Dispose of the display
        Display.destroy();
        // Exit the JVM
        System.exit(c);
		
	}
	
	private static void draw(){ //zeichnet die Objekte
    	//Buffer löschen
    	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        
    	//Matrix zurücksetzen und kamera positionieren
    	glLoadIdentity();
    	glRotatef(180, 0, 1, 0);
//    	glRotatef(10, 0, 0, 1);
    	glTranslatef(-15f, -10f, -25f);
        world.draw();  
    	
	}
	
    public static long getTime() { //gibt die aktuelle Zeit in ms zurück
        return (Sys.getTime() * 1000) / Sys.getTimerResolution();
    }
	
    private static void initGl() { //macht die Einstellungen für OpenGl    
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
        gluPerspective((float) FOV, (float) FENSTER_BREITE / (float) FENSTER_HOEHE, ZNEAR, ZFAR);
        glMatrixMode(GL_MODELVIEW);

		glGetFloat(GL_PROJECTION_MATRIX, perspectiveProjectionMatrix);
		glMatrixMode(GL_PROJECTION);
		glLoadIdentity();
		glOrtho(0, Display.getWidth(), Display.getHeight(), 0, 1, -1);
		glGetFloat(GL_PROJECTION_MATRIX, orthographicProjectionMatrix);
		glLoadMatrix(perspectiveProjectionMatrix);
		glMatrixMode(GL_MODELVIEW);
		
         glEnable(GL_DEPTH_TEST);
        //für transparenz
        glEnable(GL_BLEND);
        glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
        glEnable(GL_ALPHA_TEST);
        //für Koordinaten
        glEnable(GL_TEXTURE_2D);
        //Licht
        glEnable(GL_LIGHT0);
        //Hintergrund hellblau färben
        glClearColor(0.15f, 0.15f, 1f, 0.0f);
        
        glEnableClientState(GL_VERTEX_ARRAY);
  	}

    private static void updateFPS() { //berechnet die FPS
        if (getTime() - lastFPS > 1000) {
            lastFPS += 1000;
            drawingFps = fps;
            fps = 0;
        }
        fps++;
        System.out.println(getTime());
    }
}

Java:
package kskb;

import static org.lwjgl.opengl.GL11.GL_COMPILE;
import static org.lwjgl.opengl.GL11.GL_CULL_FACE;
import static org.lwjgl.opengl.GL11.GL_DEPTH_TEST;
import static org.lwjgl.opengl.GL11.GL_LIGHTING;
import static org.lwjgl.opengl.GL11.GL_TRIANGLES;
import static org.lwjgl.opengl.GL11.glBegin;
import static org.lwjgl.opengl.GL11.glDisable;
import static org.lwjgl.opengl.GL11.glEnable;
import static org.lwjgl.opengl.GL11.glEnd;
import static org.lwjgl.opengl.GL11.glEndList;
import static org.lwjgl.opengl.GL11.glGenLists;
import static org.lwjgl.opengl.GL11.glNewList;
import static org.lwjgl.opengl.GL11.glNormal3d;
import static org.lwjgl.opengl.GL11.glTexCoord2d;
import static org.lwjgl.opengl.GL11.glVertex3d;

import java.util.LinkedList;

import org.lwjgl.util.vector.Vector3f;

public class World {	
	private static final int BAEUME = 200;
	
	private static LinkedList<Tree> tree = new LinkedList<Tree>();

	private static Ground ground;
	private static int treeDisplayList = newDisplayList(1);
	
	public World(){
		createGround();
		createSomeTree(BAEUME);
	}

	
	private static void createGround(){ //erstellt den boden  
		ground = new Ground();
		System.out.println("Ground created");
	}

	
	/**
	 * Erstellt einen neuen Baum
	 * @param position
	 * @return
	 */
	private static Tree createTree(Vector3f position){
		Tree t = new Tree();
		t.setPosition(position);
		return t;
	}

	
	/** erstellt mehrere Bäume */
	private static void createSomeTree(int anzahl){
		Tree t;
		boolean error = false;
		for(int i = 0; i < anzahl; i++){
			t = createTree(new Vector3f((int) myRandom(Ground.BODEN_MIN_X, Ground.BODEN_MAX_X), 0, (int) myRandom(Ground.BODEN_MIN_Z, Ground.BODEN_MAX_Z)));
			for(Tree e : tree){
				if(e.getPosition().equals(t.getPosition())){
					error = true;
					break;
				}
			}
			if(error == false){
				tree.add(t);
			}else{
				i--;
				error = false;
			}
		}
	}
	
	public void draw(){
		glEnable(GL_DEPTH_TEST);
		glEnable(GL_CULL_FACE);
		glEnable(GL_LIGHTING);
		
		//Boden malen
		ground.draw();
	    	
//		long lastStep = System.currentTimeMillis();
		//jeden Baum malen
		for(Tree t : tree){
			t.draw();
		}
//		System.out.println("Zeichnen: " + (System.currentTimeMillis() - lastStep) + " (" + ((System.currentTimeMillis() - lastStep) / BAEUME) + ")");

		glDisable(GL_LIGHTING);
		glDisable(GL_CULL_FACE);
//        glDisable(GL_DEPTH_TEST);
	}

	public static int getDisplayList(int id){
		switch(id){
		case 1: //Baum
			return treeDisplayList;
		}
		
		return 0;
	}
	
	public static double myRandom(double low, double high) {
		return Math.random() * (high - low) + low;
	}
	
	private static int newDisplayList(int object){
		int drawList = 0;
		switch(object){
		case 1: //Baum
			drawList = glGenLists(1);
	        glNewList(drawList, GL_COMPILE);
	        {		        	

                     //
                     // Inhalt der Liste kommt in nen neuen Beitrag
                     //

	        }
	        glEndList();
		}
		return drawList;	
	}

}

Java:
package kskb;

import static org.lwjgl.opengl.GL11.glCallList;
import static org.lwjgl.opengl.GL11.glPopMatrix;
import static org.lwjgl.opengl.GL11.glPushMatrix;
import static org.lwjgl.opengl.GL11.glRotatef;
import static org.lwjgl.opengl.GL11.glTranslatef;

import org.lwjgl.util.vector.Vector3f;

public abstract class Entity{

	protected Vector3f position = new Vector3f(0, 0, 0);
	protected Vector3f rotation = new Vector3f(0, 0, 0);

	protected int drawList;
	protected int texture;
	
	public void draw(){  
		glPushMatrix();

        glTranslatef(position.x, position.y, position.z); 
        glRotatef(rotation.x, 1, 0, 0);
        glRotatef(rotation.y, 0, 1, 0);
        glRotatef(rotation.z, 0, 0, 1);
        
        glCallList(drawList);

        glPopMatrix();
	}

	public Vector3f getPosition(){
		return position;
	}
	
	public void setPosition(Vector3f position){
		this.position = position;
	}
}

Java:
package kskb;

import static org.lwjgl.opengl.GL11.GL_COMPILE;
import static org.lwjgl.opengl.GL11.GL_QUADS;
import static org.lwjgl.opengl.GL11.GL_TEXTURE_2D;
import static org.lwjgl.opengl.GL11.glBegin;
import static org.lwjgl.opengl.GL11.glBindTexture;
import static org.lwjgl.opengl.GL11.glEnd;
import static org.lwjgl.opengl.GL11.glEndList;
import static org.lwjgl.opengl.GL11.glGenLists;
import static org.lwjgl.opengl.GL11.glNewList;
import static org.lwjgl.opengl.GL11.glNormal3f;
import static org.lwjgl.opengl.GL11.glTexCoord2f;
import static org.lwjgl.opengl.GL11.glVertex3f;

public class Ground extends Entity{
	public static final int BODEN_MIN_X = 0;
	public static final int BODEN_MAX_X = 200;
	public static final int BODEN_MIN_Z = 0;
	public static final int BODEN_MAX_Z = 200;
	
	public Ground(){
		setup();
	}
	
	private void setup(){
		drawList = glGenLists(1);
		
//		setTexture("ground.jpg");
		
        glNewList(drawList, GL_COMPILE);
        glBindTexture(GL_TEXTURE_2D, texture);
        
        glBegin(GL_QUADS);

        glNormal3f(0f, 1f, 0f);
        glTexCoord2f(0, 0);
        glVertex3f(BODEN_MIN_X, 0, BODEN_MIN_Z);
        
        glTexCoord2f(0, 1);
        glVertex3f(BODEN_MIN_X, 0, BODEN_MAX_Z);
        
        glTexCoord2f(1, 1);
        glVertex3f(BODEN_MAX_X, 0, BODEN_MAX_Z);
        
        glTexCoord2f(1, 0);
        glVertex3f(BODEN_MAX_X, 0, BODEN_MIN_Z);
        glEnd();
        glEndList();	
	}
}

Java:
package kskb;
public class Tree extends Entity{
	
	public Tree(){
		setup();
	}
	
	public Tree(int id){
		setup();
	}
	
	public void setup() {	
		//Objekt Koordinaten und Textur erstellen
		drawList = World.getDisplayList(1);
	}
}
 

Rubber

Aktives Mitglied
Und hier der Inhalt der Displaylist (Beitrag war zu groß)
Eigentlich lade ich sie aus einer .obj Datei.

[-.- immernoch zu groß]
Ich lad sie hoch.

DisplayList
 
Zuletzt bearbeitet:

BuddaKaeks

Bekanntes Mitglied
also, anstatt von
Java:
glBegin(GL_TRIANGLES);
dreieck1();
glEnd();
glBegin(GL_TRIANGLES);
dreieck2();
glEnd()

schreibst du

Java:
glBegin(GL_TRIANGLES);
dreieck1();
dreieck2();
glEnd()

Dann aufrufe mittels glBegin/glEnd sind sehr langasam, benutze ieer glDrawArrays() und die glVertex/normal/texcoordPointer() methoden
 

Rubber

Aktives Mitglied
Ok - klingt erstmal logisch ^^
Werd ich mal rein basteln und dann sollte ich ja langsam wiedre auf ne annehmbare FPS Zahl kommen ^^

Vielen Dank, für deine Unterstützung!
Gruß,
David
 

Rubber

Aktives Mitglied
Jetzt sinds etwa 100 FPS.
auf jedefall schonmal ein großer Erfolg, wenn ich bedenke, wie langsam es noch war, als ich den Thread hier eröffnete.
Aber irgendwie kommt es mir trotzdem komisch vor - weil 100 halt dafür, dass ich kaum was male recht viel ist.
Oder schätze ich das eifnach falsch ein?

Oder wird das nochmal deutlich mehr, wenn ich von dem glBegin/End komplett weg bin?
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
pcfreak9000 "Allgemeine" Performance verbessern (LWJGL 2) Spiele- und Multimedia-Programmierung 2
coolian lwjgl glfw window zeigt nur grau an Spiele- und Multimedia-Programmierung 0
coolian slick lwjgl text darstellen mit UnicodeFont funktoniert nicht? Spiele- und Multimedia-Programmierung 11
F OpenGL (LWJGL) Shader Programmierung GLSL Spiele- und Multimedia-Programmierung 2
Meeresgott LWJGL 3 Problem mit einer Texture Spiele- und Multimedia-Programmierung 4
V LWJGL GUI Spiele- und Multimedia-Programmierung 1
V GUI in LWJGL 2 erstellen Spiele- und Multimedia-Programmierung 6
C GLSL Shaderprogrammierung in LWJGL 3 Spiele- und Multimedia-Programmierung 12
G Low Poly 3D LWJGL Shader Problem Spiele- und Multimedia-Programmierung 4
B LWJGL OpenGL SIGSEGV auf Linux (Verzweiflung :/) Spiele- und Multimedia-Programmierung 8
G LWJGL .obj .mtl loader Spiele- und Multimedia-Programmierung 3
G 2D animationen LWJGL Spiele- und Multimedia-Programmierung 0
G LWJGL Rendert nicht Spiele- und Multimedia-Programmierung 3
G lwjgl verwendung Spiele- und Multimedia-Programmierung 6
R [LWJGL] Skeletal Animation Spiele- und Multimedia-Programmierung 5
E LWJGL glGenVertexArrays() erzeugt doppelte IDs Spiele- und Multimedia-Programmierung 3
G Java 2D Spiel mit LWJGL verbinden Spiele- und Multimedia-Programmierung 1
Streeber Problem mit Transparenz/TextDrawing in LWJGL/Slick2d (OpenGL) Spiele- und Multimedia-Programmierung 1
K No Lwjgl Spiele- und Multimedia-Programmierung 2
T LWJGL 2.9.2: Seltsamer Effekt beim Rendern (VertexShader Problem?) Spiele- und Multimedia-Programmierung 3
T LWJGL: Terrain-Texturen / 2D-Array in Shader? Spiele- und Multimedia-Programmierung 2
S 2D-Render Probleme LWJGL 2 (Java) Spiele- und Multimedia-Programmierung 1
P java lwjgl Game Spiele- und Multimedia-Programmierung 0
T [LWJGL] Textur / File wieder freigeben Spiele- und Multimedia-Programmierung 4
F [LWJGL] Skeletal Animation 3D Spiele- und Multimedia-Programmierung 1
C Generelle Hilfe zur lwjgl Spiele- und Multimedia-Programmierung 0
D LWJGL gluLookAt "Umschauen" Problem Spiele- und Multimedia-Programmierung 0
D Problem mit Würfelanimierung in LWJGL Spiele- und Multimedia-Programmierung 7
RalleYTN LWJGL Vignette Spiele- und Multimedia-Programmierung 2
E LWJGL Switchen zwischen gluOrtho und gluPerspective Spiele- und Multimedia-Programmierung 0
RalleYTN LWJGL Rotation Spiele- und Multimedia-Programmierung 1
C LWJGL Color Picking Textures deaktivieren Spiele- und Multimedia-Programmierung 0
K FBO Framebuffer object [LWJGL] 2D tutorial gesucht Spiele- und Multimedia-Programmierung 2
K [LWJGL] 2D Tunneler Hintergrund Spiele- und Multimedia-Programmierung 7
S LWJGL 3d-spieleentwicklung Spiele- und Multimedia-Programmierung 3
H LWJGL-Renderfail Spiele- und Multimedia-Programmierung 1
Seikuassi LWJGL - Texturen flackern Spiele- und Multimedia-Programmierung 2
Androbin LWJGL - Kollisions-Bug (Fallen) Spiele- und Multimedia-Programmierung 14
K Schiessen in 2D (LWJGL) Spiele- und Multimedia-Programmierung 2
S LWJGL Kamera Problem - Alles verzerrt Spiele- und Multimedia-Programmierung 4
U Kann nur ein Objekt mit LWJGL rendern Spiele- und Multimedia-Programmierung 2
X LWJGL | Parent.isDisplayable() must be true | wie kann man das zu true machen? Spiele- und Multimedia-Programmierung 0
X [LWJGL] Binden von Texturen per PNG File und Texture Sheet Spiele- und Multimedia-Programmierung 1
X LWJGL - Anklick baren Button erstellen aber wie? Spiele- und Multimedia-Programmierung 6
U Quadrate anklicken LWJGL Spiele- und Multimedia-Programmierung 3
B LWJGL / OPENGL Kriege Depth-Test nicht hin :( Spiele- und Multimedia-Programmierung 0
B LWJGL Manche Seiten werden transparent angezeigt Spiele- und Multimedia-Programmierung 2
T LWJGL VBO's funktionieren nicht, geben aber auch keinen Fehler Spiele- und Multimedia-Programmierung 0
U Komische fragmente bei LWJGL Spiele- und Multimedia-Programmierung 6
B LWJGL StackOverFlow Problem nach 30sekunden. (Pong) Spiele- und Multimedia-Programmierung 2
Q LWJGL - Alpha-Probleme Spiele- und Multimedia-Programmierung 2
S [LWJGL] Zweimal selbe Textur trotz unterschiedlicher IDs Spiele- und Multimedia-Programmierung 3
O LWJGL AWTGLCanvas Tiefe auf 1 beschränkt Spiele- und Multimedia-Programmierung 5
Seikuassi LWJGL-Problem Spiele- und Multimedia-Programmierung 2
S [LWJGL] schwarzer Bildschrim beim rendern von .obj Model Spiele- und Multimedia-Programmierung 2
S [lwjgl] Renderbug bei mehreren Objekten Spiele- und Multimedia-Programmierung 2
R LWJGL: OpenGL Fehler - weitere Informationen auslesen möglich? Spiele- und Multimedia-Programmierung 2
S LWJGL Kamera Koordinaten invertiert. Spiele- und Multimedia-Programmierung 2
M LWJGL Text rendern Spiele- und Multimedia-Programmierung 3
B LWJGL Mauskoordinaten Spiele- und Multimedia-Programmierung 1
J LWJGL Update Schleife (Snake) Spiele- und Multimedia-Programmierung 6
B LWJGL Display.update() ist langsam Spiele- und Multimedia-Programmierung 5
R LWJGL: Object Loader -> .obj, .c4d, ... laden Spiele- und Multimedia-Programmierung 3
R LWJGL: Textur -> unsichtbare Stellen, wie erzeugen? Spiele- und Multimedia-Programmierung 4
A LwJGL - Animation Stockt Spiele- und Multimedia-Programmierung 5
R [lwjgl] Cursor -> versetzt Zeichnen / Bild ist umgedreht Spiele- und Multimedia-Programmierung 2
R LWJGL: 3D Picking Spiele- und Multimedia-Programmierung 4
F LWJGL: Textur ändern mit GL11.readPixels Spiele- und Multimedia-Programmierung 5
F LWJGL: Licht und GL_LINES funktioniert nicht Spiele- und Multimedia-Programmierung 6
A [LWJGL] BMP Textur wird nicht richtig dargestellt Spiele- und Multimedia-Programmierung 8
S LWJGL Rechteck wird nicht gezeichnet Spiele- und Multimedia-Programmierung 6
F LWJGL: Is undefined? Spiele- und Multimedia-Programmierung 7
F LWJGL Kamerabug Spiele- und Multimedia-Programmierung 2
F LWJGL Problem mit Erstellen eines Objekts und der Kamera Spiele- und Multimedia-Programmierung 5
F LWJGL Dreidimensionaler Würfel Spiele- und Multimedia-Programmierung 15
P LWJGL oder OpenGL (C++) Spiele- und Multimedia-Programmierung 7
P "Tiefe" in Objekten - LWJGL Spiele- und Multimedia-Programmierung 12
T LWJGL 3D Objekt Collision: Wie? Spiele- und Multimedia-Programmierung 11
S LWJGL Kamera Frage Spiele- und Multimedia-Programmierung 2
V Komischer Fehler in LWJGL Spiele- und Multimedia-Programmierung 18
Z lwjgl oder jogl nutzen Spiele- und Multimedia-Programmierung 9
Y LWJGL Hintergrund Spiele- und Multimedia-Programmierung 7
Creylon [LWJGL] Textur wird falsch angezeigt Spiele- und Multimedia-Programmierung 12
Creylon [LWJGL] Spiel Exportieren Spiele- und Multimedia-Programmierung 2
Creylon [LWJGL] 2D Sprite Rotieren/Drehen Spiele- und Multimedia-Programmierung 6
CookieSoft LWJGL Ubuntu 12.04 Fehler Spiele- und Multimedia-Programmierung 7
E [LWJGL] Karusell, mehrere Objekte drehen sich um einen Mittelpunkt Spiele- und Multimedia-Programmierung 31
F lwjgl - Skysphere Spiele- und Multimedia-Programmierung 3
CookieSoft Slick und LWJGL Texture lag Spiele- und Multimedia-Programmierung 13
U OpenGl 1.1 (LWJGL GL11.*) und weiter? Spiele- und Multimedia-Programmierung 7
0 Grafikfehler LWJGL Spiele- und Multimedia-Programmierung 2
A LWJGL 3D Objekte Kollision Spiele- und Multimedia-Programmierung 3
Luk10 (LWJGL) Aufwendiges Animieren von Texturen Spiele- und Multimedia-Programmierung 16
S (LWJGL) VertexBufferObjects Spiele- und Multimedia-Programmierung 20
T LWJGL Grafik meines Projektes läuft nicht korrekt auf meinem iMac Spiele- und Multimedia-Programmierung 19
B LWJGL/OpenGL rendert manche Objekte nicht Spiele- und Multimedia-Programmierung 6
H LWJGL: Fragen zum Verständnis Spiele- und Multimedia-Programmierung 7
T LWJGL Gui erstellen Spiele- und Multimedia-Programmierung 7
Kenan89 lwjgl Exception Spiele- und Multimedia-Programmierung 3
Z Anfängerfrage: Text anzeigen mit LWJGL Spiele- und Multimedia-Programmierung 2

Ähnliche Java Themen

Neue Themen


Oben