Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Albert Ursler Geändert vor über 9 Jahren
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!
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.