Computergrafik Michael Bender, Manfred Brill Ein anwendungsorientiertes Lehrbuch ISBN 3-446-40434-1 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-40434-1 sowie im Buchhandel
Inhaltsverzeichnis Vorwort... XI 1 Einleitung... 1 1.1 Die Entwicklung der Computergrafik.... 1 1.2 Computergrafik-Architekturen... 2 1.3 Wegweiser durch das Buch..... 8 2 Grundlegende Verfahren und Techniken... 9 2.1 Transformationen und Koordinatensysteme...... 10 2.1.1 Punkte und Vektoren..... 10 2.1.2 Affine Kombinationen.... 12 2.1.3 Homogene Koordinaten und affine Abbildungen... 14 2.1.4 Hierarchien und Szenengraphen... 23 2.2 Projektionen und Kameramodelle...... 26 2.2.1 Parallelprojektion... 26 2.2.2 Zentralprojektion... 32 2.2.3 Die virtuelle Kamera..... 36 2.3 Clipping und Rasterung... 40 2.3.1 Pixel und mehr......... 40 2.3.2 Die Window-Viewport-Transformation.... 42 2.3.3 Clipping und Culling.... 44 2.3.4 Rasterung und Scan Conversion... 55 2.4 Sichtbarkeit..... 64 2.5 Zusammenfassung Die Computergrafik-Pipeline... 71
VI Inhaltsverzeichnis 2.6 Fallstudien...... 73 2.6.1 Affine Transformationen und Hierarchien in OpenGL..... 74 2.6.2 Hierarchien in VRML und Alias MAYA.... 80 2.6.3 Die virtuelle Kamera in OpenGL... 82 2.6.4 Clipping in OpenGL..... 87 3 Geometrisches Modellieren mit Kurven und Flächen... 91 3.1 Modellieren geometrischer Objekte...... 91 3.2 Parameterkurven... 97 3.3 Polynomiale Kurven..... 105 3.4 Bézier-Kurven und -Kurvensegmente.... 109 3.4.1 Bernstein-Basis und Bernstein-Polynome... 111 3.4.2 Der de Casteljau-Algorithmus.... 114 3.4.3 Eigenschaften von Bézier-Kurven(segmenten)..... 116 3.5 Interpolation und Splines...... 129 3.5.1 Das Interpolationsproblem...... 130 3.5.2 Parametrisierungen..... 131 3.5.3 Polynomiale Interpolation... 133 3.5.4 Hermite-Interpolation.... 136 3.5.5 Spline-Kurven..... 138 3.5.6 Catmull-Rom- und Kochanek-Bartels- (TCB-)Splines..... 139 3.5.7 Gewöhnliche kubische Splines.... 142 3.6 B-Spline-Kurven... 146 3.6.1 B-Spline-Basisfunktionen... 147 3.6.2 Der de Boor-Algorithmus... 155 3.6.3 Eigenschaften von B-Spline-Kurven...... 156 3.6.4 Rationale Darstellungen NURBS... 164 3.7 Parametrische Flächendarstellungen..... 167 3.7.1 Häufig verwendete Typen von Flächen.... 168 3.7.2 Tensorproduktflächen.... 170 3.7.3 Getrimmte Parameterflächen..... 175 3.8 Freiformvolumen und FFDs..... 176 3.9 Zusammenfassung...... 179 3.10 Fallstudien...... 179 3.10.1 Freiformgeometrie in OpenGL.... 180
Inhaltsverzeichnis VII 3.10.2 NURBS-Geometrie in Alias MAYA... 184 3.10.3 Interpolation mit Kurven... 185 4 Polygonale Netze... 191 4.1 Polygone und Polyeder.... 191 4.2 Datenstrukturen für polygonale Netze.... 197 4.2.1 Ecken- und Kantenlisten... 197 4.2.2 Die doppelt verkettete Kantenliste... 198 4.2.3 Normalenvektoren...... 200 4.3 Dreiecksnetze.... 204 4.3.1 Triangle Strips und Fans... 204 4.3.2 Konstruktion von Triangle Strips... 207 4.3.3 Konstruktion von Generalized Triangle Meshes.... 209 4.4 Modellieren mit Netzen... 211 4.4.1 Tesselation von Objekten... 211 4.4.2 Globale Deformationen... 215 4.4.3 Extrusions- und Rotationskörper... 219 4.4.4 Subdivision Modeling für polygonale Netze...... 221 4.5 Level-of-Detail und Vereinfachen von Netzen..... 231 4.5.1 Vereinfachen von polygonalen Netzen..... 232 4.5.2 Ausdünnen von Netzen... 235 4.5.3 Progressive Meshes...... 236 4.6 Zusammenfassung...... 241 4.7 Fallstudien...... 241 4.7.1 Polygonale Netze in OpenGL..... 242 4.7.2 Platonische und archimedische Körper.... 246 4.7.3 Netze und Subdivision in Alias MAYA.... 251 5 Bildsynthese... 257 5.1 Wahrnehmung, Licht und Farbe... 258 5.1.1 Licht und Farbe.... 258 5.1.2 Die menschliche Wahrnehmung... 259 5.1.3 Farbmodelle...... 261 5.2 Beleuchtung, Reflexion, Transmission,...... 269 5.2.1 Die Strahlenoptik... 271 5.2.2 Das Reflexionsgesetz..... 272
VIII Inhaltsverzeichnis 5.2.3 Das Brechungsgesetz..... 274 5.2.4 Weitere Einflussfaktoren... 276 5.3 Beleuchtung und Schattierung... 278 5.3.1 Das Lambert-Beleuchtungsmodell... 279 5.3.2 Das Phong-Beleuchtungsmodell... 280 5.3.3 Weiterführende Modellbetrachtungen..... 286 5.4 Schattierungsverfahren für polygonale Netze..... 288 5.4.1 Flat-Shading...... 289 5.4.2 Gouraud-Shading...... 289 5.4.3 Phong-Shading.... 291 5.5 Programmierbare Shader... 292 5.6 Mapping-Techniken...... 297 5.6.1 Texture-Mapping... 298 5.6.2 Weiterführende Verfahren... 305 5.7 (Anti-)Aliasing.... 309 5.7.1 Ein wenig Signaltheorie... 309 5.7.2 Signale und Computergrafik..... 318 5.8 Zusammenfassung...... 328 5.9 Fallstudien...... 329 5.9.1 Beleuchtung, Materialien und Schattierung in OpenGL.... 329 5.9.2 Cg Vertex-Shader in OpenGL..... 335 5.9.3 GLSL Vertex- und Fragment-Shader...... 341 5.9.4 Mapping in OpenGL..... 345 6 Visualisierung... 353 6.1 Wissenschaftliches Rechnen und Visualisierung... 354 6.2 Datenstrukturen... 356 6.3 Algorithmen für skalare Attribute...... 361 6.3.1 Farbtabellen...... 361 6.3.2 Höhenfelder, Konturlinien und Konturflächen..... 365 6.3.3 Der Marching Cubes-Algorithmus... 367 6.4 Direkte Volumen-Visualisierung... 373 6.4.1 Rekonstruktion.... 376 6.4.2 Transferfunktionen...... 379 6.4.3 Ein Beleuchtungsmodell für das Volume-Rendering... 380 6.4.4 Compositing..... 383 6.4.5 Ray-Casting...... 387
Inhaltsverzeichnis IX 6.5 Visualisierung von Vektorfeldern... 391 6.5.1 Modellieren von Vektorfeldern.... 395 6.5.2 Visualisierung von Trajektorien und Stromlinien.... 398 6.5.3 Line Integral Convolution... 400 6.5.4 Visualisierung von Vektorfeldern mit Flächen..... 402 6.6 Zusammenfassung...... 406 6.7 Fallstudien...... 407 6.7.1 Die Visualisierungs-Pipeline in VTK...... 407 6.7.2 Volumen-Visualisierung mit VTK... 414 6.7.3 Visualisierung von Vektorfeldern mit VTK... 419 7 Computer-Animation... 425 7.1 Computer-Animation..... 426 7.2 Basistechnologien und Interpolation..... 430 7.2.1 Key Frames...... 430 7.2.2 Rotationen und Key Framing..... 435 7.2.3 Pfad-Animation.... 443 7.2.4 Animation von Deformationen.... 447 7.3 Animation hierarchischer Objekte...... 451 7.3.1 Beschreibung hierarchischer Objekte...... 452 7.3.2 Inverse Kinematik...... 457 7.4 Prozedurale Animationstechniken...... 464 7.4.1 Partikelsysteme.... 464 7.4.2 Schwärme und Boids..... 473 7.5 Zusammenfassung...... 478 7.6 Fallstudien...... 479 7.6.1 Key-Framing und Pfad-Animation in Alias MAYA... 479 7.6.2 Expressions in Alias MAYA...... 483 7.6.3 Partikelsysteme in Alias MAYA.... 489 Literaturverzeichnis... 495 Stichwortverzeichnis... 503