Die Virtual Reality Engine

Eine VR-Engine besteht im Grunde aus einer Bibliothek von Funktionen, die zur Darstellung virtueller Realität (VR) benutzt werden. Die Engines der Acknex-Reihe beinhalten Funktionen für 2D- und 3D-Grafiken, Kollisionserkennung, Sounds, Muliplayer, Physik und Benutzeroberfläche. Dazu kommt eine Programmier- oder Skriptsprache, die einen einfachen Zugang zu diesen Funktionen ermöglicht.

Der Renderer ist sozusagen das Herz der Engine. Er ist der Teil der Software, der die 3D-Objekte - die Entities - schließlich auf den Bildschirm zeichnet. Die Engine verwendet unterschiedliche Render-Algorithmen für fünf Arten von Objekten: Modelle, Sprites, Terrain, BSP-Level und Partikel. Je nachdem, welche Methode zum Zugriff auf die 3D-Hardware verwendet wird, gibt es DirectX- und OpenGl-Renderer. Ein OpenGl-Renderer spricht die 3D-Hardware über die OpenGl-Bibliothek an, die für die meisten 3D-Karten verfügbar ist. Ein DirectX-Renderer benutzt Microsoft's DirectX-Bibliothek, die in Windows integriert ist. Auf alten 3D-Karten läuft OpenGl etwas schneller, während bei neueren 3D-Karten DirectX die Nase vorn hat. Die aktuellen A6- und A7-Engines benutzen einen DirectX 9.0c Renderer.

Das Culling-System rendert nur die Teile eines Spiele-Levels, die nicht von anderen Objekten oder Wänden verdeckt sind. Die üblichen Culling-Systeme arbeiten entweder mit einem BSP-Tree oder Portal-Algorithmus. Das BSP-Tree-System ist das schnellste und effektivste, besonders in Innenräumen, der Editor benötigt jedoch eine längere Zeit, um den Level vorzuberechnen. Renderer ohne Culling-System benutzen meistens einen Octree, um die Szene zu organisieren. Dies ist langsamer, benötigt jedoch keine Level-Vorberechnung außer für Shadow-Mapping (s.u.).
Die meisten kommerziellen 3D-Engines arbeiten mit einem BSP-Tree-System. Mit einem BSP-Tree-System bleibt die Rendergeschwindigkeit, zumindest in Innenräumen, weitgehend unabhängig von der Levelgröße und erlaubt akzeptable Frameraten auch noch auf alten PCs.
Ein LOD-System erhöht die Framerate auch in Außenbereichen. Es schaltet, sobald Objekte weiter von der Kamera entfernt sind, auf einfachere Formen um. Auf diese Weise reduziert sich die Gesamtzahl der pro Frame gezeichneten Polygone.

Shadow Mapping - auch Lightmapping genannt - ist ein System zum Erzeugen realistischer Licht- und Schattenverhältnisse im Level. Ein Shadow-Mapping-Compiler erlaubt den Einbau von unbegrenzt vielen statischen Lichtquellen ins Level und berechnet Lichtverlauf und Schatten für jede Oberfläche im voraus. Fast alle kommerziellen 3D Spiele-Engines verwenden Shadow-Mapping. Wie Sie unten sehen können, tragen weiche Licht- und Schattenverläufe sehr viel zur Atmosphäre eines Spieles bei (Bilder aus einem GameStudio-Spiel von Rémi Valantin).

   
     
Mit Shadow Mapping
  
Ohne Shadow Mapping

Das Partikel-System ist ein Effekt-Generator, der mit einer enormen Menge winziger Partikel Spezialeffekte wie Rauch, Feuer oder Explosionen erzeugt. Gute Partikel-Effekte machen deutlich mehr her als vorgerenderte Animationen. Deshalb werden in allen neueren Spielen und Spielekonsolen Partikel-Generatoren verwendet. Um einen realistischen Partikel-Effekt zu erreichen, muss der Generator in der Lage sein, Tausende von Partikeln ohne Einbuße in der Framerate zu bewegen. Einfache Partikel-System erlauben nur die Zuweisung von Partikel-Eigenschaften wie Farbe oder Gravitation; bessere Engines, wie A6 oder A7, lassen auch die Programmierung individueller Funktionen für jeden Partikel zu. Einige Partikel-Systeme haben auch Beam-Generatoren, die Lichtstrahlen und Leuchtspuren erzeugen können (Screenshots aus dem Spiel 'Glider' von REVOgames).

   
     
Partikel-Effekt
Beam-Effekt

Shader geben der Spielegrafik eine neue Dimension. Sie beeinflussen Transformation, Beleuchtung und Rendern direkt auf der Vertex- und Pixel-Ebene. Ein Shader ist eine Art kleines Skript, das für jeden Vertex oder jeden Pixel direkt auf der 3D-Hardware ausgeführt wird. Dies gibt dem Entwickler völlige Flexibilität für die Darstellung von Oberflächen. Vertex- und Pixel-Shader können realistische Wellen auf einer Wasserfläche erzeugen, dem Spiel einen Cartoon-Look geben, Modelle mit Fell überziehen oder den Lavafluss eines Vulkans kontrollieren. Eine Reihe von modernen 3D-Engines unterstützen Shader (Screenshots von Gamestudio-Usern auf dem Shader Forum).

     
     
Normalmapping-Shader
Fell-Shader

 

? Aktuelle Version Online