MiCaDo Projektbericht - artecLab - Universität Bremen
MiCaDo Projektbericht - artecLab - Universität Bremen
MiCaDo Projektbericht - artecLab - Universität Bremen
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
14<br />
welche Frames 8 aus den md3-Dateien zu welchem Typ von Animation gehören, da in einer md3-<br />
Datei alle Animationen hintereinander gespeichert sind. Beispielsweise können die Frames 30–65<br />
die Beinbewegung des Modells für die Animation ” Laufen“ enthalten. Erstellt werden die Animationen<br />
zunächst mit Hilfe eines Modellierungswerzeuges, wie z. B. GMax 9 , aus welchem sie dann<br />
mit einem Exporter ins md3-Format überführt werden. Die weiteren Aspekte der Modellierung von<br />
Animationen werden ebenfalls im Kapitel 10.1 erläutert.<br />
3.3 Von den Daten zum Bild<br />
Die Aufgabe einer 3D-Engine – also in unserem Fall der Madness Engine – ist es, die Daten aus<br />
den md3- und den BSP-Dateien zu interpretieren und anhand eines gegebenen Sichtpunktes und<br />
-winkels in Echtzeit eine Szene zu rendern. Dazu wird zunächst beim Start des Programms der angegebene<br />
BSP-Baum in den Speicher geladen, um darauf Operationen ausführen zu können. Hierfür<br />
sind in der Implementierung der Engine geeignete Funktionen vorhanden. Soll nun ein konkretes<br />
Bild erzeugt werden, so wird der BSP-Baum anhand der Koordinaten des Sichtpunktes durchlaufen,<br />
wobei an jedem Knoten des Baumes bestimmt wird, auf welcher Seite der Knotenebene sich<br />
der Sichtpunkt befindet. Dann wird der Unterbaum der hinteren Seite ausgegeben und danach der<br />
Unterbaum der vorderen Seite. Hierzu werden die Unterbäume jeweils absteigend durchlaufen. Abschließend<br />
wird noch das so genannte Frustum Culling [Fru04] durchgeführt. Bei diesem Verfahren<br />
wird ein Sichtbarkeitsbereich mit Hilfe von 6 Ebenen bestimmt. Diese Ebenen begrenzen den Raum<br />
nach vorn, nach hinten, seitlich sowie nach oben und nach unten. Es wird nun jeweils bestimmt, ob<br />
sich ein Polygon innerhalb dieses Bereiches befindet, und nur dann werden seine Daten im letzten<br />
Schritt an den Grafikkartenspeicher weitergegeben. Dieses Verfahren wird aus Gründen der Performanz<br />
angewendet, da die Grafikkarte dann nur noch die Polygone bearbeiten muss, die auch<br />
wirklich sichtbar sind.<br />
Für die md3-Modelle gilt das Gleiche. Sie werden durch geeignete md3-Import-Funktionen nacheinander<br />
eingelesen und die verschiedenen vorhandenen Animationen unter ihren Kennnamen zur<br />
Verfügung gestellt. Während des Programmablaufs können die Animationen dann mit einer Methode<br />
setAnimation() abgespielt werden.<br />
8 Ein Frame ist ein einzelnes Bild aus einer Folge von mehreren Bildern, die fortlaufend gerendert werden.<br />
9 siehe http://www4.discreet.com/gmax/