Nutzen von GLDrawElements
-
Hallo
ich nutze seit kurzem GLDrawElements, da es wohl Vorteile bzgl der Rechenzeit bietet und so viel schreiben muss man damit auch nicht.
Jetzt wollte ich fragen, ob man damit auch Rotationen(also dass sich mein Objekt auf dem Bildschirm bewegt) machen kann, wie sonst auch.
Also einfach:glRotate(a,1,0,0);
cube(); //Aufruf des Ojekts
a += 0.1;Weil es geht bei mir irgendwie net
Oder muss man da was anderes verwenden????????
Danke für eure antworten
-
GLDrawElements [...] ob man damit auch Rotationen machen kann
Ja.
Weil es geht bei mir irgendwie net
Du wirst Deinen Fehler konkreter beschreiben muessen.
-
Hier mein Code, zur Veranschaulichung
#include <stdlib.h> #include <windows.h> #include <GL/glut.h> GLfloat theta; GLfloat vertices[][3]={{-1,-1,-1},{1,-1,-1},{1,1,-1},{-1,1,-1},{-1,-1,1},{1,-1,1},{1,1,1},{-1,1,1}}; void tetraeder() { GLubyte tetraIndices[9]={0,7,5,0,2,5,7,2,0}; glDrawElements(GL_TRIANGLES,9,GL_UNSIGNED_BYTE,tetraIndices); } void colorcube() { GLubyte cubeIndices[24]={0,3,2,1,2,3,7,6,0,4,7,3,1,2,6,5,4,5,6,7,0,1,5,4}; glDrawElements(GL_QUADS,24,GL_UNSIGNED_BYTE,cubeIndices); } void display() { glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); glRotatef(theta,1,0,0); //ab hier glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); glLoadIdentity(); colorcube(); //glBegin()... tetraeder(); //glEnd() theta += 0.4f; //bis hier glutSwapBuffers(); } void init() { glClearColor( 0.0, 0.0, 0.0, 1.0 ); glEnableClientState(GL_VERTEX_ARRAY); glVertexPointer(3,GL_FLOAT,0,vertices); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(-2.0,2.0,-2.0,2.0,-2.0,2.0); gluLookAt(0.25,0.25,0.5, 0,0,0, 0,1,0); glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); } int main( int argc, char *argv[] ) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB| GLUT_DEPTH); glutInitWindowSize(500, 500); glutCreateWindow("Übung_3-Problem_1"); init(); glutDisplayFunc(display); glutMainLoop(); return 0; }
Hallo,
tschuldigung, dass ich mich so lang nicht gemeldet hab.War unterwegs.
Also mich interessiert das Markierte, wo steht ab hier bis hier.
Es geht nicht, dass mein Objekt routiert.
Muss ich also extra ne Funktion definieren? Und wenn ja, wie?
Normalerweise ging das, wenn man glBegin und glEnd (sieht man im Kommentar) benutzt hat.
Aber hier irgendwie net.Ich bin ziemlicher Anfänger auf dem Gebiet...
Kennt einer vllt ein Buch, wo die Befehle auch so erklärt werden, wie der Computer sie bearbeitet.Am liebsten auf DEUTSCH.Danke euch
-
Tu' glLoadIdentity mal vor glRotatef und lies einen Grundlagenartikel zum Umgang mit Matrizen.
-
Super Danke
Das hat mir echt geholfen.
Die Seite ist der Hammer und genau das wonach ihc gesucht habe.Danke