§0-1 §0 Überblick, einführung in opengl visualisierung mit c++ / opengl - ss 2007 0.1 Überblick...
TRANSCRIPT
![Page 1: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/1.jpg)
§0-1
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.1 Überblick
Bereiche der Visualisierung
- Flow-Vis
- Software-Vis
- Tensorfield-Vis
- Bio-Medical-Vis
- Mobile Vis
- Geospatial-Vis
- Architectural Vis
- Vol-Vis
- InfoVis
- Comparative Vis
![Page 2: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/2.jpg)
§0-2
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
Simulationsdaten
Startwerte, Randbedingungen
(mathematisches) Modell
numerische Simulation
Messdaten
Simulation
Visualization
Rendering
Visualisierungsdaten
Datenfilterung / -reduktion
Mapping:
mathematisches Modell
Visualisierungsmodell
Simulationsdaten
Bilddaten
Diskretisierung
Sichtdefinition
Transformation
Projektion
Rasterisierung
Visualisierungsdaten
0.1 Überblick
Visualisierungs-Pipeline
![Page 3: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/3.jpg)
§0-3
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.1 Überblick
Anwendungs-Beispiel: „Kontext-sensitive Visualisierung“
(Jun. Prof. Dr. Achim Ebert)
State-of-the-Art bei Visualisierungssystemen:
- Systemdesign
- Große monolithische Systeme
- Für spezielle Verwendungszwecke entwickelt
- Softwareentwicklung
- Anwendung und Visualisierungssystem eng gekoppelt
- Programmierung sehr aufwendig
- Flexibilität
- Plattformabhängigkeit
- Manuelle Einstellung der Systemparameter
- Keine dynamische Anpassung
![Page 4: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/4.jpg)
§0-4
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.1 Überblick
Anwendungs-Beispiel: „Kontext-sensitive Visualisierung“
- Definition: kontextsensitiv
- kontextbezogen, kontextadaptiv
- „auf den aktuellen Zusammenhang – den Kontext – bezogen”
- Definition: kontextsensitive Visualisierung
- Eine Visualisierung bzw. eine Visualisierungsapplikation ist genau dann kontextsensitiv, wenn
- sie vorgegebene Kontexte berücksichtigt und
- flexibel auf sich dynamisch ändernde Situationen proaktiv reagiert.
![Page 5: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/5.jpg)
§0-5
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.1 Überblick
Kontext-sensitive Visualisierung - Szenarien
- Benutzerkontext
- Individualität und Personalisierung
- Benutzermodell: individuelle Benutzereigenschaften
![Page 6: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/6.jpg)
§0-6
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.1 Überblick
Kontext-sensitive Visualisierung - Szenarien
- Benutzerkontext
- Situationskontext
- Aktuelle Situation des Benutzers
- Orts- und Umgebungsmerkmale
- Visualisierungsanwendungen:
- Location-based services
- Mobile Visualisierung
![Page 7: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/7.jpg)
§0-7
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.1 Überblick
Kontext-sensitive Visualisierung - Szenarien
- Benutzerkontext
- Situationskontext
- System- und Interaktionskontext
- Systemkontext: Möglichkeiten der Rechnerumgebung
- Plattformunabhängigkeit
- Interaktionkontext: sich dynamisch ändernde Werte
- Flexibilität des Visualisierungsprozesses
- Parameterwahl: Framerate vs. Qualität
![Page 8: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/8.jpg)
§0-8
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.1 Überblick
Kontext-sensitive Visualisierung - Szenarien
- Benutzerkontext
- Situationskontext
- System- und Interaktionskontext
- Darstellungskontext
- Ausgabemedium (Art, Größe, Auflösung)
- Thematik: Wie stelle ich etwas dar?
![Page 9: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/9.jpg)
§0-9
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.1 Überblick
Kontext-sensitive Visualisierung - Szenarien
- Benutzerkontext
- Situationskontext
- System- und Interaktionskontext
- Darstellungskontext
- Datenkontext
- Wünsche und Vorgaben des Benutzers
- Parameter i.d.R. nicht im Voraus bekannt
- Thematik: Was stelle ich dar?
![Page 10: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/10.jpg)
§0-10
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.1 Überblick
Kontext-sensitive Visualisierung – Agentengesteuerte Visualisierungspipeline
UserDemands
Interaction
SystemPlatform
SystemValues
Data structures /Geometry /Colors /Textures
Measurements /Empirical Data
Model /Simulation
Resolution
MaterialsRenderingGeometry
LightsAnti-
Aliasing
Visualization
Reader FilterVisualizationAlgorithms
![Page 11: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/11.jpg)
§0-11
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.1 Überblick
Anwendungsbeispiel MacVis: Multi Agent- and Component-based Visualization
PERFORMANCE AGENT
READERMARCHING
CUBELEVEL OF
DETAILTEXTURECOORDS
RENDERER
USER DEMANDS ENVIRONMENT
LEGEND
REACTIVE AGENT
PROACTIVE AGENT
DATA GENERATION DATA CONVERSION DATA VISUALIZATION
CONTROL LOOP
REACTIVE AGENTKNOWLEDGE BASE
ENVIRONMENTKNOWLEDGE BASE
![Page 12: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/12.jpg)
§0-12
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.1 Überblick
Anwendungsbeispiel MacVis: CT-Datensatz eines menschlichen Kopfes
- 94 Schichtaufnahmen
- Abstand: 1.5 mm
- Auflösung: 2562 Pixel
- Pixelabstand: 0.8 mm
- Farbtiefe: 12 Bit
- Marching-Cubes-Algorithmus
- Berechnung von Konturflächen
- Approximation durch Dreiecksnetze
- Im Beispiel: ca. 150.000 Dreiecke (beste Qualitätsstufe)
- Level of Detail
![Page 13: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/13.jpg)
§0-13
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.1 Überblick
Einschub: Marching-Cubes Algorithmus
- Berechnung von Konturflächen
- Erweitert Marching-Squares auf 3D
- Marching Squares:
- Wähle Zelle
- Bestimme Zustand der Zelle -> Bitvektor
- Lookup-Table -> Verlauf der Konturlinie
- Berechne Schnittpunkte mit Kanten der Zelle:
- Weiter mit benachbarter Zelle
i jS 1 V V mit i
j i
C f (V )
f (V ) f (V )
15
0 1 2
3 4 5
6 7 8
9 10 11
12 13 14
![Page 14: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/14.jpg)
§0-14
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.1 Überblick
Anwendungsbeispiel MacVis: Visual Prototyping
![Page 15: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/15.jpg)
§0-15
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.1 Überblick
Anwendungsbeispiel MacVis: Volumen-Rekonstruktion aus CT-Datensätzen
![Page 16: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/16.jpg)
§0-16
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.1 Überblick
Anwendungsbeispiel: VirtualTryOn – Virtueller Bekleidungskatalog
- Vision
- Interaktiver Bekleidungskatalog mit Kunden als 3D-Modell
- Konfektionsware und Maßkonfektion
- Visuelle Passformkontrolle
![Page 17: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/17.jpg)
§0-17
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.1 Überblick
Anwendungsbeispiel: VirtualTryOn – Virtueller Bekleidungskatalog
- VITUS 3D Body-Scanner
- 360°-Scanner; Scanvolumen: 1.2m x 0.8m x 2.1m
- Laserklasse: 1 (augensicher)
- Scandauer: 10 - 20 Sekunden
- Auflösung: 1 - 2 mm
- Optional: hochauflösende Farbtexturen
- Automatische Bestimmungindividueller Körpermaße
- Virtueller Kunde
- Scan-Objekt + Maße + Featurepunkte
![Page 18: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/18.jpg)
§0-18
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.1 Überblick
Anwendungsbeispiel: VirtualTryOn – Virtueller Bekleidungskatalog
- Kleidungssimulation
- extrem zeitaufwendig
- Eingabe: 3D-Scan des Kleidungsstücks
- Morphing-Agent
- Regelsystem- Basis: bekleidungstechnische Größentabellen
- Exakte Maßvorgaben
- Lokalität: Änderung von Einzelmaßen (z.B. Ärmellänge)
- Kopplung von Maßänderungen (-> Konfektionsgrößen)
- Shape-Deformation, Morphing zwischen Größen
![Page 19: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/19.jpg)
§0-19
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.1 Überblick
Anwendungsbeispiel: VirtualTryOn – Virtueller Bekleidungskatalog
- Morphing-Technik
- Segmentierung des Kleidungsstückes
- Bestimmung einer geeignetenParametrisierung für jedes Segment
- Deformation- Änderung der lokalen
Eckpunkt-Koordinaten bzgl. zugehöriger Parametrisierung
- Gesamt-Morph- Additive lokale Deformationen
zylindrisch
sphärisch
zylindrisch
zylindrisch
zylindrisch
![Page 20: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/20.jpg)
§0-20
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.1 Überblick
Anwendungsbeispiel: VirtualTryOn – Virtueller Bekleidungskatalog
- Virtuelle Anprobe
- Positionierung
- Vorpositionierung: Featurepunkte aus Scanprozess
- „Haltungskorrektur” zur genauen Positionierung
![Page 21: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/21.jpg)
§0-21
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.1 Überblick
Anwendungsbeispiel: VirtualTryOn – Virtueller Bekleidungskatalog
Ergebnisse
![Page 22: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/22.jpg)
§0-22
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.1 Überblick
Anwendungsbeispiel: Mobile Visualisierung
- Inhalte
- Framework für ein flexibles, mobilesInformationsvisualisierungssystem
- Optimale visuelle Aufbereitung der Information
- Objekt- und/oder aufgabenorientierte Visualisierung
- Integration von 3D-Visualisierung auf allen Plattformen
- Einsatz modernster mobiler Geräte und Übertragungstechnologien
- Demonstrator
- Effiziente Informationsvermittlung und betriebliche Leistungssteigerung im Bereich von Abwasseranlagen
- Resultat: Transparentere sowie ökonomisch und ökologisch optimierte Prozesse in der Siedlungswasserwirtschaft
![Page 23: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/23.jpg)
§0-23
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.1 Überblick
Anwendungsbeispiel: Mobile Visualisierung - Technik
Server
D atenbank
PLS-D atenbank
M ess- undProzessdaten
D okum ente
P läne
Fotos
Videos
3D -O bjekte
Benutzer-Anfrage
D ynam ischeD arste llung
DB-Anfra
ge
DB-AnfrageResu lta t
Resu ltat
C lients
Visualis ierungsagenten
Legende:
![Page 24: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/24.jpg)
§0-24
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.1 Überblick
Anwendungsbeispiel: Mobile Visualisierung - Anwendungen
- Prozessüberwachung und -visualisierung
- Controlling und Benchmarking
- Reparatur und Wartung
- Aus- und Weiterbildung
- Notfall/Unfall
![Page 25: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/25.jpg)
§0-25
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.2 Einführung in OpenGL
OpenGL: Einführung/Standard
- OpenGL (Open Graphics Library) ist ein Standard für 3D Rendering und 3D Hardware-Beschleunigung
- OpenGL läuft unter Windows, MacOS, Linux, Unix, …
- Website: http://opengl.org
- Das OpenGL Architectural Review Board – ARB – bestimmt den Standard
![Page 26: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/26.jpg)
§0-26
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.2 Einführung in OpenGL
OpenGL: Eigenschaften
- Hohe Qualität und leistungsfähig
- Anwendungen in
– CAD/CAM/CAE
– Spiele
– Medizin
– VR
– Film / Fernsehen
![Page 27: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/27.jpg)
§0-27
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.2 Einführung in OpenGL
OpenGL: Vorteile für Entwickler
- Industriestandard, gratis
- Neutral und plattformübergreifend
- Stabil, kompatibel zu früheren Versionen
- Zuverlässig und portierbar, unabhängig von
Betriebs- und Window-System
- Entwickelt sich weiter, (aktuell: Vers. 2.1)
- Skalierbar: Home PC bis Supercomputer
- Ausgereiftes API, das low-level Details kapselt
- Ausführliche Dokumentation erhältlich
![Page 28: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/28.jpg)
§0-28
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.2 Einführung in OpenGL
OpenGL: Software Entwicklung
- OpenGL ist reich an Primitiven für
– Geometrie und Bild, Display-Listen, Transformationen, Beleuchtung, Texturen, Anti-aliasing, Blending, …
- Anbindung an C, C++, Fortran, Ada, Java, (Lisp) ausgehend von einheitlicher Spezifikation.
- Läuft unter den Betriebssystemen UNIX, Linux, MacOs, Windows 95/98/2000/NT/XP, Linux, Python, BeOS
- Läuft unter X-Windows (X11), Win32
- Unterstützt 2D und 3D
![Page 29: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/29.jpg)
§0-29
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.2 Einführung in OpenGL
OpenGL: Hardwarebeschleunigung
- Je nach Grafik-Karte werden gewisse Befehle
– von reiner Software
– von der Hardware
– oder von Soft- und Hardware gemischt ausgeführt
- Flexible Implementierung für low-cost PC bis hin
zu Grosscomputern
- Kartenspezifische Erweiterungen sind ebenfalls
möglich
![Page 30: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/30.jpg)
§0-30
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.2 Einführung in OpenGL
OpenGL: Grundlage für viele Anwendungen
- Viele high-level APIs bauen auf OpenGL auf:
– Open Inventor, IRIS Performer, OpenGL Optimizer, OpenSceneGraph
- Applikationen die auf OpenGL basieren:
– Maya
– 3D Studio Max
– WorldToolKit, WorldUp
– CosmoWorld
– Games like Unreal, Quake2, …
– …
![Page 31: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/31.jpg)
§0-31
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.2 Einführung in OpenGL
OpenGL: ARB
- Das OpenGL Architecture Review Board (ARB),
wacht über den Standard
- Dem Konsortium das 1992 gegründet wurde,
gehören Firmen wie IBM, Intel, HP, Microsoft,
Silicon Graphics, Evans & Sutherlands, …, an
- OpenGL wird laufend weiterentwickelt
- Endverbraucher, Softwareverkäufer, und OpenGL
API Programmierer zahlen keine Lizenzgebühren,
(nur Hardware Hersteller)
![Page 32: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/32.jpg)
§0-32
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.2 Einführung in OpenGL
OpenGL: Grundlagen
- API für Rendering in den Bildschirmspeicher,
unterstüzt keine Peripherie wie Window, Maus, Tastatur, …
– Wir verwenden hierzu GLUT
- Primitive (Punkt, Linie, Polygone, Pixel Rechteck)
unterliegen den jeweils aktiven Modi, die über
Prozeduraufrufe gesetzt werden können.
- OpenGL ist ein low-level API für 3D und 2D
Grafik, das das Rendering und weniger das
Modellieren von komplexen Objekten unterstüzt.
![Page 33: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/33.jpg)
§0-33
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.2 Einführung in OpenGL
OpenGL: Grundlagen
- GL verwendet ein Client-Server Modell:
Client: Programm, das das API verwendet.
Server: Übernimmt das Rendering.
- OpenGL als Status-Maschine:
Client state
Server state
![Page 34: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/34.jpg)
§0-34
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.2 Einführung in OpenGL
OpenGL: Syntax
- void glVertex3f(GLfloat x, GLfloat y, GLfloat z)
- void glNormal3dv(GLdouble arg[3])
- Rtype glName{e 1234}{e bsifd ub us ui}
– ([args,] T arg1, …, T argN [, args])
![Page 35: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/35.jpg)
§0-35
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.2 Einführung in OpenGL
OpenGL: Hello World
#include <GL/glut.h>
int main(int argc, char** argv) {
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (250, 250);
glutInitWindowPosition (100, 100);
glutCreateWindow ("hello");
init ();
glutDisplayFunc(display);
glutMainLoop();
return 0; /* ANSI C requires main to return int. */
}
![Page 36: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/36.jpg)
§0-36
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.2 Einführung in OpenGL
OpenGL: Hello World
void init (void) {
/* select clearing color */
glClearColor (0.0, 0.0, 0.0, 0.0);
/* initialize viewing values */
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}
![Page 37: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/37.jpg)
§0-37
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.2 Einführung in OpenGL
OpenGL: Hello Worldvoid display(void) {
glClear (GL_COLOR_BUFFER_BIT); /* clear all pixels */
/* draw polygon with corners at (0.25, 0.25, 0.0) and (0.75, 0.75, 0.0) */
glColor3f (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();
/* don't wait! start processing buffered OpenGL routines */
glFlush ();
}
![Page 38: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/38.jpg)
§0-38
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.2 Einführung in OpenGL
Aufgabe:
- Übersetzen Sie das oben gegebene Beispielprogramm und führen Sie es aus.
- Fügen Sie der Szene ein gelbes Dreieck mit den Ecken (0.25, 0.75, 0.0) (0.75, 0.75, 0.0) und (0.75, 0.75, 0.3) hinzu.
- Statt einer orthogonalen Parallelprojektion können Sie auch eine perspektivische Projektion benutzen. Ersetzen Sie dazu im Code die „glOrtho“-Anweisung durch folgende Anweisungen:gluPerspective(fieldOfView, aspect, near, far); gluLookAt(eyeX, exeY, eyeZ, centerX, centerY, centerZ,
upX, upY, upZ);
Experimentieren Sie mit verschiedenen Sichten auf die Szene.
![Page 39: §0-1 §0 Überblick, Einführung in OpenGL Visualisierung mit C++ / OpenGL - SS 2007 0.1 Überblick Bereiche der Visualisierung -Flow-Vis -Software-Vis -Tensorfield-Vis](https://reader035.vdocuments.net/reader035/viewer/2022062512/55204d7149795902118c33fe/html5/thumbnails/39.jpg)
§0-39
§0 Überblick, Einführung in OpenGL
Visualisierung mit C++ / OpenGL - SS 2007
0.2 Einführung in OpenGL
Literatur:
Computer Graphics with OpenGL (3. Auflage), D. Hearn, M.P. Baker. Prentice Hall, 2004. ISBN: 0130153907
OpenGL: A Primer (3. Auflage), Edward Angel, Addison-Wesley, 2007
OpenGL Programming Guide (5. Auflage), OpenGL ARB, Addison-Wesley, 2005,
The OpenGL Utility Toolkit (GLUT) Programming Interface API Version 3, Mark J. Kilgard, Silicon Graphics, Inc. November 13, 1996