Kompilieren einer Map

Bevor Sie eine Map in der Engine laden können, müssen Sie diese in das von der Engine benötigte .WMB-Format kompilieren. Der Build-Befehl wandelt die Map ins .WMB-Format um, berechnet Licht- und Schattenverläufe und erzeugt optional einen BSP-Tree, der für maximale Framerate auch in riesigen Leveln sorgt. Die folgenden Optionen stehen zur Verfügung:

Build BSP Map

Kompliliert eine spezielle Map mit BSP- / PVS- Daten. BSP-Engines wie A7 und A8 P ) können solche Maps deutlich schneller rendern, insbesondere mit grossen Innenleveln. Allerdings müssen einige Design-Regeln befolgt werden. Nicht jede Map eignet sich einen BSP-Tree!

Build Simple Map

Kompiliert eine normale WMB-Map für ABT-Rendering, die zu allen A7- und A8-Engines passt.

Update Entities Nur die Entities werden innerhalb einer bereits bestehenden WMB-Map auf den neuesten Stand gebracht. Auf diese Weise können Entity-Positionen und -Eigenschaften nachträglich feineingestellt werden, ohne dass man die komplette Map neu generieren muss.
Update Textures Kopiert geänderte Texturbilder in eine bestehende WMB-Map. Die Namen, Größen, Positionen und Skalierungen der Texturen dürfen sich dabei nicht geändert haben. Benutzen Sie diese Option nur, wenn die Map seit dem letzten Kompilieren nicht editiert oder geändert wurde.
Default Settings Setzt sämtliche Map-Kompiliereinstellungen auf ihren Default-Status zurück.
Light Calculations Stellt die Qualität der Licht/Schattenverläufe ein. Niedrige Qualität ergibt eine kürzere Kompilierzeit.
Ok Startet den Map-Building-Prozess.
 
Warnings Quiet: keine Warnungen; default: nur wichtige Warnungen; all: alle Warnungen.
CPUs to be used Anzahl der gleichzeitig laufenden Threads für den Build-Prozess. Hat jede CPU einen Thread, ist der Build-Prozess schneller. Packen Sie keine zwei oder mehr Threads auf eine CPU. Hyper-Threading-Prozessoren können mit 2 Threads funktionieren.
Detail faces Gibt an, ob keine (none) oder alle (all) Detail-Flächen als Detail berechnet werden. Mit Auto werden nur die sichtbaren Flächen als Detail berechnet.
Zoom Level

Zoomen Sie die Geometrie um den gegebenen Faktor vor dem "Builden" und zoomen Sie sie danach zurück. Damit kann man Ungenauigkeiten in BSP-Trees, die durch ganzzahliges Snaping aller Koordinaten, entstehen können, vermeiden. Der vergrösserte Level darf Max Level Size nicht überschreiten (s. unten).

Max level size

BSP-Maps haben eine Größenbegrenzung, die hier auf bis zu 250000 Einheiten gesetzt werden kann. Einfache (nicht-BSP) Maps haben keine Größenbegrenzung. Höhere maximale Levelgrößen können mehr Warnmeldungen bei dünnen Blocks und Geometrieproblemen in BSP-Leveln produzieren. Die Z-Buffer der meisten 3D-Karten können mit sehr großen Distanzen nicht umgehen, es sei denn, camera.clip_near ist auf einen relativ hohen Wert gesetzt. Verwenden Sie diese Option mit Vorsicht.

Tesselate Shaded

Teilt die geshadeten Texturen alle N Texturpixel. Niedrigere Werte erhöhen die Qualität dynamischer Lichter. Höhere Werte verbessern die Framerate und verringern den vom Compiler benötigten Speicherplatz. Per Default werden schattierte Oberflächen dann tesselliert, wenn sie mehr als 240 Texturpixel umspannen. 'Flat' und 'turbulent' Flächen werden überhaupt nicht tesselliert. Ein Reduzieren der Tessellationsgrösse erhöht die Anzahl von Polygonen, sowie, speziell für Scheinwerfer, die Auflösung dynamischen Lichts.

Tesselate flat

Teilt die flachen 'flat' Texturen alle N texel. Je niedriger der Wert, je besser sind die synamischen Lichter. Höhere Werte sind für eine hohe FPS. Auto bewirkt die maximale FPS.

Tesselate turbulence

