Architektur

Zu Beginn war der TextureMapper zentraler Bestandteil der Applikation um den sich alle weiteren Komponenten entwickelten. Mit zunehmender Komplexität mußte der Kern neu strukturiert werden. Ziel war die Trennung von Szenemanagement und Lowlevel-Rendering.

Architektur

Die Engine verwaltet alle Daten, die aus der Mapdatei gelesen werden. Das sind im wesentlichen die Geometrien (Tiles) und Texturen. Ausserdem gibt es für Lightmaps, Partikelsysteme und für die Animation eigene Containerklassen.

Der Engine-Kern berechnet anhand der Kamaraposition die Szene. Durch verschiedene Cullingtechniken werden die sichtbaren Geometrien pro Frame ermittelt, und in der Tile List eingetragen. Die zugehörigen Texturen und Lightmaps werden im Surface Cache zusammengesetzt. Für die Partikel- und Textobjekte existieren eigene Listen.

Im Renderer werden diese drei Listen ausgelesen und weiter verarbeitet. Der Texturen Mapper projiziert die Tile perspektivisch korrekt auf die Canvas. Die zugehörige Textur (inkl. Lightmap) holt er sich aus dem Surface Cache.

Die Projektion von Partikeln geschieht auf eine völlig andere Art und Weise. Deshalb gibt es hierfür den Spritemapper. Auch für die Textausgabe wird ein eigener Algorithmus verwendet, der im TextMapper implementiert ist.

Da der Renderer Teil der Applikation ist, läuft er in der CPU und nicht in der Grafikkarte. Deshalb wird er auch Software-Renderer genannt. Alternativ dazu kann ein neuer Renderer mit DirectX oder OpenGL realisert werden. Die eigentliche Engine muß dazu nicht modifiziert werden.