Hallo zusammen, ich hab heute mit lwjgl angefangen und bin jetzt auf mein erstes Problem gestoßen. ;(
Ich versuche einen Tetraeder anzuzeigen und zu drehen. Das Drehen des Körpers funktioniert ohne Probleme, er wird nur nicht richtig angezeigt:
Danke im Voraus für eure Lösungsvorschläge.
Ich versuche einen Tetraeder anzuzeigen und zu drehen. Das Drehen des Körpers funktioniert ohne Probleme, er wird nur nicht richtig angezeigt:

Java:
import org.lwjgl.LWJGLException;
import org.lwjgl.input.Keyboard;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import org.lwjgl.opengl.GL11;
public class lwjgl_test {
private static float rdreieck = 0.0f;
public static void main(String[] args) {
try {
Display.setDisplayMode(new DisplayMode(800, 600));
Display.setFullscreen(false);
Display.create();
// Mouse.create();
} catch (LWJGLException e) {
e.printStackTrace();
System.exit(0);
}
initGL();
run();
System.exit(0);
}
private static void run() {
while (!Display.isCloseRequested()) {
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
GL11.glLoadIdentity();
if (Keyboard.isKeyDown(Keyboard.KEY_ESCAPE)) {
break;
}
if (Keyboard.isKeyDown(Keyboard.KEY_LEFT)) {
rdreieck += 0.05;
}
if (Keyboard.isKeyDown(Keyboard.KEY_RIGHT)) {
rdreieck -= 0.05;
}
draw_triangle();
Display.update();
}
Display.destroy();
System.exit(0);
}
private static void initGL() {
GL11.glEnable(GL11.GL_DEPTH_TEST);
GL11.glClearColor(1.0f, 1.0f, 1.0f, 0.0f);
GL11.glColor3f(0.0f, 0.0f, 0.0f);
GL11.glPointSize(4.0f);
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
}
private static void draw_triangle() {
GL11.glPushMatrix();
GL11.glTranslatef(0.0f, 0.0f, 0.0f);
GL11.glRotatef(rdreieck, 0.0f, 1.0f, 0.0f);
GL11.glBegin(GL11.GL_TRIANGLES);
GL11.glColor3f(0.0f, 0.0f, 1.0f); // das vordere soll blau werden
GL11.glVertex3f(0.0f, 1.0f, 0.0f); // oben (vorderes Dreieck)
GL11.glVertex3f(-1.0f, -1.0f, 1.0f); // links (vorderes Dreieck)
GL11.glVertex3f(1.0f, -1.0f, 1.0f); // rechts (vorderes Dreieck)
GL11.glColor3f(1.0f, 0.0f, 0.0f); // das rechte soll rot werden
GL11.glVertex3f(0.0f, 1.0f, 0.0f); // oben (rechtes Dreieck)
GL11.glVertex3f(1.0f, -1.0f, 1.0f); // links (rechtes Dreieck)
GL11.glVertex3f(1.0f, -1.0f, -1.0f); // rechts (rechtes Dreieck)
GL11.glColor3f(0.0f, 1.0f, 0.0f); // das hintere grÃŒn
GL11.glVertex3f(0.0f, 1.0f, 0.0f); // oben (hinteres Dreieck)
GL11.glVertex3f(1.0f, -1.0f, -1.0f); // links (hinteres Dreieck)
GL11.glVertex3f(-1.0f, -1.0f, -1.0f); // rechts (hinteres Dreieck)
GL11.glColor3f(1.0f, 1.0f, 0.0f); // und das linke gelb
GL11.glVertex3f(0.0f, 1.0f, 0.0f); // oben (linkes Dreieck)
GL11.glVertex3f(-1.0f, -1.0f, -1.0f); // links (linkes Dreieck)
GL11.glVertex3f(-1.0f, -1.0f, 1.0f); // rechts (linkes Dreieck)
GL11.glEnd();
GL11.glPopMatrix();
}
}
Danke im Voraus für eure Lösungsvorschläge.