Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Einführung in OpenGL Seminarvortrag im Rahmen des Bachelorstudiengangs „Scientific Programming“ Tural Bilalov.

Ähnliche Präsentationen


Präsentation zum Thema: "Einführung in OpenGL Seminarvortrag im Rahmen des Bachelorstudiengangs „Scientific Programming“ Tural Bilalov."—  Präsentation transkript:

1 Einführung in OpenGL Seminarvortrag im Rahmen des Bachelorstudiengangs „Scientific Programming“ Tural Bilalov

2 Inhalt Was ist OpenGL? OpenGL Sprache Rendering OpenGL Primitive 3D Objekte Modellierungstransformation ◦ Beispiel Darstellungstransformation Projektionen Beleuchtung Fazit

3 Was ist OpenGL? OpenGL (Open Graphics Library) ist eine Bibliothek für eine plattform- und programmiersprachenunabhängige Programmierung und Entwicklung von 2D- und 3D Computergrafik Das eingentliche OpenGL ist eine sehr hardwarenahe Schnittstelle aus etwa 200 Kommandos Eingie Besonderheiten: >> Effizienz >> Plattformunabhängigkeit >> niedrige Call-Draw Kosten >> Zustandsautomat >> reine Grafikbibliothek

4 OpenGL Sprache Syntax  Befehle (z.B. glClearColor() )  Konstanten(z.B. GL_COLOR_BUFFER_BIT ) Formate  Nicht-Vektor Version glColor3f (1.0, 0.0, 0.0);  Vektor Version GLfloat color_array[] = {1.0, 0.0, 0.0}; glColor3fv (color_array); Datentypen  GLbyte, GLshort, GLint, GLfloat, GLdouble, GLboolean, Glenum

5 Rendering Löschen des Fensterinhalts glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); Darstellungs- und Modellierungstransformationen glTranslatef( 0.0, 0.0, -15.0 ); glRotatef( xRot, 1.0, 0.0, 0.0 ); Zeichnen von Objekten glBegin(GL_QUADS); glVertex3f(-1, 1, -1); glVertex3f(-1, 1, 1); glVertex3f(-1, -1, 1); glVertex3f(-1, -1, -1); glEnd();

6 OpenGL Primitive Anordnung von Eckpunkten glBegin( ); glEnd(); Koordinaten glVertex3f() Eckpunktspezifische Daten ◦ Farbe, Normalvektor, Texturkoordinaten Zustandsvariablen ◦ Farbe, Linienbreite, Linienmuster, Schattierungmethode, Nebel usw. Shading Model

7 3D-Objekte Verdeckte Tiefe ◦ glEnable(GL_DEPTH_TEST), glClear(GL_DEPTH_BUFFER_BIT) Komplexe Objekte aus kleinen Primitiven Ausschnittsflächen Display Lists ◦ glNewList(name,mode) ◦ glCallList(name)

8 Modellierungstransformation Positionieren und Ausrichten des Models Einsatz von Matrizen glMatrixMode(GLenum mode)  GL_MODELVIEW, GL_PROJECTION und GL_TEXTURE glTranslate(TYPE x, TYPE y, TYPE z) glRotate(TYPE angle, TYPE x, TYPE y, TYPE z) glScale(TYPE x, TYPE y, TYPE z)

9 Besipiel Erst Drehen danach Verschieben (Pos. x-axis) Erst Verschieben und danach Drehen (Pos. Y=x) Matrix Stacks ( glPushMatrix(), glPopMatrix() )

10 Darstellungstransformation Positionieren und Fokusieren einer Kamera Einsatz von Matrizen glMatrixMode(GL_PROJECTION ) Zwei Arten :  Perspektivische Projektion  Orthografische Projektion

11 Projektionen  Perspektivische Projektion ◦ Realistische Darstellung ◦ glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near,GLdouble far)  Orthografische Projektion  Maßen der Objekte von großer Bedeutung  glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near,GLdouble far)

12 Beleuchtung Richtungslichtquellen (directional) Positionslichtquellen (positional) glLightfv(Glenum light, Glenum name, Glenum param) ◦ Position  GL_POSITION ◦ Farbbestandteile  GL_AMBIENT; GL_DIFFUSE; GL_SPECULAR glMaterialfv(Glenum face, Glenum name, Glenum param) Normale Vektoren

13 Fazit Prozedurales, low-level API Grafik-Pipeline (OpenGL State-Machine) Riesige Funktionalität Extensions-Chaos Multi-Platform Open-Source

14 Vielen Dank!


Herunterladen ppt "Einführung in OpenGL Seminarvortrag im Rahmen des Bachelorstudiengangs „Scientific Programming“ Tural Bilalov."

Ähnliche Präsentationen


Google-Anzeigen