13
Marius Apetri 3D-Grafik mit OpenGL Das umfassende Praxis-Handbuch inklusive CD-ROM

3D-Grafi k mit OpenGL - mitp.de · PDF fileAußerdem zum Thema bei mitp: Apetri OpenGL Marius Apetri 3D-Grafi k mit OpenGL Das umfassende Praxis-Handbuch Aus dem Inhalt: • Grundlagen

Embed Size (px)

Citation preview

Page 1: 3D-Grafi k mit OpenGL - mitp.de · PDF fileAußerdem zum Thema bei mitp: Apetri OpenGL Marius Apetri 3D-Grafi k mit OpenGL Das umfassende Praxis-Handbuch Aus dem Inhalt: • Grundlagen

Außerdem zum Themabei mitp:

Apet

riO

penG

LMarius Apetri

3D-Grafi k mit

OpenGLDas umfassende Praxis-Handbuch

Aus dem Inhalt:

Grundlagen der OpenGL-• ProgrammierungEinführung in die 3D-• Grafi kprogrammierungDas Zusammenwirken • von Programmsoftware und Grafi khardwareUmgang mit Matrizen• Beleuchtung von • GegenständenPolygon- und Textur-• schattierung mit GLSLEinschränkung des Sicht-• bereichesAuswahl von • GegenständenHardwarebeschleunigte • BildbearbeitungTexturprojektion• Ein- und Ausgabe • von TextenGenerierung einer • ProgrammkonsoleSemitransparenz• Globale und örtlich • begrenzte NebelfelderTexturprojektion• Multitextureffekte•

Auf der CD:Vollständige Quelltexte:

199 Programme in C++, • basierend auf GLUT199 Programme in C++ • für Windows4 Programme in Java • (JOGL v1.1.1a), die alle wichtigen Themen abdecken

Der OpenGL-Standard ist eine sprachenunabhängigeProgrammierschnittstelle zur Entwicklung von 2D- und 3D-Computergrafik und eignet sich zur Dar-stellung komplexer Szenen in Echtzeit. OpenGL ist die Grundlage zur Erstellung zahlreicher Software-projekte wie Computerspiele, Animationen für Film- und Videoprojekte, wissenschaftliche Dar-stellungen oder „virtuelle Realität“.Dieses Buch vermittelt die Kenntnisse, die für die Erstellung einfacher bis komplexer OpenGL-Anwendungen benötigt werden. Alle Themen werden anhand anschaulicher Beispiele erläutert. Der OpenGL-Standard wird aus der Perspektive des Entwicklers vorgestellt, der komplexe virtuel-le Welten generieren möchte, in denen man sich frei bewegen kann.Nach der Vorstellung grundlegender Konzepte von OpenGL wird die Visualisierung von Punkten, Linien,Polygonen und Polyedern erläutert. Daraufhin behandelt der Autor das von OpenGL eingesetzte System zur Verarbeitung von Matrizen einschließ-lich der Vorteile dieses Systems gegenüber der in der Mathematik üblichen Reihenfolge der Multipli-kation von Matrizen.Weitere Schwerpunkte sind die Geometry Pipeline, Picking, eine ausführliche Einführung in die Pro-grammierung des Vertex- und Fragmentprozessors mit GLSL, die hardwarebeschleunigte Bearbeitung von Bildern, Semitransparenz sowie Texturpro-jektion und -schattierung. Die Darstellung einer virtuellen Welt aus der Sicht mehrerer, beliebig positionierter und ausgerichteter Kameras wird ebenfalls behandelt.Dies ist ein Lehrbuch mit zahlreichen Übungsaufga-ben, das sich besonders gut für das Alleinstudium eignet. Zusammenhänge werden einem breiten Publikum nachvollziehbar erklärt, und es werden lediglich gute Kenntnisse einer leistungsfähigen Programmiersprache sowie das mathematische Grundwissen der gymnasialen Mittelstufe voraus-gesetzt. Dabei richtet sich der Autor an Leser, die weder über OpenGL-Kenntnisse noch über Vor-kenntnisse in der Computergrafik verfügen. Die Beispiele im Buch sind in C++ erstellt.

ISBN 978-3-8266-5548-7

ISBN 978-3-8266-1767-6

ISBN 978-3-8266-5953-9

(D) €

49

,95

Mathematische Grundlagen und Einführung in die 3D-Grafi k-programmierung

Modellierung dreidimensionaler Umgebungen

Zahlreiche anschauliche Beispielprogramme und Übungsaufgaben

ISBN 978-3-8266-5512-8ISBN 978-3-8266-5512-8

Das

um

fass

ende

Pr

axis

-Han

dbuc

h3D

-Gra

fi k

mit

inklusive CD-ROM

5512_P_OpenGL_U4_RS_Korr2.indd 1 12.07.2010 20:14:31

Page 2: 3D-Grafi k mit OpenGL - mitp.de · PDF fileAußerdem zum Thema bei mitp: Apetri OpenGL Marius Apetri 3D-Grafi k mit OpenGL Das umfassende Praxis-Handbuch Aus dem Inhalt: • Grundlagen

831

Stichwortverzeichnis

AAbgeschlossener Linienzug 83Abgewandtes Polygon 252Abstandsberechnung 762, 791Additionstheoreme 777Additivität 150, 153, 755Ähnlichkeit von Gegenständen 159Aliasing Artefact

Linien 86Alphatest 712Alphawert 614

Glättung von Linien 87Glättung von Polygonen 218Glättung von Punkten 58

Ambient Illumination Siehe UmgebungslichtAnimation 179Anpassung an das Sichtfeld

Definition 278mit homogenen Koordinaten 280

Anweisungsblockinnerer 250

ARB Siehe Architecture Review BoardArchitecture Review Board 35Arcus Kosinus 783Arrayform von Funktionen 52Artefakt

Spiegelung 685Vergrößerung 678Verkleinerung 678Verzerrung 673

Assoziativitätder Vektoraddition 760

Attributgruppe 73Attributstapel 73Auflösung

Definition 35horizontale 38vertikale 38

