Hallo zusammen,
ich möchte eine Anwendung mit Java Jogl schreiben, in der ich Jogl im Ortho Mode verwende.
Nun habe ich ein Bild als Hintergrund und möchte darauf meine OpenGl Objekte zeichnen, eigetnlich nur OpenGL Primitive wie Kreise,Dreiecke, usw....
Sobald ich jedoch ein Dreick (wie in folgendem Code gezeigt) über das Hintergrundbild zeichne, verfärbt sich mein Hintergrundbild in der Farbe des Dreiecks.
Es wäre super, wenn hier jemand einen Tip für mich hätte.
Hier der Code:
[Java]
public void display(GLAutoDrawable drawable) {
// TODO Auto-generated method stub
final GL gl = drawable.getGL();
// Clear screen.
gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
gl.glMatrixMode(GL.GL_PROJECTION); // Select Projection
gl.glPushMatrix(); // Push The Matrix
gl.glLoadIdentity(); // Reset The Matrix
gl.glOrtho(0, 640, 480, 0, -1, 1); // Select Ortho Mode (640x480)
gl.glMatrixMode(GL.GL_MODELVIEW); // Select Modelview Matrix
gl.glPushMatrix(); // Push The Matrix
gl.glLoadIdentity(); // Reset The Matrix
tex.enable ();
tex.bind ();
gl.glBegin(GL.GL_QUADS);
gl.glTexCoord2f(0, 1); // Texture Coordinate ( 0, 1 )
gl.glVertex2f(0, 0); // First Vertex ( 0, 0 )
// Texture Coordinate ( 0, 0 )
gl.glTexCoord2f(0, 0 );
gl.glVertex2f(0, 480); // Second Vertex ( 0, 480 )
// Texture Coordinate ( 1, 0 )
gl.glTexCoord2f(1 , 0 );
gl.glVertex2f(640, 480); // Third Vertex ( 640, 480 )
// Texture Coordinate ( 1, 1 )
gl.glTexCoord2f(1 , 1 );
gl.glVertex2f(640, 0); // Fourth Vertex ( 640, 0 )
gl.glEnd();
tex.disable ();
gl.glBegin(GL.GL_TRIANGLES);
gl.glColor3f(1,0,0);
gl.glVertex2d(100,100);
//gl.glColor3f(1,0,0);
gl.glVertex2d(200,200);
//gl.glColor3f(1,0,0);
gl.glVertex2d(100,200);
gl.glEnd();
}
[/Java]
ich möchte eine Anwendung mit Java Jogl schreiben, in der ich Jogl im Ortho Mode verwende.
Nun habe ich ein Bild als Hintergrund und möchte darauf meine OpenGl Objekte zeichnen, eigetnlich nur OpenGL Primitive wie Kreise,Dreiecke, usw....
Sobald ich jedoch ein Dreick (wie in folgendem Code gezeigt) über das Hintergrundbild zeichne, verfärbt sich mein Hintergrundbild in der Farbe des Dreiecks.
Es wäre super, wenn hier jemand einen Tip für mich hätte.
Hier der Code:
[Java]
public void display(GLAutoDrawable drawable) {
// TODO Auto-generated method stub
final GL gl = drawable.getGL();
// Clear screen.
gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
gl.glMatrixMode(GL.GL_PROJECTION); // Select Projection
gl.glPushMatrix(); // Push The Matrix
gl.glLoadIdentity(); // Reset The Matrix
gl.glOrtho(0, 640, 480, 0, -1, 1); // Select Ortho Mode (640x480)
gl.glMatrixMode(GL.GL_MODELVIEW); // Select Modelview Matrix
gl.glPushMatrix(); // Push The Matrix
gl.glLoadIdentity(); // Reset The Matrix
tex.enable ();
tex.bind ();
gl.glBegin(GL.GL_QUADS);
gl.glTexCoord2f(0, 1); // Texture Coordinate ( 0, 1 )
gl.glVertex2f(0, 0); // First Vertex ( 0, 0 )
// Texture Coordinate ( 0, 0 )
gl.glTexCoord2f(0, 0 );
gl.glVertex2f(0, 480); // Second Vertex ( 0, 480 )
// Texture Coordinate ( 1, 0 )
gl.glTexCoord2f(1 , 0 );
gl.glVertex2f(640, 480); // Third Vertex ( 640, 480 )
// Texture Coordinate ( 1, 1 )
gl.glTexCoord2f(1 , 1 );
gl.glVertex2f(640, 0); // Fourth Vertex ( 640, 0 )
gl.glEnd();
tex.disable ();
gl.glBegin(GL.GL_TRIANGLES);
gl.glColor3f(1,0,0);
gl.glVertex2d(100,100);
//gl.glColor3f(1,0,0);
gl.glVertex2d(200,200);
//gl.glColor3f(1,0,0);
gl.glVertex2d(100,200);
gl.glEnd();
}
[/Java]