Teilt Oberflächen, deren Texturnamen mit '*' beginnen alle N Texturpixel. Je niedriger der Wert, je besser sind die dynamischen Lichter. Höhere Werte sind für eine hohe Framerate. Auto steht für die höchste Framerate und keine dynamischen Lichter ausser der Sonne.

 
Lightmap ambient Setzt die Lichtatmosphäre. Niedrigere Werte ergeben einen besseren Schattenverlauf.
Lightmap gamma Gamma-Werte für statische Schatten. Höhere Werte erhöhen die Helligkeit von Schatten.
Phong min angle A7.82 Minimaler Winkel zwischen Oberflächen für Smooth. Oberflächen mit einem spitzeren Winkel werden nicht geglättet. Hiermit wird Lichtnähten vorgebeugt, die durch eine falsche Einstellung des Flags Smooth verursacht werden.
Light compress at

Hilft in überbelichteten Bereichen den Kontrast zu erhöhen. Der Wert stellt den Prozentsatz der Lichtgrenze (s. u.) dar wo das Komprimieren aktiviert werden wird. 0% bedeutet komplette Komprimierung und 100% deaktiviert es.

Light limit at Grenzen des Lichtwertes, der in den Licht-Maps gespeichert ist (0..255, nach dem Komprimieren).
Light scale Skaliert die Helligkeit von Lichtquellen (0.0..3.0)
Radiosity subdivision

 A7  Bestimmt den Abstand von Beleuchtungsausstrahlung auf schattierten Oberflächen. Ein niedrigerer Wert bringt bessere Qualität aber ein langsameres Kompilieren. Höhere Werte können für schnellere, vorläufige Ergebnisse verwendet werden. Lassen Sie das am besten während des Entwickelns auf seinem Defaultwert und setzen Sie es erst fürs finale Kompilieren auf einen niedrigeren Wert.

Radiosity bouncing

 A7  Bestimmt wie oft das Licht von Wänden reflektiert wird (0..32). 0 schaltet die Ausstrahlung komplett ab. Ein höherer Wert erhöht das indirekte Licht einer Szene, erhöht allerdings auch erheblich die Berechnungszeit für die Lightmap, sowie den für das Berechnen benötigten virtuellen Speicher.  !!  Speicheranforderung und Lichtmap-Berechnungszeit erhöhen sich quadratisch zu dieser Einstellung. Eine Einstellung von 3 beispielsweise erfordert 9 mal mehr Speicher und Zeit als eine Einstellung von 1. Lassen Sie das daher während des Entwickelns auf 0 und setzen Sie es erst fürs finale Kompilieren auf einen höheren Wert.

Lightmap resolution

 A7  Auflösung der Lightmap. "Std" ergibt eine Auflösung von 1.0. Besser aussehende Lightmaps erreicht man mit höheren Auflösungen. Je höher der Wert, je langsamer die Lightmapberechnung und umso mehr Videospeicher wird benötigt. Eine Skalierung von 2.0 erfordert den 4--fache Lightmap-Raum, 3.0 den 9-fachen Lightmap-Raum uws.. "Hires -(hochauflösende)-Lichter erreichen die doppelte Auflösung.

 
Close when done Schließt den Dialog ohne dass der Ok-Knopf gedrückt werden muss.
Write logfile Schreibt alle Meldungen aus dem Build-Prozess in eine buildlog.txt-Datei..
Create Meshes

 A7  Kompiliert das Level im A7-Modus mit statischen Meshes anstatt mit auf Polygonen basierenden Blocks. Dies ist für den A7 light manager erforderlich oder dann, wenn Shaders auf die Leveloberflächen angewendet sind. Diese Box sollt normallerweise immer mit einem Haken versehen sein. Das Rendern von Leveln läßt sich durch das Kombinieren von Blockgruppen zu single meshes ordentlich beschleunigen.

Create PVS

Schaltet das PVS-Generieren in BSP-Leveln frei (siehe rendering). PVS erhöht die Kompilierzeit, verhindert aber das Rendern von Objekten, die hinter Wänden versteckt sind. Bei extrem riesigen Leveln können Sie PVS abschalten und sie so in annehmbarer Zeit in einen BSP-Tree kompilieren.