AusgabeText 570

Ausrichtunglokale Siehe Lokale Ausrichtung

Ausrichtungsabhängige Koordinate 333Ausrichtungsmatrix 331Auswahl von Gegenständen 417

Einzelauswahl 432Grundidee 417Mehrfachauswahl 417praktische Durchführung 418

AuswahlarrayAuswertung 424Definition 419

AuswahlkennungKennung eines Gegenstandes 418

Auswahlmodus 420Auswahlstapel 421

BBackface Culling Siehe Erkennung abgewandter Vor-

derseitenBasisgleichung

Aufbau von Matrizen 151Interpolation, lineare 260Kreuzprodukt 224Normalenvektor, Polygon 475Parallelprojektion 284Polygonschattierung, allgemein 471Polygonschattierung, Standardmodell 541Zentralprojektion 134

Befehl 577Befehlsinterpreter 574Begriff

Spiegelähnlichkeit 708Texturkoordinaten 671

Beliebig ausgerichtete Sinusfläche 445Beliebige Bewegung Siehe BewegungBernstein-Polynom 113Betrag eines Vektors 747, 756Bewegung

Definition 147praktischer Aufbau 161

BézierkurveAbfrage globaler Zustände 121Definition 112, 114Eigenschaften 111optimierte Darstellung 122praktische Darstellung 115

BildDefinition 553Farbbild 553Graustufenbild 553, 555Helligkeit 604Kontrast 604Koordinatensystem 565, 670Rasterposition 555, 560Schwarzweißbild 553Spektrum 611Überbelichtung 606Verwaltung 554

Bildbearbeitung 591Farbmatrix Siehe FarbmatrixFarbpaletten 593Filterung 599

00___OpenGL.book Seite 831 Montag, 12. Juli 2010 8:45 20

© des Titels »3D-Grafik mit OpenGL« (ISBN 978-3-8266-5512-8) 2010 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg Nähere Informationen unter: http://www.it-fachportal.de/5512

Page 3: 3D-Grafi k mit OpenGL - mitp.de · PDF fileAußerdem zum Thema bei mitp: Apetri OpenGL Marius Apetri 3D-Grafi k mit OpenGL Das umfassende Praxis-Handbuch Aus dem Inhalt: • Grundlagen

Stichwortverzeichnis

832

Histogramm Siehe HistogrammSkalierung 591

BildschirmLöschvorgang 51Standard-Koordinatensystem 36Verhältnis zwischen Breite und Höhe 93verzerrte Darstellung 93virtuelle Repräsentation im

Dreidimensionalen 133Bildschirmkoordinate

zweidimensionale 280Billboard Siehe SpiegelähnlichkeitBindungsvorgang

GLSL 510binomische Formel, erweiterte 783Bitmap Siehe SchwarzweißbildBlending Siehe FarbmischungBlinn-Optimierung 541Bogenmaß 779Buch-CD 795

CCD-Inhalt 795Chaosspiel

im Dreidimensionalen 192, 203im Zweidimensionalen 46

charset 567Clip Coordinates Siehe Vierdimensionale homogene

WürfelkoordinatenClipping Siehe Anpassung an das Sichtfeldcolor

ohne Alphawert 52Color Map Siehe Farbbildcolumns() 331Compiler

Microsoft Visual C++ 6.0 798Microsoft Visual Studio 799

Computerbildschirm Siehe BildschirmConstant Color Siehe Konstante FarbeCPU Siehe Hauptprozessorcross() 474

DDarstellungsart 489Darstellungsfenster

Definition 383Form des Sichtbereiches 391Hintergrundfarbe 387praktischer Einsatz 385

Darstellungskamera 335, 361, 364Darstellungsliste 435

Einschränkungen 440interner Aufbau 437Konstruktion 438praktischer Einsatz 439

Darstellungsmodus 420Darstellungsvorschrift

Definition 230Initialisierung 231praktischer Einsatz 237

Datentyp 31, 33Definition

abgewandtes Polygon 252Anpassung an das Sichtfeld 278beliebige Bewegungen 161Bézierkurven 112, 114Bild 553Bildpunkt 36Darstellungsfenster 383Doppelspeicher-Algorithmus 179dreidimensionales Sichtfeld,

Parallelprojektion 283dreidimensionales Sichtfeld,

Zentralprojektion 142Ebene 753, 758, 762Eindeutigkeitsbedingung von Funktionen 767Einheitenlänge im Dreidimensionalen 144Einheitenlänge im Zweidimensionalen 90elementare Bewegungen 154Erkennung abgewandter Vorderseiten 252exponentieller Nebeleffekt 643Farbe 36Farbpalette 476Fensterskalierung 384Filterkern 599Fragment 501Funktionsbegriff, anschaulich 95Funktionsbegriff, mathematisch

korrekt 764, 766Gerade 751Grundfarbe 630Hintereinanderausführung von

Funktionen 162, 765Histogramm 604Interpolation 260kartesisches Produkt 764Kavalierperspektive 293Komplementärfarbe 640konstante Farbe 635Kosinusfunktion 771, 774Kreuzprodukt 224Länge eines Vektors 747, 757linearer Nebeleffekt 641Linearität, abstrakt 150Linearität, anschaulich 148Linie 81lokale Ausrichtung 308Matrix 151Menge 741Mengendifferenz 743Mengenelement 741Mengenschnitt 742Mengenvereinugung 742Militärperspektive 289Mischvorschrift 632Orthogonalität 757Parallelprojektion 284Pixel 501Polyeder 245Punkt 744Quellfarbe 630Relation 765

00___OpenGL.book Seite 832 Montag, 12. Juli 2010 8:45 20

© des Titels »3D-Grafik mit OpenGL« (ISBN 978-3-8266-5512-8) 2010 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg Nähere Informationen unter: http://www.it-fachportal.de/5512

Page 4: 3D-Grafi k mit OpenGL - mitp.de · PDF fileAußerdem zum Thema bei mitp: Apetri OpenGL Marius Apetri 3D-Grafi k mit OpenGL Das umfassende Praxis-Handbuch Aus dem Inhalt: • Grundlagen

