Skip to main content

2022 | Buch

Grundlagen der Computergrafik

Eine Einführung mit OpenGL und Java

insite
SUCHEN

Über dieses Buch

Computergrafik umfasst die Erzeugung und Darstellung von einfachen Grafikelementen, Bildern und Animationen bis hin zu interaktiven, virtuellen Realitäten (Virtual Reality). Die Umsetzung von Anwendungen hierfür profitiert von einem soliden Verständnis der entsprechenden Grundlagen. Das vorliegende Buch vermittelt genau das – verständlich, praktisch und nachvollziehbar. Für die vierte Auflage wurde das Werk grundlegend überarbeitet und erweitert, um in die moderne Grafikprogrammierung einzuführen. Dazu gehört unter anderem die Entwicklung von Programmen, die direkt auf der Grafikkarte ausgeführt und „Shader“ genannt werden. Anhand von Beispielen in der beliebten Programmiersprache Java für die weit verbreitete Open Graphics Library (OpenGL) sind die wesentlichen Konzepte der Grafikprogrammierung erläutert. Auch für die vierte Auflage ist wieder ein Online-Service mit Zusatzmaterialien verfügbar.

Inhaltsverzeichnis

Frontmatter
Kapitel 1. Einführung
Zusammenfassung
Die Computergrafik beschäftigt sich mit der Erzeugung von Bildern mittels eines Computers. Häufig wird dieser Vorgang als grafische Datenverarbeitung bezeichnet. Ein Bild wird in diesem Buch in einem abstrakten Sinn verstanden. Ein Bild kann eine realistische Szene aus der Alltagswelt darstellen, Grafiken wie Histogramme oder Tortendiagramme wiedergeben oder die grafische Benutzungsoberfläche einer Software sein. In diesem Kapitel sind exemplarisch einige Anwendungsfelder der Computergrafik dargestellt, um einen Eindruck über das Aufgabenspektrum dieser Disziplin zu vermitteln. Hieran schließen sich Erläuterungen zu den Hauptschritten in der Computergrafik und eine Übersicht über die Funktionsweise einer Rendering-Pipeline anhand der Grafikpipeline der Open Graphics Library (OpenGL) an. Diese prinzipielle Funktionsweise lässt sich auf andere Grafiksysteme übertragen.
Karsten Lehn, Merijam Gotzes, Frank Klawonn
Kapitel 2. Die Open Graphics Library (OpenGL)
Zusammenfassung
Die OpenGL ist eine Grafikprogrammierschnittstelle, die sich in den letzten Jahrzehnten aufgrund ihres offenen Konzepts und ihrer Plattformunabhängigkeit sehr stark verbreitet hat. Sie wird durch die Treiber gängiger Grafikprozessoren und Grafikkarten und für die wesentlichen Betriebssysteme unterstützt. Nach einer kurzen Übersicht über existierende Programmierschnittstellen für Grafikanwendungen sind in diesem Kapitel ausführlich die Grundlagen zu der Open Graphics Library (OpenGL) erläutert. Die Funktionsweise ist so detailliert dargestellt, um ein Verständnis und die Einordnung der in den folgenden Kapiteln enthaltenden grundlegenden Konzepte der Computergrafik zu ermöglichen. Gleichzeitig kann dieses Kapitel als knappes Nachschlagewerk zur OpenGL dienen. Hierbei findet eine Beschränkung auf die OpenGL-Variante für Desktop-Betriebssysteme statt. Weiterhin enthält dieses Kapitel grundlegende Java-Programmierbeispiele für die Grafikprogrammierung mit und ohne Shader.
Karsten Lehn, Merijam Gotzes, Frank Klawonn
Kapitel 3. Geometrische Grundobjekte
Zusammenfassung
In diesem Kapitel sind geometrische Grundobjekte beschrieben, die in der Computergrafik zur Oberflächenmodellierung eingesetzt werden. Weiterhin sind die in der OpenGL verwendeten planaren Grundobjekte und deren Verwendung durch Zeichenbefehle der OpenGL erläutert. Die grafischen Primitive Punkte, Linien, Dreiecke, Polygone, Vierecke (Quads), die in der OpenGL eingesetzt werden können, sind näher betrachtet. In der OpenGL stehen grafische Primitive zur Verfügung, um Sequenzen von Grundobjekten zu zeichnen, wodurch sich Oberflächen von Objekten effizient darstellen lassen. Weiterhin existieren in der OpenGL Zeichenbefehle, wie beispielsweise das indizierte Zeichnen, Primitive-Restart und das indirekte Zeichnen, um mit möglichst wenig Befehlen, das von der Grafikanwendung unabhängige Zeichnen durch einen Grafikprozessor zu ermöglichen. Viele der in der OpenGL verwendeten Konzepte werden in ähnlicher Form auch in anderen Grafiksystemen verwendet.
Karsten Lehn, Merijam Gotzes, Frank Klawonn
Kapitel 4. Modellierung dreidimensionaler Körper
Zusammenfassung
Diese Kapitel enthält eine Übersicht über die grundlegenden Ansätze für die Modellierung dreidimensionaler Körper. Da in der Computergrafik die Modellierung der Oberflächen von Objekten von großer Bedeutung ist, ist hierauf besonders eingegangen. Häufig werden (gekrümmte) Oberflächen von Körpern durch ebene Polygone angenähert. Insbesondere Dreiecke sind hierfür besonders gut geeignet. Die Zerlegung einer gekrümmten Oberfläche in ebene Polygone kann durch die Tesselierungseinheit moderner Grafikprozessoren selbständig durch den Grafikprozessor erfolgen. Hierfür ist die Modellierung gekrümmter Oberflächen dreidimensionaler Körper durch Freiformflächen gut geeignet, deren Grundlagen in diesem Kapitel dargestellt sind. Ein besonderes Augenmerk richtet sich auf die Normalenvektoren der Oberflächen, da diese entscheidend für die Berechnung von Beleuchtungseffekten an den Oberflächen von Objekten sind.
Karsten Lehn, Merijam Gotzes, Frank Klawonn
Kapitel 5. Geometrieverarbeitung
Zusammenfassung
In diesem Kapitel werden die einzelnen Schritte der geometrischen Transformationen aufgeführt, die notwendig sind, um die Geometrie der Objekte der realen Welt auf dem Bildschirm darstellen zu können. Nachdem die Konzepte in der zweidimensionalen Ebene vorgestellt werden, erfolgt die Anwendung im dreidimensionalen Raum. Im ersten Schritt geschieht die geometrische Modellierung jedes einzelnen Objekts als Modell der darzustellenden virtuellen Welt. Diese Modellierung wird für jedes Objekt in seinem eigenen Koordinatensystem, dem Modellkoordinatensystem, durchgeführt. Danach werden alle Modelle in das Koordinatensystem der virtuellen Szene, dem Weltkoordinatensystem, überführt. Ab diesem Schritt kommt die Perspektive ins Spiel, die durch eine Blickrichtung von dem des Betrachterstandpunkt entsteht. Danach werden alle durch die Kamera nicht sichtbaren Bereiche abgeschnitten, wodurch der sogenannte sichtbare (Clipping-)Bereich entsteht. Im Anschluss erfolgt die Abbildung des Clipping-Bereichs auf das ausgebende Gerät.
Karsten Lehn, Merijam Gotzes, Frank Klawonn
Kapitel 6. Grauwert- und Farbdarstellung
Zusammenfassung
Dieses Kapitel beinhaltet Grundlagen für die Darstellung mithilfe von Grauwerten und Farben. Als ein Beispiel, wie sich Grauwerten darstellen lassen, obwohl das Ausgabegerät nur schwarze oder weiße Bildpunkte erzeugen kann, ist das Halbtonverfahren beschrieben. Weiterhin enthält dieses Kapitel eine Übersicht von Farbmodellen, die in der Computergrafik und angrenzenden Bereichen, wie in der Bildverarbeitung und beim digitalen Fernsehen, Verwendung finden. Für professionelle Anwendungen ist die Reproduzierbarkeit von Farben auf unterschiedlichen Ausgabegeräten erforderlich. Beispielsweise soll auf einem Drucker exakt dieselbe Farbe ausgegeben werden, wie sie auf dem Monitor erscheint. Hierfür können sogenannte kalibrierte Farbmodell, die auch colorimetrische Farbmodelle genannt werde, zum Einsatz kommen. Weiterhin sind die grundlegenden Farbmodelle dargestellt, die in der OpenGL genutzt werden. Darüber hinaus sind die Grundprinzipien der Farbinterpolation erläutert.
Karsten Lehn, Merijam Gotzes, Frank Klawonn
Kapitel 7. Rasterung
Zusammenfassung
Die Darstellung von Objekten in den frühen Stufen der Computergrafik-Pipeline beruht auf den Prinzipien der Vektorgrafik. Hierdurch lassen sich Objekte und Szenen von Objekten effizient und verlustfrei transformieren. Für die Darstellung auf gängigen Ausgabegeräten ist jedoch die Umwandlung dieser vektorbasierten Darstellung in eine Rastergrafik erforderlich, was als Rasterung bezeichnet wird. In diesem Kapitel befindet sich eine Gegenüberstellung der Vor- und Nachteile dieser Darstellungsarten. Weiterhin sind die grundlegenden Probleme und wichtige Lösungsansätze erläutert, die sich bei der Rasterung ergeben. Bei der Umwandlung einer Vektorgrafik in eine Rastergrafik treten in Regel unerwünschte Störungen als sogenannte Aliasing-Effekte auf, die sich durch Antialiasing-Verfahren reduzieren lassen. Dieses Kapitel enthält einen ausführlichen Abschnitt zu diesem Thema. Insbesondere ist dargestellt, welche Antialiasing-Verfahren in der OpenGL eingesetzt werden.
Karsten Lehn, Merijam Gotzes, Frank Klawonn
Kapitel 8. Visibilitätsbetrachtungen
Zusammenfassung
Für die Darstellung eines Ausschnitts einer dreidimensionalen Szene muss bestimmt werden, welche Objekte in dem darzustellenden Bereich liegen. Nur für diese Objekte muss zusätzlich zu diesen Clipping-Berechnungen das Problem der Verdeckung von Objekten oder Objektteilen durch andere Objekte der Szene gelöst werden. Dieses Kapitel gibt eine Einführung in das dreidimensionale Clipping, wodurch die gesamte Szene auf den sichtbaren, darzustellenden Raum reduziert wird. Hierbei wird das Vorgehen zuerst im zweidimensionalen Raum erläutert, das sich leicht auf den dreidimensionalen Raum erweitern lässt. Dabei werden Geradensegmente betrachtet, da sich Seiten der Polygone als solche auffassen lassen. Weiterhin wird der Begriff des Clipping-Volumens erklärt. Zudem werden Verfahren zur Bestimmung der in einer Szene sichtbaren Objekte beschrieben. Dazu gehört die Rückseitenentfernung, durch die in der Szene nicht sichtbare, auf der Rückseite liegende Polygone entfernt werden, um so die weiteren Berechnungen in der Grafik-Pipeline nur auf die Vorderseiten anwenden zu müssen. Zudem werden Techniken vorgestellt, um die sichtbaren Bereiche bei sich gegenseitig verdeckenden Objekten zu identifizieren. Diese Techniken werden in Objekt- und Bildraumverfahren unterteilt.
Karsten Lehn, Merijam Gotzes, Frank Klawonn
Kapitel 9. Beleuchtungsmodelle
Zusammenfassung
In diesem Kapitel sind die Grundlagen für die Beleuchtung in der Computergrafik dargestellt. Es werden lokale und globale Beleuchtungsmodelle voneinander unterschieden. In einer computergrafischen Szene trifft das Licht von modellierten Lichtquellen auf die Oberfläche von Objekten, wird dort reflektiert und erzeugt abhängig von den Materialeigenschaften der Objektoberflächen Beleuchtungseffekte. Als ein wichtiger Vertreter der lokalen Beleuchtungsmodelle ist das Modell nach Phong dargestellt. Weiterhin enthält dieses Kapitel Erläuterungen zu Shading-Verfahren, durch die bestimmt wird, wie die Polygone der Objektoberflächen auf Basis der Beleuchtungsberechnung eingefärbt werden. In einer dreidimensionalen Szene werden nicht nur Objekte durch Lichtquellen beleuchtet, wodurch bestimmte (lokale) Effekte auftreten. Darüber hinaus wird ein Teil des Lichts an den Objektoberflächen reflektiert, wodurch wiederum andere Objekte beleuchtet werden. Diese Wechselwirkungen lassen sich durch globale Beleuchtungsmodellen modellieren. Durch das Radiosity-Modell können globale diffuse Reflexionen modelliert werden. Ray-Tracing-Verfahren sind dazu geeignet, globale Spiegelreflexionen zu simulieren. Dieses Kapitel enthält Grundlagen zu diesen beiden Verfahren.
Karsten Lehn, Merijam Gotzes, Frank Klawonn
Kapitel 10. Texturen
Zusammenfassung
Dieses Kapitel enthält die Grundlagen für die Anwendung von Texturen auf dreidimensionale Objekte (Texture-Mapping). Texturen sind Bilder oder Grafiken, die auf die Oberfläche eines Objekts aufgebracht werden. Diese lassen sich dazu verwendet, um die Oberfläche des Objekts im Aussehen zu definieren oder zu verändern. Dabei kann sowohl die farbliche Gestaltung als auch die Geometrie des Objekts beeinflusst werden. Texturen können sowohl zweidimensional, am häufigsten in flacher rechteckiger Form, als auch dreidimensional in gekrümmter Form vorliegen. Mithilfe von Texturen lassen sich Szenen effizient fotorealistisch mit einem sehr hohen Detaillierungsgrad entsprechend der Situation darstellen, ohne die Komplexität der Geometrie der Oberfläche zu erhöhen. Zudem kann durch diese Technik eine Geometrie mit unterschiedlichen Texturen visualisiert werden. Weiterhin lassen sich Texturen auf unterschiedliche Geometrien auftragen. Dieses Kapitel enthält Anwendungsbeispiele, um die vielfältigen Einsatzmöglichkeiten für das Texture-Mapping zu demonstrieren.
Karsten Lehn, Merijam Gotzes, Frank Klawonn
Kapitel 11. Spezialthemen und virtuelle Realität
Zusammenfassung
Dieses Kapitel enthält ausgewählte Spezialthemen für computergrafische Anwendungen. Da Virtual-Reality (VR)-Anwendungen ein wichtiges Anwendungsgebiet der Computergrafik sind, sind Faktoren erläutert, die in solchen Anwendungen einen hohen Grad an Immersion erzeugen können, so dass sich ein Benutzer in einer virtuellen Umgebung wirklich präsent fühlt. Durch die Simulation von Nebel, die Nutzung von Partikelsystemen oder durch die Darstellung dynamischer Oberflächen lassen sich in computergrafischen Szenen realistische Effekte erzeugen. Für interaktive Computergrafiken ist die Auswahl von Objekten und die Erkennung und Behandlung von Kollisionen wichtig. Hierdurch lassen sich dreidimensionale virtuelle Welten durch Benutzer erkunden und manipulieren. Für diese Themen enthält dieses Kapitel die technischen Grundlagen. Für die meisten Themen sind darüber hinaus OpenGL-Beispiele dargestellt und erläutert. Da der Hörsinn einen großen Beitrag zur Immersion und damit zur Präsenz leistet, sind in diesem Kapitel einige wichtige Erkenntnisse und technische Grundlagen zur Auralisierung akustischer Szenen dargestellt. Der letzte Teil dieses Kapitels enthält eine Zusammenfassung wichtiger Faktoren für das Entstehen eines visuellen Tiefeneindrucks in einer Szene. Der Schwerpunkt liegt hierbei auf dem Sehen mit beiden Augen (binokulares Sehen) und der technischen Reproduktion durch Stereoskopie-Ausgabetechniken. Diese Techniken kommen beim 3D-Fernsehen und in Virtual-Reality-Headsets zum Einsatz.
Karsten Lehn, Merijam Gotzes, Frank Klawonn
Backmatter
Metadaten
Titel
Grundlagen der Computergrafik
verfasst von
Karsten Lehn
Merijam Gotzes
Frank Klawonn
Copyright-Jahr
2022
Electronic ISBN
978-3-658-36075-7
Print ISBN
978-3-658-36074-0
DOI
https://doi.org/10.1007/978-3-658-36075-7

Neuer Inhalt