Zum Hauptinhalt springen
Nicht aus der Schweiz? Besuchen Sie lehmanns.de

Grundlagen der 3D-Programmierung

Mathematik und Praxis mit OpenGL

(Autor)

Buch | Softcover
743 Seiten
2012
Open Source Press (Verlag)
9783941841758 (ISBN)
CHF 83,85 inkl. MwSt
  • Titel ist leider vergriffen;
    keine Neuauflage
  • Artikel merken
Die 3D-Computergrafik stellt vielfältige, zum Teil sehr hohe Anforderungen: Fundierte mathematische Kenntnisse sind hier ebenso gefordert wie Programmiererfahrung und nicht zuletzt ein Gefühl für gute Bilder.



Dieses Buch vermittelt Einsteigern und fortgeschrittenen Anfängern ausführlich das notwendige Basiswissen: Neben den mathematischen Grundlagen lernen Sie die Praxis anhand der plattformunabhängigen OpenGL-Spezifikation kennen. Die Beispiele, hier in Java implementiert, sind leicht auf andere Sprachen wie C++, aber auch Runtime-Umgebungen wie Android übertragbar. Nach der Lektüre sind Sie in der Lage, eigene Projekte mit OpenGL zu realisieren, basierend auf VBOs für die Datenübergabe und der Shader-Programmierung.



Eine umfassend kommentierte Referenz der im Buch verwendeten OpenGL-Funktionen rundet die Darstellung ab und empfiehlt das Buch für die Praxis wie auch für das Studium.

Gerhard Virag ist ein erfahrener Softwareingenieur, der in diesem Buch seiner Passion für die Computergrafik Gestalt gegeben hat. Er lebt und arbeitet als freiberuflicher IT-Consultant in München.

Über dieses Buch

1 Einführung
1.1 Programmbeispiele
1.2 Warum Java und OpenGL?
1.3 Warum nicht Java 3D?
1.4 Was macht OpenGL eigentlich?
1.4.1 Die Rendering Pipeline
1.4.2 Die Geometrie-Pipeline
1.4.3 Rasterung
1.4.4 Fragmentverarbeitung und Framebuffer
1.4.5 Shader
1.4.6 Was ist OpenGL nicht?

2 Der dreidimensionale Raum
2.1 Einführung
2.2 Transformationen
2.2.1 Translationen
2.2.2 Skalierungen
2.2.3 Kompositionen
2.2.4 Scherungen
2.2.5 Perspektivische Projektion
2.2.6 Rotationen
2.2.7 Drehungen an Ort und Stelle
2.2.8 Objekteigene Koordinatensysteme
2.2.9 Rotation um eine beliebige Achse
2.3 Projektionen
2.3.1 Projektionsarten
2.3.2 Darstellungsbereiche
2.3.3 Tiefenpuffer
2.3.4 Parallele Projektionen
2.3.5 Perspektivische Projektionen
2.4 Koordinatensysteme der Rendering-Pipeline
2.5 Projektionsklassen
2.5.1 Viewport-Transformation
2.5.2 Projektionsmatrizen
2.5.3 Multiviewport – Orthogonal
2.5.4 Multiviewport – Perspektive
2.6 Beobachter
2.6.1 Das Auge
2.6.2 Standort
2.6.3 Die Blickrichtung
2.6.4 Die Orientierung
2.6.5 Die Frustum-Flächen
2.6.6 Interaktive Projektion
2.7 Zusammenfassung

3 Der vernetzte Raum
3.1 Graphen
3.1.1 Einführung
3.1.2 Graphen und Relationen
3.2 Meshes
3.2.1 Einführung
3.2.2 Repräsentation und Navigation
3.2.3 Halfedges
3.2.4 Zusammenfassung

4 Objekte
4.1 Objekte an OpenGL übergeben
4.1.1 Vertex-Datenpuffer
4.1.2 Mapping und Meshdaten
4.1.3 Shader und generische Attribute
4.1.4 Framework mit generischen Attributen
4.1.5 Zusammenfassung
4.2 Objekte erzeugen
4.3 Externe Objekte
4.3.1 Dateiformate
4.3.2 Objekte einlesen
4.4 Kollisionen
4.4.1 Grenzflächen
4.4.2 Grenzvolumen
4.4.3 Von allen Seiten attackiert
4.5 Gitter und Raumteiler
4.6 Picking
4.6.1 Picking mit OpenGL
4.6.2 Picking Pipeline
4.6.3 Picking: Beispiel
4.7 Zusammenfassung

5 Licht und Farbe
5.1 Farbe
5.1.1 Farbmodelle
5.1.2 Farbpuffer
5.1.3 Nebel
5.2 Licht
5.3 Lichtquellen, Materialien
5.3.1 Umgebungslicht
5.3.2 Diffuses Licht
5.3.3 Spotlicht
5.3.4 Ausgedehnte Lichtquellen
5.3.5 Dunkelquellen
5.3.6 Lichtmodelle
5.4 Programmbeispiel
5.4.1 Quellcode
5.5 Zusammenfassung