Stichwortverzeichnis

833

Scherung 291Sinusfläche 444Sinusfunktion 771, 774Skalarmultiplikation 749Skalarprodukt 755Spiegelähnlichkeit 708Tangensfunktion 773Teilmenge 743Texturkoordinaten 671Texturparkettierung 685Vektor 747Vektoraddition 750Verhältnisgleichung 94von Animationen 179Zeichensatz 566Zentralprojektion 134Z-Speicher-Algorithmus 257zweidimensionales Sichtfeld 90

Destination Color Siehe GrundfarbeDichte des Nebels 643Diffuse Reflexion 539Dimetrische Perspektive 287Division

perspektivische 276Doppelspeicher-Algorithmus

Besonderheiten 183Definition 179praktischer Einsatz 182

dot() 475GLSL 504

Double Buffering Siehe Doppelspeicher-Algorith-mus

DreidimensionaleStandardkoordinaten 333Weltkoordinaten 280, 333

EEbene

anschauliches Modell 753Definition 753, 758, 762Fußpunkt 753, 758Normalenform 758Parameterform 762Punktrichtungsgleichung 753

Eigene AchseDefinition, einfach 188erweiterte Definition 329

Eigenlichtabgabe 539Einheit

quadratische Siehe Quadratische EinheitEinheitenlänge

im Dreidimensionalen 144im Zweidimensionalen 91

Einheitsmatrix 166Einschränkung des Sichtfeldes

algebraischer Ansatz 393geometrischer Ansatz 399

Einzelauswahl 432Elementare Bewegung 154

Rotation, Herleitung 776Rotation, x-Achse 157

Rotation, y-Achse 157Rotation, z-Achse 158Skalierung, beliebige 160Skalierung, gleichmäßige 158Verschiebung 154

Elementarmatriz Siehe Elementare BewegungEmissive Color Siehe EigenlichtabgabeErkennung abgewandter Vorderseiten 252erweiterte binomische Formel 783Euklidisches Skalarprodukt Siehe Standard-Skalar-

produktEvaluator Siehe Hardwareinterner Auswertungsme-

chanismusexp1() 643exp2() 643Exponentieller Nebeleffekt 643Extension 34Eye Coordinates Siehe Ausrichtungsabhängige Koor-

dinaten

FFarbbild 553Farbe des Nebels 642Farbhistogramm 606Farbkanal 615, 618Farbkomplement 640Farbmatrix

Generierung von Farbkanälen 619Grundidee 613Intervallabbildungen 620Umwandlung von rgb-Farben in

Graustufen 615Veränderung der Helligkeit 614Vertauschung von Farbkanälen 618

Farbmischung 629Grundfarbe 630Grundgleichung, einfache 630Grundgleichung, erweiterte 638Grundidee 629konstante Farbe 635Mischfarbe Siehe MischfarbeMischverhältnis 630Mischvorschrift 632praktische Durchführung 630Quellfarbe 630Transparenzbild 636Transparenzgrad 633

FarbpaletteAnwendung auf Bilder 593, 597benutzerdefinierte 533Definition 476

Farbspektrum 611Farbtiefe 35Farbverlauf 629Fehlerfassung

uniform-Variable 527Fehlermeldung

GLSL 511Fehlersignatur

Definition 75der Utility Library 79Zusatzinformationen 79

00___OpenGL.book Seite 833 Montag, 12. Juli 2010 8:45 20

© des Titels »3D-Grafik mit OpenGL« (ISBN 978-3-8266-5512-8) 2010 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg Nähere Informationen unter: http://www.it-fachportal.de/5512

Page 5: 3D-Grafi k mit OpenGL - mitp.de · PDF fileAußerdem zum Thema bei mitp: Apetri OpenGL Marius Apetri 3D-Grafi k mit OpenGL Das umfassende Praxis-Handbuch Aus dem Inhalt: • Grundlagen

Stichwortverzeichnis

834

Fenstermatrix 384Fensterskalierung 282, 383

Definition 384Matrix 384

FilterkernDefinition 599praktischer Einsatz 601

Filterungvon Bildern 599

Flache Objektkopie 562Flache Polygonschattierung 471, 475Flat Shading Siehe Flache PolygonschattierungFluchtpunktperspektive 289Fragment

Definition 501Fragmentprozessor 501Fragmentschattierung 528Fragment-Unterprogramm, einfaches 505ftransform()

GLSL 505Function Evaluator Siehe Hardwareinterner Auswer-

tungsmechanismusFunktion

Begriff 764, 766Definition 764, 766Definitionsbereich 766Eindeutigkeitsbedingung 95, 103, 767Graph 96Hintereinanderausführung 162, 765lineare 148, 150, 153parallel_project() 284shift_project() 275shift() 274von R nach R 94von R nach R2 100von R3 nach R 148von Rn nach Rm 150

Funktionen, trigonometrische 771Fußpunkt

einer Ebene 753, 758einer Gerade 751

GGegenstand

Ähnlichkeit 159Ausrichtung Siehe Lokale Ausrichtungausrichtungsabhängige Koordinaten 333dreidimensionale Standardkoordinaten 333dreidimensionale Weltkoordinaten 280, 333dreidimensionale Würfelkoordinaten 280eigene Achsen, einfache Definition 188eigene Achsen, erweiterte Definition 329hardwarebeschleunigte Auswahl 417hierarchisch angeordnete Komponenten 351,

371, 426komplexer 195, 351, 371lokale Ausrichtung 329Mittelpunkt 184Punktwolken 203räumliche Position 184rekursiv definierter 371

vierdimensionale homogene Würfelkoor-dinaten 280

zweidimensionale Bildschirmkoordinaten 280Geometrischer Verarbeitungsprozess 271, 280Gepufferte Ausgabe 46Gerade

Definition 751, 769Fußpunkt 751Normalenform 769Parameterform 769Punktrichtungsgleichung 751, 769

Geradengleichungdreidimensionale 751praktische Anwendung 134zweidimensionale 768, 770

