Upload
vuongkhanh
View
225
Download
0
Embed Size (px)
Citation preview
Einführung in OpenGL und QT - Heike Jänicke2
OpenGL
Softwear-Interface zur Graphikhardware
Hardwareunabhängig => kann auf vielen Plattformen angewendet werden
stellt Objekte und Operationen für interaktive 3D Anwendungen bereit
Geometrische Primitive (Punkte, Linien, Dreiecke)
Anordnung der Primitive in 3D, Einstellung der Ansicht
Farbgebung
Rasterisierung
Einführung in OpenGL und QT - Heike Jänicke3
Beispiel
#include <GL/gl.h>
glClearColor (0.0, 0.0, 0.0, 0.0);
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (1.0, 1.0, 1.0);
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
glBegin(GL_POLYGON);
glVertex3f (0.25, 0.25, 0.0);
glVertex3f (0.75, 0.25, 0.0);
glVertex3f (0.75, 0.75, 0.0);
glVertex3f (0.25, 0.75, 0.0);
glEnd();
glFlush();
Einführung in OpenGL und QT - Heike Jänicke4
Primitive zeichnen
Umschlossen von
glBegin( typ )
glEnd()
Typ: GL_POINTS, GL_LINES, GL_TRIANGLES...
Normale definiert durch:
glNormal3f{v}( ... )
Vertices definiert durch:
glVertex3f( double, double, double ) oder
glVertex3fv( double[3] )
Einführung in OpenGL und QT - Heike Jänicke5
Materialien
glDisable(GL_COLOR_MATERIAL); glMaterialfv( GL_FRONT_AND_BACK, GL_AMBIENT, ambient );
glMaterialfv( GL_FRONT_AND_BACK, GL_DIFFUSE, diffuse );
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, specular );
glMaterialfv(GL_FRONT, GL_SHININESS, shininess );
Einführung in OpenGL und QT - Heike Jänicke6
Transformationen
Transformation von Objekten:void glTranslate{fd}(TYPEx, TYPE y, TYPEz);
void glRotate{fd}(TYPE angle, TYPE x, TYPE y, TYPE z);
void glScale{fd}(TYPEx, TYPE y, TYPEz);
void glMultMatrix{fd}(const TYPE *m);
Einführung in OpenGL und QT - Heike Jänicke7
QT
Qt ist eine Klassenbibliothek für die plattform-übergreifende Programmierung grafischer Benutzeroberflächen unter C++..