Hi Leute,
als versierter Direct3D'ler bin ich mit dem Matrix-Stack aus OpenGL genau NULL vertraut udn verzweifle an einer einfachen Sache: Ich habe ein Android-Projekt, bei der ich in meinem Renderer bei dem onSurfaceChanged()-Eventhandler der Perspektive setze. Innerhalb onDrawFrame() gehe ich wie folgt vor:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
|
gl.glClear(...);
gl.glMatrixMode(GL10.GL_MODELVIEW);
gl.glLoadIdentity();
GLU.gluLookAt(gl,0,0,-3,0,0,0,0,1.0f, 0); //von -3 in z richtung nach nullvektor schauen, upvektor ist 0,1,0
_cube.rotateX(1);
_cube.render(gl);
|
Das funktioniert wunderbar. sobald ich aber einen zweiten dazu rendern will, dan kriege ich das nicht hin, dass sie nebeneinander je bei -1,0,1 und 1,0,1 und sich um die eigene achse drehen! es liegt vermutlich an der fehlenden kameramatrix, die verloren geht... da harkt es bis heute bei mir bei opengl...
hier die renderfunktion von cube:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
|
gl.glPushMatrix();
gl.glLoadIdentity();
gl.glTranslatef(posX,posY,posZ);
gl.glRotatef(angleX, 1, 0, 0);
gl.glRotatef(angleY, 0, 1, 0);
gl.glRotatef(angleY, 0, 0, 1);
gl.glPopMatrix();
//...rendern
|
was ist mein dummer fehler?!
PS: Warum formatiert hier code immer so besch...eiden unschön?