get_color() 503get_position() 478GL_MODULATE 700gl_MultiTexCoord* 734gl_MultiTexCoord0 725gl_Normal

GLSL 504gl_Position

GLSL 505glActiveTexture() 729glAlphaFunc() 713Glanzfaktor 540glAttachShader() 509Glättung

von Linien 87von Polygonen 218von Punkten 58

glBegin() 40glBindTexture() 676GLbitfield 33glBlendColor() 635glBlendFunc() 632GLboolean 33GLbyte 32glCallList() 438GLchar 33GLclampd 33GLclampf 33glClear 51glClearDepth() 266glColor3*() 30glColor4*() 631glColorTable() 594glCompileShader() 508glConvolutionFilter2D() 600glConvolutionParameteri() 601glCreateProgram() 508glCreateShader() 506glCullFace() 252glDepthFunc() 267glDepthRange() 265glDisable() 58GLdouble 32glDrawPixels() 556glEdgeFlag*() 228glEnable() 58

00___OpenGL.book Seite 834 Montag, 12. Juli 2010 8:45 20

© des Titels »3D-Grafik mit OpenGL« (ISBN 978-3-8266-5512-8) 2010 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg Nähere Informationen unter: http://www.it-fachportal.de/5512

Page 6: 3D-Grafi k mit OpenGL - mitp.de · PDF fileAußerdem zum Thema bei mitp: Apetri OpenGL Marius Apetri 3D-Grafi k mit OpenGL Das umfassende Praxis-Handbuch Aus dem Inhalt: • Grundlagen

Stichwortverzeichnis

835

glEnd() 40glEndList() 438GLenum 33glEvalCoord1*() 118glEvalMesh1() 125glEvalPoint1() 124glFinish() 50GLfloat 32glFlush() 48glFog*() 641glFragColor

GLSL 505glFrontFace() 222glFrustum()

Deklaration 143praktischer Einsatz 401

glGenLists() 438glGenTextures() 675glGet*v() 71glGetError() 76glGetHistogram() 607glGetMap*() 122glGetProgramInfoLog() 516glGetProgramiv() 515glGetShaderInfoLog() 513glGetShaderiv() 512glGetString() 34glGetUniformLocation() 524GLHandleARB Siehe GLuintglHint() 60glHistogram() 606glInitNames() 421GLint 32glIsEnabled() 71glLightfv() 548glLightModelfv() 549glLineWidth() 85glLinkProgram() 510glLoadIdentity() 348glLoadMatrix() 337glLoadName() 421glLoadTransponseMatrix*() 616glMapGrid1*() 122glMaterialfv() 546glMatrixMode() 339

Konvention 339glMultiTexCoord2*() 732glMultMatrix() 346glMultTransponseMatrix*() 616glNewList() 438glNormal*() 521Globale Eigenschaften

Standard-Beleuchtungsmodell 549Globaler Zustand

Abfrage 71Begriff 71Sicherung 73

glOrtho() 285glPixelZoom() 592glPointSize() 57glPolygonMode() 219

glPopAttrib() 74glPopMatrix() 352glPopName() 421glPushAttrib() 74glPushMatrix() 352glPushName() 421glRasterPos*() 555glReadPixels() 603glRect*() 389glRenderMode() 420glRotate*() 348glScale*() 348glSelectBuffer() 419glShadeModel() 490glShaderSource() 507GLshort 32GLsizei 33GLSL-Komponente

Beschreibung 499Bindungsvorgang 510Datentypen 501dot() 504Fehlermeldungen 511Fragment, Definition 501Fragmentprozessor 501ftransform() 505gl_FragColor 505gl_Normal 504gl_Position 505Hauptprogramm, C++ 518Kompiliervorgang 508length() 504main() 504Pixel, Definition 501praktischer Einsatz 518Programmiersprache 501Statusbericht 517uniform 522, 527Unterprogramm 498Unterprogramm, einfaches Fragment- 505Unterprogramm, einfaches Vertex 530Unterprogramm, Erstellung 505Unterprogramm, Installation 519Unterprogramm, Kennung 510, 518Unterprogramm, Wertübermittlung 522varying 505vec*-Datentypen 502Vertexprozessor 498

glTexCoord2*() 679glTexEnv*() 675glTexImage2D() 676glTexParameter*() 679glTranslate*() 348GLU Siehe OpenGL Utility LibraryGLubyte 32gluErrorString() 79GLuint 32gluLookAt() 365gluNewTess() 230glUniform*() 525gluOrtho2D() 91

00___OpenGL.book Seite 835 Montag, 12. Juli 2010 8:45 20

© des Titels »3D-Grafik mit OpenGL« (ISBN 978-3-8266-5512-8) 2010 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg Nähere Informationen unter: http://www.it-fachportal.de/5512

Page 7: 3D-Grafi k mit OpenGL - mitp.de · PDF fileAußerdem zum Thema bei mitp: Apetri OpenGL Marius Apetri 3D-Grafi k mit OpenGL Das umfassende Praxis-Handbuch Aus dem Inhalt: • Grundlagen

Stichwortverzeichnis

836

gluPerspective() 141gluPickMatrix() 396gluProject() 494glUseProgram() 519GLushort 32GLUT 821gluTessBegin*() 236gluTessCallback() 231, 236GLUtesselator 230gluTessEnd*() 236gluUnProject() 400glValidateProgram() 517glVertex2*() 31glVertex2*v() 54glVertex3*() 139glVertex4*() 277glViewport() 385glWindowPos*() 560goldener Schnitt 770, 790GPU Siehe GrafikprozessorGrafikhardware Siehe GrafikkarteGrafikkarte

Doppelspeicher 181Fragmentprozessor 501Hintergrundspeicher 181Position eines Pixels 36schematischer Aufbau 45Vertexprozessor 498Videospeicher 35Zusammenarbeit mit der CPU 28

Grafikprozessor 28nicht programmierbarer 28, 45programmierbarer Vertexprozessor 498

Graph einer Funktion 96Graustufenbild 553, 555Grundbewegung Siehe Elementare BewegungGrundfarbe 630Grundgleichung Siehe BasisgleichungGruppe von Funktionen 30Gültigkeitsbereich einer Ebene 278

