Computergrafik

Matrix Berechnen Und Setzen Standard-Codesequenz

MatrizenBeispiele | | Hierarchische Modellierung

Annahme: die Framework-Funktionen werden verwendet, es gibt eine Initialisierungs-Funktion, und eine Display-Funktion, die fĂĽr jeden Frame aufgerufen wird.

Das ganze sind nur Code-Vorschläge, diese müssen für eigene Funktionalität verändert werden, und die Variablennamen den eigenen Konventionen angepasst werden.

Init-Funktion

Können auch jederzeit während der Zeichenroutine verändert werden, aber meist reicht die Initialisierung einmal am Anfang.

  • Objekte (Cube, Tet, Pyramid, Sphere, Cylinder, Disc, Cone, Ring, CoordSys) erstellen bzw. eines laden
lglCube cube;  // Feld in der Klasse
  • Löschfarbe fĂĽr glClear()
glClearColor (0.0, 0.0, 0.0, 0.0);
  • Tiefen-Test (z-Buffer) einschalten
glEnable (GL_DEPTH_TEST);

Display-Funktion

1) Bildschirm löschen
  • Ohne z-Buffers GL_DEPTH_BUFFER_BIT entfernen:
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
2) P und MV berechnen
mat4 proj, mv;
proj = mat4::perspective ( ... );
mv   = mat4::lookat ( ... );
mv   = mv * mat4::translate (...);
...
3) P und MV setzen und Zeichenbefehle schicken:
lglProjection (proj);
lglModelView  (mv);

lglRender     (cube);
Alternative zum letzten Schritt: Objekt von Hand zeichnen:
lglBegin (LGL_TRIANGLES);
lglVertex (...);
...
lglEnd();


MatrizenBeispiele | | Hierarchische Modellierung

Options: