Rezension zu "Essential mathematics for games and interactive applications" Computergraphische Systeme gewinnen zunehmend an Bedeutung. Seien es Geoinformationssysteme für Großstädte oder die neuesten Computerspiele: hochauflösende Grafik wird inzwischen immer öfter nicht nur als Bonus gesehen sondern direkt vorausgesetzt. Die Computergrafik ist dabei ihren Kinderschuhen längst entwachsen. Für die Realisierung komplexer graphischer Softwaresysteme kommt man inzwischen ohne tiefgehende Mathekenntnisse nicht mehr aus. Diesem Thema widmet sich das hier besprochene Buch. Dem Entwickler computergraphischer Anwendungen werden die Grundlagen der Computergrafik und Animation nahe gebracht. Der Fokus liegt dabei ganz klar auf der Anwendung und nicht auf ausschweifenden mathematischen Beweisen. Als erstes fällt der grosse Umfang des Werkes auf, nahezu alle relevanten Themenbereiche werden ausführlich abgehandelt, so dass selbst Profis noch neue Einblicke erhalten können. Das Buch beginnt mit einer Einführung in die Grundlagen der Vektor und Matrizenrechnung. Fundamentale Themen wie Vektorräume, Vektoren und die darauf definierten Operationen werden eingeführt un ihre Verwendung zur Repräsentation von Positionen, Geschwindigkeiten und einfachen geometrischen Primitiven wie Punkten, Linien und Flächen vorgestellt. Darauf folgend werden Matrizen, ihre Kombination und Anwendung auf Vektoren vorgestellt. Wichtige mathematische Operationen wie Matrixmultiplikation, Inversenbildung und Determinanten werden erklärt bevor es im folgenden Kapitel um die Anwendung der Matrizen in der Computergrafik um Vektoren zu Verschieben, Rotieren, Skalieren usw. geht und schlussendlich noch ein kurzer Einblick in hierarchische Strukturen in der Computergrafik und ihr Zusammenhang mit der vorher behandelten Mathematik gegeben wird. Ein weiteres Kapitel widmet sich der Darstellung von Zahlen am Computer. Der Fokus liegt dabei vor allem auf der Repräsentation von Fliesskommazahlen und den daraus resultierenden Problemen sowie deren Vermeidung. Vor allem interessant sind dabei fortgeschrittene Themen wie “Denormalisierung” bei sehr kleinen Werten und daraus resultierenden Geschwindigkeitseinbussen. Die nächsten Kapitel befassen sich mit der Anwendung der vorgestellten Grundlagen zum Rendering. Es wird ein Überblick über die Rendering Pipeline gegeben und gezeigt wie ihre einzelnen Operationen wie Projektion vom 3D Raum auf den Bildschirm, Beleuchtung, Clipping, Rasterisierung und Texturierung mathematisch realisiert werden. Darauf folgend geht es um die Animation der Objekte. Es werden parametrische Kurven wie B-Splines, Hermite- und Bézierkurven und dabei auftretende Problematiken wie die gleichmässige Bewegung der Kamera behandelt. Die Repräsentation und Berechung der Ausrichtung von Objekten im Raum und verschiedener Arten sie darzustellen und zu berechnen, wie z.Bsp. Quaternions, sowie Interpolationstechniken werden behandelt, bevor es im folgenden um die Simulation, und die Umsetzung physikalisch glaubwürdiger Animationen geht. Es werden Techniken zur Kollisionserkennung zwischen grafischen Primitiven vorgestellt und demonstriert wie man passende Reaktionen auf diese Kollisionen mittels Rigid Body Dynamics berechnet. Im Anhang des Buches befindet sich eine Wiederholung grundlegender Themen der Trigonometrie und Analysis. Wer also während der Lektüre des Buches sein Schulwissen auffrischen muss, kann hier jederzeit nachschlagen. Das Buch ist ähnlich wie ein Lehrbuch aufgebaut, das einen sachte in die tiefgängige und durchgehend sehr anspruchsvolle Thematik einführt. Die Kapitel bauen lose aufeinander auf, sind aber trotzdem in sich geschlossene Einheiten so dass man das Buch nicht von vorne nach hinten lesen muss. Man merkt stets den starken Fokus auf die Anwendung, wer lange Beweise und Herleitungen sucht wird hier nicht glücklich. Stattdessen wird explizit auf die Umsetzung der Formeln eingegangen, es finden sich sowohl Codebeispiele als auch Hinweise zu Fallstricken wie Problemen mit der Genauigkeit der Fliesskommadarstellung. Sehr angenehm fällt auf, dass die abstrakte Mathematik stets sehr anschaulich und gut verständlich vermittelt wird und man so schnell ein Verständnis für die Materie bekommt. Ausser der Vermittlung der grundlegenden Konzepte wird vor allem auch die Verwendung der Mathematik zur Lösung gängiger Probleme demonstriert. Nachdem die mathematische Definition und Bedeutung von Dingen wie Vektoren vermittelt wurde wird einem auch immer direkt gezeigt wie man damit z.Bsp. Normalen zur Beleuchtungsberechnung generieren kann. Ein Nachteil des Aufbaus des Buches ist, dass es nicht optimal zum Nachschlagen ist, da sich Probleme wie “wie projiziere ich eine Vektor auf eine Ebene” nicht direkt im Index oder ohnehin schon sehr langem Inhaltsverzeichnis finden so dass meist ein wenig Blätterei gefragt ist. Durch die klare Struktur des Buches ist immerhin meist klar, in welchem Kapitel man fündig wird. Insgesamt ist das Buch wegen seines Umfangs und der sehr gelungenen Erklärungen sowohl als Einstiegsliteratur als auch zur Vertiefung des eigenen Wissens empfehlenswert, und taugt auch nach dem Durcharbeiten noch als gute und vollständige Referenz. Jan Rehders