HHalfway Vector Siehe Winkelhalbierender VektorHandle 806hardware_interface 803Hardwareinterner Auswertungsmechanismus 115,

121Hauptmatrix 168Hauptprogramm

C++ 518Hauptprozessor 27Helligkeit 604Helligkeitshistogramm 606Helligkeitsintervall 611Hierarchie

von Gegenständen 351, 371, 427Histogramm

Auswertung 604benutzerdefinierte Anpassung 612Definition 604Farbhistogramm 606

Helligkeitshistogramm 606praktische Darstellung 608

Höhenfeld 647Homogene Koordinaten

Definition, einfach 156Definition, erweitert 277

Homogenität 150, 153, 755Horizontale Auflösung 38

IIkosaeder 770, 786Imaging Subset Siehe BildbearbeitungInhalt der Buch-CD 795Innerer Anweisungsblock 250input_interface 300InputControler 817Installation

GLSL-Unterprogramm 519interpolate()

C++ 477GLSL 503

Interpolation 260perspektivisch korrekte 674

Isometrische Perspektive 288

Kkartesisches Produkt 764Kavalierperspektive 293Kennung eines Gegenstandes

Datenstruktur 425, 428einteilige 425Grundidee 418Informationen 424mehrteilige 427, 429praktische Festlegung 421z-Komponenten 432

Kommutativitätder Vektoraddition 760

Kompilierung der Quelltexte Siehe Übersetzung der Quelltexte

KompiliervorgangGLSL 508

Komplementärfarbe 640Konsole Siehe ProgrammkonsoleKonstante Farbe 635Kontrast 604Kontrollpunkt von Bézierkurven 111Konvention

glMatrixMode() 339Koordinate

ausrichtungsabhängige 333homogene 156, 277

KoordinatenfunktionDefinition 101einer Funktion von R nach R2 101einer Funktion von R3 nach R3 151einer Funktion von Rn nach Rm 150

Koordinatensystembeliebiges benutzerdefiniertes 441benutzerdefiniert zweidimensional 90

00___OpenGL.book Seite 836 Montag, 12. Juli 2010 8:45 20

© des Titels »3D-Grafik mit OpenGL« (ISBN 978-3-8266-5512-8) 2010 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg Nähere Informationen unter: http://www.it-fachportal.de/5512

Page 8: 3D-Grafi k mit OpenGL - mitp.de · PDF fileAußerdem zum Thema bei mitp: Apetri OpenGL Marius Apetri 3D-Grafi k mit OpenGL Das umfassende Praxis-Handbuch Aus dem Inhalt: • Grundlagen

Stichwortverzeichnis

837

des Bildschirms 36einer Textur 671eines Bildes 565, 670

Koordinetensystemlinksshändig 745rechtshändig 744

Kopierkonstruktor 564Alternative 583

Körperplatonischer 255, 269

KosinusfunktionDefinition 771, 774

Kreuzprodukt 224

LLandschaft

Definition 303Höhenfeld 647quadratische Einheit 305

Landschaftseinheit Siehe Landschaft, quadratische Einheit

Länge eines Vektors 747, 756Längenfunktion 757length()

GLSL 504Lesezugriff 73Licht

paralleles 472Lichtquelle 547Linearer Nebeleffekt 640Linearitätsbegriff

Additivitätsbedingung 150, 153Definition, abstrakt 150, 153Definition, anschaulich 148Homogenitätsbedingung 150, 153

Linieabgeschlossene Linienzüge 83benutzerdefinierte Breite 85Bresenham-Algorithmus 81Definition 81Glättung 87offene Linienzüge 83praktische Darstellung 83

Linienzugabgeschlossener 83offener 83

Linking Process Siehe Bindungsvorgang, GLSLLinks verlaufende Polygonseite 215Literaturempfehlungen 829load_file() 505load_hardware() 338load_program() 510local_system 317Lokale Ausrichtung

benutzerdefinierte Steuerung 317Definition 308des Betrachters 308einer Darstellungskamera 335, 364eines Gegenstandes 329eines Polyeders 330implizite Verwaltung 357

Sichtmatrix 334Spaltenmatrix 323Veränderung mit einer Matrix 310Verwaltung 317Zeilenmatrix 323

MMagnification Artefact Siehe Vergrößerungsartefaktmain()

GLSL 504Materialeigenschaft

Eigenlichtabgabe 539Glanzfaktor 540Grundidee 539praktische Festlegung 546Reflexion, diffuse 539Reflexion, spiegelnde 539Umgebungslicht 539

Matrix 169Anwendung auf eine lokale Ausrichtung 310Anwendung auf einen Polyeder 247Anwendung auf einen Punkt 152Anwendung, anschaulich 167Anwendungsregel 167Aufbau 151Beschreibung 147einer linearen Funktion 151Einheitsmatrix 166Einschränkung des Sichtbereiches 396Farbmatrix Siehe FarbmatrixFensterskalierung 384Herleitung 151Hintereinanderausführung 164Multiplikationsregel Zeile * Spalte 152, 164nicht-kommutative Multiplikation 165Parallelprojektion 285Rotation, beliebige Achse 313Rotation, x-Achse 157Rotation, y-Achse 158Rotation, z-Achse 158Scherung 291Skalierung, beliebige 160Skalierung, gleichmäßige 178spaltenweise Anordnung der Komponenten 169Stapelverarbeitung 352Verschiebung 156Verwaltung 169Zeitersparnis 165Zentralprojektion 276

matrix::columns() 331matrix::load_hardware() 338matrix::multiply_hardware() 347matrix::rows() 324Matrixstapel 352Mehrfachauswahl 417Mehrfachfilterung 603Mehrstufige Visualisierung 386Menge

Definition 741Differenz 743Element 741

00___OpenGL.book Seite 837 Montag, 12. Juli 2010 8:45 20

© des Titels »3D-Grafik mit OpenGL« (ISBN 978-3-8266-5512-8) 2010 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg Nähere Informationen unter: http://www.it-fachportal.de/5512

