01.02.2013 Aufrufe

MiCaDo Projektbericht - artecLab - Universität Bremen

MiCaDo Projektbericht - artecLab - Universität Bremen

MiCaDo Projektbericht - artecLab - Universität Bremen

MEHR ANZEIGEN
WENIGER ANZEIGEN

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/

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!