3D Game Engine Design


Wer sich als Mathematiker oder Informatiker im Bereich der Computergrafik beschäftigt, und das Usenet zum Austausch nutzt, der wird zwangsläufig auf den Namen David H. Eberly stoßen. Der Doktor der Informatik und der Mathematik beteiligt sich seit vielen Jahren aktiv an den Diskussionen in der Newsgroup comp.graphics.algorithms. Seine umfangreichen Kenntnisse und professionellen Erfahrungen in der Entwicklung von 3D Engines hat er nun im Buch „3D Game Engine Design – A Practical Approach to Real-Time Computer Graphics“ in 13 Kapiteln auf 560 Seiten zu Papier gebracht.
Nach einer kurzen Einführung widmet Eberly ein Kapitel zunächst grundlegenden geometrischen Methoden, wie die Darstellung von Transformationen oder einfachen dreidimensionalen Objekten, sowie Abstandberechnungen. In Kapitel 3 werden die nötigen Schritte zur Darstellung einer dreidimensionalen Szene auf dem Bildschirm besprochen, die sog. Rendering Pipeline. Hierzu gehören Themen wie Projektion, Kameradarstellung oder das Aussortieren von nichtsichtbaren Dreiecken bis hin zum Rastern von Dreiecken. Kapitel 4 beschäftigt sich mit der hierarchischen Szenendarstellung und Algorithmen zum Zusammenfassen und Culling von Ästen. Das folgende Kapitel beschreibt unter dem Titel „Picking“ die Schnittbestimmung von Strahlen, Linien und Liniensegmenten mit einfachen geometrischen Körpern. Ähnlich widmet sich das umfangreiche nächste Kapitel dem Thema Kollisionserkennung. Kurven und Oberflächen sind Thema der folgenden zwei Kapitel. Einige sehr konkrete Anwendungen der bisher erworbenen Kenntnisse finden sich dann unter den Kapitel Charakteranimation, Detaillevel oder Terrain wieder. Kapitel 12 widmet sich Datenstrukturen zur Raumsortierung, wie Quadtrees oder Portalen. Im letzten Kapitel werden Spezialeffekte wie Lens Flares oder Partikelsysteme besprochen. Der umfangreiche Anhang geht zum einen ausführlich auf die objektorientierte Architektur der Engine ein, und stellt dem Leser zum anderen eine Sammlung numerischer Methoden für die verschiedensten Zwecke zur Verfügung. Auf der beiliegenden CD findet sich die vom Autor entwickelte „WildMagic“ Engine mit komplettem Quellcode für Linux und Windows Plattformen, womit der Leser vom Autor ein konkretes Beispiel für die Umsetzung des im Buch besprochenen erhält.
„Die Engine kann’s, und das Spiel macht’s“, heißt es in Spieleentwickler-Kreisen, und Eberly zeigt in seinem Buch ausführlich, welche „wilde Magie“ für das „Können“ verantwortlich ist. Auch nach Durcharbeiten des Buches stellt es sich durch den umfangreichen Fundus an mathematischen Problemlösungen als nützliche Referenz heraus, die man gerne griffbereit hält. Durch den weitgefächerten Inhalt, von Grundlagen bis hin zu speziellen Problemen, und durch die konkrete Implementierung in der beiliegenden Engine, wird das Buch dabei umso interessanter. Unabdingbar zum Verständnis sind jedoch neben den obligatorischen Englischkenntnissen sowohl solide Mathematikkenntnisse, die über das Oberschulniveau hinausgehen – ins Hauptstudium der Mathematik sollte man es schon gebracht haben -, als auch ausreichende Programmiererfahrung in C++.
Obwohl das Buch im Vergleich zur Entwicklung der 3D-Computergrafik mit 2 Jahren seit Erscheinung bereits „alt“ ist, enthält es doch Fachwissen, um das bis heute kein 3D-Spieleentwickler herum kommt, und wird damit zu einem „Must have“ in jedem Fachbuchregal.
Homepage des Autors: http://www.magic-software.com
Wild Magic Engine Homepage: http://www.wild-magic.com
(online ist Version 1.5 der Engine verfügbar, im Gegensatz zur Buchversion 0.4)
Morgan Kaufmann Seite mit Leseprobe (für Besucher ausserhalb Amerikas):
http://www.elsevier-international.com/catalogue/title.cfm?ISBN=1558605932
David H. Eberly: „3D Game Engine Design – A Practical Approach to Real-Time Computer Graphics“
Morgan Kaufmann Publishers, 2001
ISBN 1-55860-593-2
Matthias Gall, Juni 2003

Leave a Reply

Your email address will not be published.