Page 9: 3D-Grafi k mit OpenGL - mitp.de · PDF fileAußerdem zum Thema bei mitp: Apetri OpenGL Marius Apetri 3D-Grafi k mit OpenGL Das umfassende Praxis-Handbuch Aus dem Inhalt: • Grundlagen

Stichwortverzeichnis

838

kartesisches Produkt 764Schnitt 742Teilmenge 743Vereinigung 742

Microsoft Visual C++ 6.0 798Microsoft Visual Studio 799Militärperspektive 289Minification Artefact Siehe VerkleinerungsartefaktMischfarbe 630

Definition 630Mischregel Siehe MischvorschriftMischverhältnis 630Mischvorschrift 632Mittelpunkt eines Gegenstandes 184Modelsicht-Matrix Siehe Sicht- und Ausrichtungs-

matrixModelview Matrix Siehe Sicht- und Ausrichtungsma-

trixmove() 317Multipass Rendering Siehe Mehrstufige Visualisie-

rungMultiplikation

Matrix * lokale Ausrichtung 310Matrix * Matrix 164Matrix * Polyeder 247Matrix * Punkt 152paarweise 699

Multiplikationsoperatorüberladener 162

multiply_hardware() 347Multitextureffekt 729

NNamenstapel 421Navigation

simulierte Bewegung des Betrachters 303tatsächlich erfolgende Bewegung des Betrach-

ters 323Nebel

Anfang und Ende 641Dichte 643exponentieller 643Farbe 642globaler 640, 644linearer 640quaderförmig begrenzter 660sphärenförmig begrenzter 650

Nebelfunktionexponentielle, exp1() 643exponentielle, exp2() 643lineare 641

Normalenformeiner Ebene 758einer Gerade 769

Normalenvektoreines Polygons 470, 472eines Punktes 481

Normalized Device Coordinates Siehe Dreidimensio-nale Würfelkoordinaten

Nullvektor 749, 751, 760, 787

OObject Coordinates Siehe Dreidimensionale Stan-

dardkoordinatenObjektkopie

flache 562tiefe 563

Offener Linienzug 83Öffnungswinkel Siehe Sichtwinkelopen_window() 804OpenGL Utility Library 79OpenGL-Standard

Abfrage globaler Zustände 71Alphatest 712Architecture Review Board 35Arrayform von Funktionen 52Attributgruppen 73Attributstapel 73Auswahl von Gegenständen Siehe Auswahl von

GegenständenAuswahlmodus 420Benennung von Funktionen 30Beschreibung 30Bildausgabe 556Bildbearbeitung Siehe BildbearbeitungDarstellung von Bézierkurven 115, 122Darstellung von Linien 83Darstellung von Polygonen 217Darstellung von Rechtecken 389Darstellungslisten 435Darstellungsmodus 420Datentypen 31, 33direkte Definition von Matrizen 337elementare Bewegungen 348Farbmatrix Siehe FarbmatrixFehlersignaturen 75, 79Funktionengruppen 30geometrischer Verarbeitungsprozess 271, 280gepufferte Ausgabe 46globale Zustände, Begriff 71GLSL Siehe GLSL-Komponentehardwareinterner Auswertungs-

mechanismus 115, 121Imaging Subset Siehe BildbearbeitungMatrixstapel 352Matrizenverarbeitungssystem 345Merkmale 30Namenstapel 421Projektionsmatrix 276, 285, 339, 398, 401Reihenfolge der Matrizenmultiplikation 345Rotation 348schrittweise Definition von Matrizen 345, 346Shading Language Siehe GLSL-KomponenteSicherung globaler Zustände 73Sicherung von Matrizen 352Sicht- und Ausrichtungsmatrix 329Skalierung 348Stapelverarbeitungssystem 353Texturmatrix 690unterschiedliche Implementierungen 30Utility Library 79

00___OpenGL.book Seite 838 Montag, 12. Juli 2010 8:45 20

© des Titels »3D-Grafik mit OpenGL« (ISBN 978-3-8266-5512-8) 2010 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg Nähere Informationen unter: http://www.it-fachportal.de/5512

Page 10: 3D-Grafi k mit OpenGL - mitp.de · PDF fileAußerdem zum Thema bei mitp: Apetri OpenGL Marius Apetri 3D-Grafi k mit OpenGL Das umfassende Praxis-Handbuch Aus dem Inhalt: • Grundlagen

Stichwortverzeichnis

839

Verschiebung 348Weiterentwicklung 33Wiederherstellung von Matrizen 352

Orthogonalität 757, 769Ortsvektor eines Punktes 759

PPaarweise Multiplikation 699parallel_project() 284Parallele Verarbeitung 28Paralleles Licht 472Parallelprojektion

dimetrische Perspektive 287Grundgleichungen 284Grundidee 283isometrische Perspektive 288Kavalierperspektive 293Militärperspektive 289praktischer Einsatz 286trimetrische Perspektive 287

Parameterformeiner Ebene 762einer Gerade 769

Partikel 717Partikelsystem 709, 720Perspektive

dimetrische 287isometrische 288Kavalier 293mehrere Fluchtpunkte 289Militär 289trimetrische 287

Perspektivische Division 276Phong-Beleuchtungsmodell 540Pick Matrix 396picture 554Pixel

Definition 501Platonischer Körper 255, 269point 682Polyeder

Ausrichtungsmatrix 331Begriff 245Dateiformat .TG1 248lokale Ausrichtung 330perspektivisch korrekte Darstellung 257platonische Körper 255, 269Verwaltung 247

Polygonabgewandtes 252Anordnung der Punkte 213Darstellung mit GLU 230Drahtgitter 220, 225gefülltes 215, 217, 220Glättung 218konkav 214konvex 214Normalenvektor 470, 473, 475Polygonzüge 305praktische Darstellung 217Punktwolke 220

Rückseite 222spiegelähnliches 708Umriss 225Umrisskennzeichner 228Verwaltung 250Vorderseite 222