6 Images, Texturen und Text
6.1 Images
6.1.1 Grundbegriffe
6.1.2 Vom Sample zum Image
6.1.3 Images und Image-Dateien
6.1.4 Images manipulieren und analysieren
6.1.5 Images laden und speichern
6.1.6 BufferedImage
6.2 Texturen
6.2.1 Texturarten
6.2.2 Texture Images
6.2.3 Texture Mapping
6.2.4 Mipmapping
6.2.5 Texturen als Datenquelle bei Shadern
6.2.6 Beispielprogramm 2D-Texturen
6.2.7 Beispielprogramm 1D-Texturen
6.3 Text und Fonts
6.4 Zusammenfassung

7 Mathematische Grundlagen
7.1 Mengen und Gruppen
7.1.1 Algebraische Struktur
7.1.2 Funktion A nach B
7.1.3 Mengen
7.1.4 Kombinationen, Permutationen, Tupel
7.1.5 Gruppen
7.2 Zahlen
7.2.1 Binäre Darstellung einer Zahl
7.2.2 Gleitkommazahlen
7.2.3 IEEE 754
7.2.4 Hinweise
7.3 Matrizen
7.3.1 Darstellung
7.3.2 Rechnen mit Matrizen
7.3.3 Inverse Matrix
7.3.4 Verfahren zur Matrixinvertierung
7.4 Vektoren
7.4.1 Einheitsvektor, Betrag eines Vektors
7.4.2 Vorstoß in die vierte Dimension
7.4.3 Vektoren und Matrizen
7.4.4 Normale und Matrizen
7.4.5 Skalares Produkt zweier Vektoren
7.4.6 Längen- und Winkelmessung
7.4.7 Gram-Schmidt-Verfahren
7.4.8 Gerade im Raum
7.4.9 Vektorprodukt in 3D
7.4.10 Mehrfachprodukte
7.4.11 Flächenberechnung
7.4.12 Ebenen im Raum
7.5 Baryzentrische Koordinaten
7.6 Basiswechsel
7.7 Drehungen und Winkel
7.7.1 Richtungskosinus
7.7.2 Kugelkoordinaten
7.7.3 Rotationsmatrizen
7.7.4 Ausrichtung eines Koordinatensystems
7.7.5 Bezugssystem und objekteigenes System
7.7.6 Cardan-Winkelsystem
7.7.7 Andere Winkelsysteme
7.7.8 Euler-Winkelsystem
7.7.9 Gimbal Lock
7.8 Quaternionen
7.8.1 Alternative schnelle Berechnung
7.8.2 Rechenregeln für Quaternionen 529
7.8.3 Drehungen und Interpolation mit Quaternionen
7.8.4 Von der Matrix zum Quaternion
7.9 Zusammenfassung

8 Programmierung
8.1 Shader
8.2 Mathematikbibliothek
8.2.1 Grundklassen
8.2.2 Datenhaltung
8.2.3 Point
8.2.4 Vector
8.2.5 Line
8.2.6 Plane
8.2.7 Matrix und Transformationsklasse
8.2.8 Klassenübersicht
8.3 Java 581
8.3.1 Puffer in Java
8.3.2 Die Object-Klasse und 3D-Grafiksoftware
8.3.3 Zufallszahlen mit Java
8.3.4 Programme beschleunigen
8.3.5 Bindung an OpenGL
8.3.6 Programmierumgebung einrichten
8.3.7 Verzeichnisstrukur
8.3.8 Programmliste
8.3.9 Nützliche Hilfsklassen

9 OpenGL-Funktionen
9.1 Versionsübersicht
9.2 Typ- und Formatangaben
9.3 Funktionsliste
9.4 Shaderprogrammierung
9.4.1 Vordefinierte Variablen
9.4.2 Qualifizierer
9.4.3 Shaderfunktionen
9.4.4 Ableitungen berechnen im Fragmentshader

Anhang

A Notationshinweise und Formeln
A.1 Notationen
A.2 Formeln trigonometrischer Funktionen
A.2.1 Summen und Differenzen
A.2.2 Produkte
A.2.3 Doppelte und halbe Winkel
A.3 Griechische Buchstaben

Erscheint lt. Verlag 30.8.2012
Reihe/Serie professional reference
Sprache deutsch
Maße 176 x 240 mm
Gewicht 1265 g
Einbandart Paperback
Themenwelt Mathematik / Informatik Informatik Programmiersprachen / -werkzeuge
Schlagworte 3D • 3D-Grafik • 3D-Programmierung • Android • C++ • Computergrafik • Java • OpenGL • Shader-Programmierung
ISBN-13 9783941841758 / 9783941841758
Zustand Neuware
Informationen gemäß Produktsicherheitsverordnung (GPSR)
Haben Sie eine Frage zum Produkt?
Mehr entdecken
aus dem Bereich
Grundlagen und praktische Anwendungen von Transpondern, kontaktlosen …

von Klaus Finkenzeller

Buch (2023)
Hanser (Verlag)
CHF 125,95
das umfassende Handbuch

von Marc Marburger

Buch | Hardcover (2024)
Rheinwerk (Verlag)
CHF 69,85