CG23LU - Feature Liste

- Display-Lists

Mit F4 toggeln. Display-Lists werden für die statischen Objekte in der Landschaft sowie für das Terrain verwendet.

- Mip-Mapping

Mit F5 toggeln. Nicht alle, aber die meisten Objekte verwenden Mip-Mapping, speziell beim Terrain fällt das ja auf.

- Vertex Arrays

Mit F6 toggeln. Vertex Arrays verwendet das Terrain.

- Textur-Qualitätseinstellungen

Mit F7 umschalten zwischen nearest, bilinear, und trilinear Filtering.

- FPS-Counter

Framerate wird links oben am Bild angezeigt.

- Wireframe-Modus

In den Wireframe-Modus kommt man per F2.

- Transparenz

Wir verwenden Alpha-Blending für eine Vielzahl von Effekten oder einfach der Ästhetik halber. Sh. unten.

- Frustum Culling

Frustum Culling ist mit Objekt-Boundingspheres (beim 1. Spieleevent demonstriert anhand einer absichtlich "falschen", zu kleinen Boundingsphere), und Bounding-Boxen implementiert, letzteres kommen speziell beim Traversal durch den Terrain-Octree in Verwendung.

- Octree Terrain

Ursprünglich haben wir uns für Octrees entschieden, um eventuell auch Szenen mit einem relevanten Höhenanteil zu kreieren. Allerdings blieb keine Zeit für einen Level-Editor, und so sind wir noch immer hängengeblieben an der Maßnahme, dass einfach aus einer Heightmap ein Mesh generiert wird, und dem Octree übergeben (der space-partitioned das dann).

(Inspiriert von einem Tutorial aus www.gametutorials.com)

- Video/Animierte Texturen

Die Explosionen verwenden Alpha-Blending, Billboarding, sowie Texturanimation.

- Mesh-Animation

Durch den MilkShape3D-Loader, den wir recht stark modifiziert haben, haben wir sich dynamisch verändernde Objekte. Auch das Wasser ist ein Mesh, bei dem die "Wellen" einfach nur dynamisch veränderte Vertizes sind.

- Typographisch korrekte Raster-Font-Engine

Wenn man eine Schrift-Engine in OpenGL oder was auch immer baut, die auf eine Bitmap mit dem Zeichenvorrat zugreift, macht man oft den (typographischen) Fehler, bei Schriftarten, die eigentlich variable Zeichen-Breite haben, trotzdem einen gleichen Zeichenabstand zu verwenden.

Unsere Schriftengine ist in dieser Hinsicht deutlich ästhetischer.

- Collision Response, "Sliding"

Ist derzeit nur bei Objekt-Objekt Kollisionen implementiert und nicht mit dem Terrain (deswegen ist das Terrain ziemlich "hakelig"). Basiert auf einem Artikel von www.gamedev.net.

- Rauchspuren

Manche Schüsse ziehen einen Schweif hinter sich her, auch wenn der kein Rauch ist, am deutlichsten sichtbar ist das beim blauen "Gauss Rifle" des Scorpion. Transparent sind sie, allerdings keine Billboards (obwohl wir an anderer Stelle, z.B. bei den Explosionen, Billboards eingebaut haben). Hier hatten nachgezogene Kugeln einfach den besseren Effekt.

- Wolken

Leicht zu finden, einfach das Spiel starten und die Maus nach oben bewegen.

- Wasser

Ebenfalls leicht zu finden (obwohl, ein paar Tester haben das Wasser schon übersehen...), einfach beim Spielstart um 180 Grad drehen.

- Lensflare

Wie für die Wolken: einfach den Himmel absuchen.

- Multitexturing

Das Terrain verwendet eine große "Farbtextur" (generiert mit einem selbstgeschriebenen Tool), und eine "Detailtextur".

Im Prinzip wäre es nur ein Aufwand von einigen wenigen Zeilen, Hardware-Bumpmapping einzufügen, allerdings dachten wir uns, es bringt verhältnismäßig wenig (das Terrain ist fix, und die Lichtquelle bewegt sich nicht), da ist unser "Pseudo-bumpmapping" (einfach eine Detailtextur mit einem Texture Combiner kombiniert) vermutlich genauso effektiv und performance-schonender.

- Billboarding

Wird für verschiedene Effekt angewandt, sh. oben.