polygon 250Polygon Clipping Siehe Anpassung an das SichtfeldPolygonschattierung

Basisgleichung 471Blinn-Optimierung 541Eigenlichtabgabe 539flache 471, 475Fragmentschattierung 528Glanzfaktor 540Grundidee 471Phong-Beleuchtungsmodell 540Reflexion, diffuse 539Reflexion, spiegelnde 539Sichtanpassung 488Standardmodell, globale Eigenschaften 549Standardmodell, Lichtquelle 547Standardmodell, praktischer Einsatz 542theoretische Grundlage 469Umgebungslicht 539Vertexschattierung, GLSL 498Vertexschattierung, Software 481

Polygonseiterechts bzw. links verlaufende 215

Polygonzug 305polyhedron 247Pop Siehe LesezugriffPositivität 755Präfix

gl 30glu 79

Produkt, kartesisches 764ProgramControler 811Programmfenster 805Programmierbarer Fragmentprozessor 501Programmkonsole

Befehlsinterpreter 574beliebige Befehle 577Grundidee 571

Projektion 131, 283Projektionsmatrix 339, 398, 401Projektionsmatrix, Parallelprojektion

Definition 285Funktion parallel_project() 284

Projektionsmatrix, ZentralprojektionDefinition 276Funktion project() 273Funktion shift_project() 275Funktion shift() 274Herleitung 272

Punktbenutzerdefinierte Form und Größe 57Definition 744dreidimensionaler 744Glättung 58Ortsvektor 759

00___OpenGL.book Seite 839 Montag, 12. Juli 2010 8:45 20

© des Titels »3D-Grafik mit OpenGL« (ISBN 978-3-8266-5512-8) 2010 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg Nähere Informationen unter: http://www.it-fachportal.de/5512

Page 11: 3D-Grafi k mit OpenGL - mitp.de · PDF fileAußerdem zum Thema bei mitp: Apetri OpenGL Marius Apetri 3D-Grafi k mit OpenGL Das umfassende Praxis-Handbuch Aus dem Inhalt: • Grundlagen

Stichwortverzeichnis

840

Subtraktion 747Verschiebung 747zweidimensionaler 744

Punktrichtungsgleichungeiner Ebene 753einer Gerade 751, 769

Punktwolke 203Push Siehe Schreibzugriff

QQuadratische Einheit 305Quellfarbe 630

Rrand() 39Rasterposition 555, 560Rasterung von Polygonen 215Rasterzeile 216Räumliche Position eines Gegenstandes 184Rechteck, Nummerierung 389Rechts verlaufende Polygonseite 215Reflexion

diffuse 539spiegelnde 539

Rekursiv definierter Gegenstand 371Relation

Definition 765Definitionsbereich 766Hintereinanderausführung 765

rgb-Farbmodell 629Richtungsvektor 751Rotation

beliebige Achse, Herleitung 310erweiterte 188Herleitung 776x-Achse 157y-Achse 157z-Achse 158zusammengesetzte 156

Rotationsmatrixbeliebige Achse 313x-Achse 157y-Achse 158z-Achse 158

rows() 324Rückseite von Polygonen 222

Ssampler2D 726Satz des Pythagoras

für beliebige Dreiecke 782für rechtwinklige Dreiecke 748

Schaltung 28Schattenprojektion 705Scherung

Definition 291Implementierung 291

Schnitt, goldener 770, 790Schreibzugriff 73Schwarzweißbild 553

screen_interface 803screen_interface.open_window() 804Seamless Siehe VerträglichkeitShear Siehe Scherungshell 574shift_project() 275shift() 274Sicht- und Ausrichtungsmatrix 329Sichtbereich Siehe SichtfeldSichtfeld

dreidimensionales, beliebiges 142dreidimensionales, Parallelprojektion 283dreidimensionales, Sichtwinkel 135dreidimensionales, symmetrisches 142dreidimensionales, Zentralprojektion 132Einschränkung, algebraischer Ansatz 393Einschränkung, geometrischer Ansatz 399zweidimensionales 90

Sichtmatrix 334Sichtwinkel 135Signatur von Fehlermeldungen 75Sinusfläche

beliebig ausgerichtete 445Definition 444verallgemeinerte 451

SinusfunktionDefinition 771, 774

SkalarmultiplikationDefinition 748Eigenschaften 761

SkalarproduktAdditivität 755Definition 755Eigenschaften 755Euklidisches Siehe Standard-SkalarproduktHomogenität 755Positivität 755Standardformel 756, 782Symmetrie 755

Skalierungautomatisch auftretende Verschiebung 198beliebige 160Eigenschaften 159gleichmäßige 158, 178von Bildern 591

Skalierungsbedingte Verschiebung 198Sonnensystem 353Source Color Siehe QuellfarbeSpaltenmatrix 323Spaltenweise Anordnung von

Matrizenkomponenten 169Specular Exponent Siehe GlanzfaktorSpecular Reflection Siehe Spiegelnde ReflexionSpektrum 611Spiegelähnlichkeit 708Spiegelnde Reflexion 539Spiegelungsartefakt 685Sprite Siehe Spiegelähnlichkeitsrand() 56Stack Siehe StapelStandardkoordinate

dreidimensionale 333

00___OpenGL.book Seite 840 Montag, 12. Juli 2010 8:45 20

© des Titels »3D-Grafik mit OpenGL« (ISBN 978-3-8266-5512-8) 2010 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg Nähere Informationen unter: http://www.it-fachportal.de/5512

Page 12: 3D-Grafi k mit OpenGL - mitp.de · PDF fileAußerdem zum Thema bei mitp: Apetri OpenGL Marius Apetri 3D-Grafi k mit OpenGL Das umfassende Praxis-Handbuch Aus dem Inhalt: • Grundlagen

Stichwortverzeichnis

841

Standard-SkalarproduktDefinition 782Eigenschaften 756Herleitung 780

StapelAttributstapel 73Begriff 73Einsatzvorschrift 73Lesezugriff 73Matrixstapel 352Namenstapel 421Schreibzugriff 73Speicherkapazität 353

StatusberichtGLSL 517

