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...
![^^](wcf/images/smilies/squint.png.pagespeed.ce.vVqemmKAwr.png)
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?