Don't snap vertices Defaultmäßig werden alle Vertices konvexer Blocks auf ganzzahlige Koordinaten gesnappt, was bei kleinen Details oder T-Verbindungen von Blocks zu Ungenauigkeiten führen kann. Dem lässt sich durch Einschalten dieses Flags vorbeugen. Der Nachteil dabei ist, dass der BSP-Tree-Prozess in Mitleidenschaft gezogen wird, woraus ein langsameres Level und eventuelle Sichtbarkeitsprobleme resultieren.
Merge Across Leafs

Verschmilzt Polygone, die durch den BSP-Tree-Prozess getrennt wurden, wieder miteinander. Reduziert die Anzahl von Polygonen und Vertices und die WMB-Größe; kann die Framerate um bis zu 10% erhöhen. Außerdem werden die unter bestimmten Umständen sichtbaren "Schattennähte" weggenommen. Zwar verlangsamt Merging den Build-Prozess etwas, verbessert aber Laufgeschwindigkeit und Qualität. In einigen komplexen Leveln könnte diese Methode fehlschlagen, in anderen Fällen sollte diese Option eingebunden werden.

Solid Sky Behandelt alle Oberflächen mit dem sky-Renderflag als solide. Ohne haben die Sky-Oberflächen ihren passable-Flag gesetzt. Dies hat historische Gründe, denn der alte Lensflare-Code konnte nicht mit einer soliden Oberfläche zwischen Kamera und Sonne umgehen. Solid Sky sollte gesetzt sein, es sei denn, Sie verwenden frühe A5-Templates.
Invisible == None

Setzt lieber für alle Oberflächen unsichtbarer Blocks das None.-Rendering-Flag als den Block zu unterdrücken. Notwendig, wenn unsichtbare Blocks Hindernisse für die OBB-Kollisionserkennung darstellen sollen.

Terrain Lighting A7.76  C  Generiert Lightmaps nicht nur für Blocks, sondern auch für Terrains. Terrain-Lightmaps werden von der Levelgeometrie und vom Terrain selbst abgegeben.
Lit maps only When enabled, a surface that receives no light from a static light source will not write out a lightmap at all. This reduces the WMB file size and memory usage, but when using shaders or a high ambient light, surfaces without lightmaps can turn out pitch black when they should not.
Use tesselation A7.82 Activate the subdivision of surfaces. Required for dynamic lights.
 
Hull Offsets die beiden Standardhüllengrößen für Modelle mit dem FAT- oder NARROW- Flag Die erste Zahl gibt die horizontale Ausdehnung der Bounding-Box an, die zweite ist die vertikale Größe und die Dritte gibt den vertikalen Versatz der Box relativ zum Nullpunkt der Entity an.
Alle Map-Entities sollten mit denselben Höllengrößen wie das Level kompiliert werrden. 4 vordefinierte Vektoren enthalten die Hüllenwerte des aktuellen Levels zur Auswertung in Funktionen: hull_narrowmin, hull_narrowmax, hull_fatmin] und hull_fatmax. Sie enthalten die x-y-z-Minimal und Maximal-Werte der schmalen und weiten Hüllen.
Command Line Befehlszeilenoptionen für den Build-Prozess, nur zu Experimentalzwecken.

So funktioniert der Map-Kompilierer

Der Map-Kompilierer arbeitet Ihr Level in diversen Schritten ab:

 !!  Es kann manchmal vorkommen, dass Warnungen oder sogar Fehlermeldungen während des Generierungsvorgangs ausgegeben werden. Die meisten Warnungen können problemlos ignoriert werden. Im Falle von Fehlermeldungen wird die WMB-Datei jedoch nicht erstellt. Die Fehler werden für gewöhnlich von Problemen in Ihren Maps - etwa ein Überschreiten der Mapgrenzen oder das Erstellen ungüliger Blocks - verursacht. Benutzen Sie WEDs Funktion Find Block zum identifizieren und korrigieren der Blocks, die als fehlerhaft angegeben sind.

 !!  Im A6-Kompatibilitätsmosdus (mit deaktiviertem Create Meshes) lassen sich Lightmaps nur auf konvexen Blocks mit senkrechten Texturvektoren erstellen. Eine Blaufärbung zeigt an, dass eine Lightmap auf dieser Oberfläche nicht erstellt werden kann. In diesem Fall müssen Sie ein en Block konvex machen und/oder die Textur in ihre ursprüngliche Ausrichtung zurückdrehen. Diese Einschränkung gilt nicht für auf Mesh basierende A7-Level.

► Aktuelle Version Online