SuffixARB 35b 32d 32EXT 34f 32i 32s 32ub 32ui 32us 32v 52

Summenzeichen 785Symmetrie 755

TTangensfunktion

Definition 773Tastaturabfrage

direkte 299ereignisbasierende 299praktische Durchführung 300, 301

Teilmenge 743Tesselator Siehe DarstellungsvorschriftTextausgabe 570Textur

Bewegung 690Einschränkungen 690globale Eigenschaften 674Grenzbereich 688Grenzfarbe 688Initialisierung 680Kennzahl 675Koordinatensystem 671lokale Eigenschaften 675, 725Parkettierung 685Rotation 693Texturkoordinaten 671Unschärfefilter 678Verschiebung 691Verträglichkeit 685Zweierpotenzen 690

Texture Unit Siehe Textureinheittexture2D() 726Textureinheit 730

TexturfärbungGrundidee 699paarweise Multiplikation 699praktischer Einsatz 701

TexturkoordinateDefinition 671direkte Interpolation 673perspektivische Interpolation 671Polygoneigenschaft 682Spezifikation 679Umwandlungsvorschriften 685Vertexeigenschaft 703

Texturmatrix 690, 732Texturname 675Texturparkettierung

Definition 685einfache 685GL_CLAMP 687GL_MIRRORED_REPEAT 686GL_REPEAT 685polygonübergreifende 703

TexturprojektionAktivierung 680Dateiformat .TG3 683Demonstration 680GLSL 725Initialisierung 674lineare 673Multitextureffekte 729Parkettierung 685perspektivische 671

Texturschattierung 701, 715Tiefe Objektkopie 563time() 56Transparenzbild 636Transparenzgrad 633Treppenstufeneffekt 86Triangulation 492trigonometrische Funktionen

Additionstheoreme 777Grundidee 771inverse 783

Trimetrische Perspektive 287

UÜberbelichtung 606Überlagerung von Sinusflächen 451Übersetzung der Quelltexte 795

allgemein 795C++ 798, 799Java 800JCreator LE 800Microsoft Visual C++ 6.0 798Microsoft Visual Studio 799

Umgebungslicht 539uniform

GLSL 522, 527Unschärfefilter 601Unterprogramm

GLSL 498Utility Library 79

00___OpenGL.book Seite 841 Montag, 12. Juli 2010 8:45 20

© des Titels »3D-Grafik mit OpenGL« (ISBN 978-3-8266-5512-8) 2010 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg Nähere Informationen unter: http://www.it-fachportal.de/5512

Page 13: 3D-Grafi k mit OpenGL - mitp.de · PDF fileAußerdem zum Thema bei mitp: Apetri OpenGL Marius Apetri 3D-Grafi k mit OpenGL Das umfassende Praxis-Handbuch Aus dem Inhalt: • Grundlagen

Stichwortverzeichnis

842

Vvarying

GLSL 505vec*, GLSL-Datentypen 502vector 315Vektor

Addition 750, 760Betrag 747, 756Definition 747Länge 747, 756Nullvektor 749, 751, 760, 787Orthogonalität 757, 769Ortsvektor 759Richtungsvektor 751Schreibweise 747Skalarmultiplikation 748, 760Skalarprodukt 755

Vektor, winkelhalbierender 541Vektoraddition

Assoziativität 760Definition 750Eigenschaften 760inverses Element 760Kommutativität 760neutrales Element 760

Verallgemeinerte Sinusfläche 451Verarbeitungsprozess

geometrischer 271, 280Vergrößerungsartefakt 678Verhältnis

Begriff 93Verhältnisgleichung 94Verkleinerungsartefakt 678Verschiebung

Definition 154skalierungsbedingte 198

Verschiebungsmatrix 156vertex

im Dreidimensionalen 140im Zweidimensionalen 52

Vertex Shading Siehe VertexschattierungVertexprozessor 498Vertexschattierung

GLSL 498Software 481

Vertex-Unterprogramm, einfaches 530Vertikale Auflösung 38Verträglichkeit von Texturen 685Verzerrungsartefakt 673Videospeicher 35Vierdimensionale homogene Würfelkoordinaten 280Viewport Matrix Siehe FenstermatrixViewport Siehe DarstellungsfensterViewport Transformation Siehe FensterskalierungVorderseite von Polygonen 222

WWarping Effect Siehe VerzerrungsartefaktWasseroberfläche

Drahtgittermodell 444Weiterführende Literatur 829Weltkoordinate

dreidimensionale 280, 333Wertübermittlung

GLSL-Unterprogramm 522Wiederholungsanweisung 47Window Coordinates Siehe Zweidimensionale Bild-

schirmkoordinatenWindow Handle Siehe HandleWinkel

Bogenmaß 779Grad 779

Winkelhalbierender Vektor 541Würfelkoordinaten

dreidimensionale 280vierdimensionale homogene 280

Xx_res 803x_res Siehe Horizontale Auflösung

Yy_res 803y_res Siehe Vertikale Auflösung

ZZ-Buffer Algorithm Siehe Z-Speicher-AlgorithmusZeichensatz 566Zeilenmatrix 323Zentralprojektion

Fluchtpunktperspektive 289Grundgleichungen 134Grundidee 131Herleitung 133praktischer Einsatz 140

Z-Speicher-Algorithmusbenutzerdefinierte Einstellungen 265Beschreibung 257Darstellung von Linien 261Erkennung abgewandter Polygone 263Interpolation von Kehrwerten 260mathematische Grundlagen 259praktischer Einsatz 261

Zufallszahlbeliebige 39Initialisierung 56innerhalb benutzerdefinierter Grenzen 44, 63

Zugvon Linien 83

Zustandglobaler 71, 73

Zweidimensionale Bildschirmkoordinaten 280Zweierpotenz 690

00___OpenGL.book Seite 842 Montag, 12. Juli 2010 8:45 20

© des Titels »3D-Grafik mit OpenGL« (ISBN 978-3-8266-5512-8) 2010 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg Nähere Informationen unter: http://www.it-fachportal.de/5512