Victor Karp

Quake 3 Radiant – Compiler Switches und Build Menü

Dieses Tutorial erklärt, wie du das Build Menü konfigurieren und die Beleuchtungsqualität deiner -light Builds verbessern kannst.

Du solltest für dieses Tutorial bereits wissen, wie du eine Map mit -meta und -light kompilierst.

Die Standardvariablen

BSP STAGE

-meta

-meta kompiliert die physikalische Struktur der Map. -meta Compiles haben keine Beleuchtung, alle Oberflächen sind gleichmäßig hell.

VIS STAGE

-vis

-vis Berechnet die Sichtbarkeit (vis = visibility = Sichtbarkeit) einer Map durch das Erstellen von Sichtbarkeitsclustern, um die Renderperformance zu verbessern. Diese vorberechneten Cluster werden während des Spiels automatisch ein- und ausgeblendet, sodass nur Areale gerendert werden, die für den Spieler sichtbar sind.

Damit dieses Clustering optimal funktioniert, muss ein Level dafür vorbereitet werden. Die Tutorials über -vis und Hint und Detailbrushes gehen darauf genauer ein.

LIGHT STAGE

-light

-light berechnet Licht und Schatten. Die Beleuchtung wird als Lightmap Textur auf alle Oberflächen gelegt. Du kannst sie im Spiel anzeigen, indem du den Konsolenbefehl /toggle r_lightmap verwendest.

-fast

-fast beschleunigt den Kompiliervorgang für Licht stark, jedoch mit Qualitätseinbußen. Der Qualitätsverlust steht jedoch in einem guten Verhältnis zur gesparten Compilezeit, sodass du diesen Befehl guten Gewissens auch für finale Light Compiles benutzen kannst.

-faster

-faster macht den Compilevorgang der Lightstage noch schneller als -fast, verschlechtert die Qualität der Beleuchtugn aber merklich. Ich rate davon ab, diesen Switch zu benutzen.

-filter

-filter wäscht Licht- und Schattenkanten durch Weichzeichnung etwas aus, um den Treppeneffekt bei diagonalen Licht- oder Schattenkanten zu vermindern. Dadurch verlieren Schatten aber auch an Schärfe.

-bounce

-bounce wird auch als Radiosity bezeichnet. -bounce berechnet, wie stark Licht von anderen Oberflächen reflektiert wird und wiederum andere Oberflächen anstrahlt. Die Zahl hinter -bounce gibt an, wie viele Lichtreflexionen berechnet werden sollen. Für Final Compiles wird in der Regel ein Wert von 8 empfohlen.

Der Compiler beendet automatisch seine Arbeit, wenn nicht mehr genug Lichtinformationen vorhanden sind, um weitere Bounces zu verechnen. Es kann also sein, dass du 8 Bounces angibst, aber nur 5 durchgeführt werden.

-super

-super zeichnet wie -filter harte Schattenkanten weich, erhöht die Comilezeit allerdings deutlich. Ich konnte in meinen Tests bisher keine Vorteile gegenüber -filter erkennen.

Andere Variablen

Der Compiler (q3map2) kennt eine große Zahl weiterer Switches, die im Standardbuildmenü des GtkRadiants nicht verwendet werden. Es gibt ein Wikibook zur q3map2, in dem ihre Befehle aufgelistet und erklärt werden.

Hauptseite des q3map2 Wikibooks
BSP Stage Variablen
VIS Stage Variablen
LIGHT Stage variablen

Im Folgenden liste ich die Switches auf, die ich selbst regelmäßig verwende und für wichtig halte. Wie du diese Switches aktivierst, liest du weiter unten.

BSP STAGE

-patchmeta

Der Detailgrad von Patches wird im Spiel auf Entfernung reduziert, um Polygone zu sparen. Mit -patchmeta kannst du dieses Verhalten deaktivieren. Allerdings entstehen dadurch harte Beleuchtungskanten auf Patches. Der Shaderbefehl q3map_shadeangle erlaubt es, trotzdem weiche Beleuchtungsübergänge zu haben.

-flat

-flat macht alle Texturen einfarbig. Die Farbe entspricht dem Durchschnittswert der jeweiligen Textur.

VIS STAGE

-saveprt

-saveprt speichert die .prt Datei, die während des -vis Compiles entsteht und normalerweise automatisch gelöscht wird. Du kannst die .prt Datei mit dem prtview bzw. Portal Viewer Plugin im Radiant laden, um dir die generierten VIS Portale im Editor anzusehen.

LIGHT STAGE

-patchshadows

patchshadows aktiviert Schattenwurf für Paches. Sollte immer benutzt werden.

-samples

-samples soll für feinere Licht- und Schattenkanten sorgen, verlängert den Compileprozess aber. Ich konnte bisher keine Verbesserung der Beleuchtung feststellen und verwende ausschließlich -filter.

-dark

-dark erzeugt Schatten an den Kanten aneinanderliegender Brushes, ähnlich dem Effekt von Ambient Occlusion.

-dirty

-dirty ist eine bessere Alternative zu dark, benötigt aber auch mehr Compilezeit. -dirty sorgt dafür, dass, Nischen, Ecken und sonstige verwinkelte Gebiete, die im Schatten liegen, auf realistische Art noch mehr Licht verschlucken und somit dunkler werden. Der Effekt ist der Ambient Occlusion Beleuchtung moderner Spiele nachempfunden.

-gamma

-gamma erhöht vornehmlich die Helligkeit dunkler Bereiche, ohne wie der Brightness Schalter im Optionsmenü auch helle Bereiche noch zusätzlich stark aufzuhellen. -gamma ändert an der Compiledauer nichts und kann verwendet werden, um extrem dunkle Areale mit Licht zu versorgen.

Der Switch kann dazu führen, dass helle Lichter ausbrennen und deine Beleuchtung Kontrast verliert. In meinen Tests haben Werte <= 1.4 gute Ergebnisse geliefert. Du musst Werte über 1 benutzen, um einen Unterschied zu sehen.

-compensate

-compensate reguliert helle Lichtwerte nach unten. Der Switch wird oft in Kombination mit -gamma empfohlen.

Lightcompile ohne -fast

Du kannst die Qualität deiner -light Compiles verbessern, indem du den -fast Switch nicht benutzt. Dadurch gehen weniger Beleuchtungsinformationen verloren und die Lightmaps sind sauberer. Allerdings erhöht sich die Compilezeit deutlich.

Die Switches des Build Menüs anpassen

Hinweis: Es scheint derzeit nicht möglich zu sein, im NetRadiant neue Einträge im Build Menü zu erstellen. Im GtkRadiant funktioniert dies jedoch.

Um eigene Switches zu verwenden, klicke in der Werkzeugleiste des Radiants auf Build und dann auf Customize… Scrolle bis ganz nach unten und klicke doppelt auf den letzten leeren Eintrag in der Liste. Gibt dem Eintrag einen Namen, z.b. -bsp -light -fast -patchshadows. Der Name ist für den Kompiliervorgang egal und dient lediglich der Übersicht. Bestätige mit OK.

Öffne das Customize Fenster erneut und klicke deinen neu angelegten Eintrag an. Doppelklicke dann in dem weißen Feld darunter in die oberste Zeile und gib deine gewünschten Switches mit folgender Syntax an:

[q3map2] -switch „[MapFile]“

Du musst die drei Stages -meta, -vis und -light immer in separaten Zeilen schreiben, nicht hintereinander weg. Hier ein Beispiel:

Das Build Menü mit selbst konfigurierten Switches

Ein gutes Finalcompile

In meinen Tests haben sich die folgenden Switches für schöne final Compiles etabliert:

[q3map2] -meta -samplesize 8 "[MapFile]"
[q3map2] -vis -saveprt "[MapFile]"
[q3map2] -light -fast -patchshadows -bounce 5 -gamma 1.4 -dirty -dirtdepth 32 -dirtscale 3 -filter -samplesize 8 "[MapFile]"

Visueller Vergleich von unterschiedlichen -light Switches

Im Folgenden ein visueller Vergleich einiger Switches der -light Stage.

-light -fast ist das simpelste Basislevel, das du für Lichtberechnung benutzen kannst. Die runde Säule unten rechts ist ein Cylinder Patch und wirft keine Schatten, da der Switch -patchshadows fehlt.

-light -fast

Patchshadows

Mit -patchshadows wirft auch die Säule einen korrekten Schatten.

-light -fast -patchshadows

Bounce

Das Licht, das von unten rechts in die Map einfällt, ist Sonnenlicht. Nicht im Bild zu sehen ist der freie Himmel über der Box. Trotzdem ist der Beispielraum relativ dunkel. Das liegt daran, dass das Licht nur einmal projiziert wird, und nicht wie echtes Licht von den Oberflächen zurückgeworfen wird.

Durch den zusätzlichen Switch -bounce 3 wird Licht von Wänden zurückgeworfen und erhellt indirekt andere Oberflächen. Das ist auf dem folgenden Bild gut an der Wanddekoration zu sehen, die Licht auf die grüne Wand reflektiert.

-light -fast -patchshadows -bounce 3

Gamma

Der Switch -gamma 1.4 hebt die Helligkeit dunkler Bereiche deutlich an, ohne bereits Helle Bereiche zu stark auszubrennen. Jedoch hat das Bild jetzt an Kontrast verloren.

-light -fast -patchshadows -bounce 3 -gamma 1.4

Dirty

-dirty dunkelt aufeinandertreffende Kanten und Fugen ab und bringt dadurch Kontraste zurück.

-light -fast -patchshadows -bounce 3 -gamma 1.4 -dirty

Die Schattenberechnung von -dirty entfernt sich standardmäßig 128 Units von ihrem Zentrum (also etwa einer Kante wie unten am Boden in dem rot beleuchteten Kasten), bis sie Oberflächen nicht weiter abdunkelt. Dadurch werden auch große Teile des Bodens dunkler – die Nischen würde jedoch schon reichen.

Deshalb kannst du -dirtdepth 32 verwenden, um den Radius auf 32 Units zu begrenzen. Vorerst sieht man von dieser Änderung noch nicht allzu viel, anscheinend wird nur die grüne Wand rechts wieder etwas heller.

-light -fast -patchshadows -bounce 3 -gamma 1.4 -dirty -dirtdepth 32

Etwas offensichtlicher wird der Effekt von -dirty, wenn du die erzeugten Schatten noch dunkler erscheinen lässt. Für dreimal dunklere Schatten benutzt du -dirtscale 3. Dadurch lassen sich sehenswerte Kontraste erzeugen.

-light -fast -patchshadows -bounce 3 -gamma 1.4 -dirty -dirtdepth 32 -dirtscale 3

Filter

-filter zeichnet harte Licht- und Schattenkanten weicher und reduziert die unschöne Zackenbildung der diagonalen Schatten auf der Rückwand. Allerdings haben die Schatten jetzt auch an Kraft verloren und sind deutlich unschärfer als vorher.

-light -fast -patchshadows -bounce 3 -gamma 1.4 -dirty -dirtdepth 32 -dirtscale 3 -filter

Samplesize

Verwende -samplesize 8 in der -meta und -light Stage, um die Lightmap zu schärfen. Der Standardwert von -samplesize ist 16. Der Compiler benutzt diesen Wert, wenn -samplesize nicht explizit angegeben wird. -samplesize muss immer sowohl in der -meta, als auch in der -light Stage angegeben werden.

Zwar erhöht -samplesize 8 die Compilezeit merklich, aber die Licht- und Schattenkanten sind deutlich schöner.

-light -fast -patchshadows -bounce 3 -gamma 1.4 -dirty -dirtdepth 32 -dirtscale 3 -filter -samplesize 8

Weglassen von -fast für finale Builds

Du kannst die Qualität noch weiter durch Weglassen des -fast Switches erhöhen. Da in diesem Fall weniger Lichtinformationen in den -bounce Berechnungen verloren gehen und die Map dadurch insgesamt etwas heller wird, kannst du -gamma von 1.4 auf 1.2 reduzieren.

-light -patchshadows -bounce 3 -gamma 1.2 -dirty -dirtdepth 32 -dirtscale 3 -filter -samplesize 8

Die Farben sind satter und die Übergänge von Licht und Schatten sauberer. Die Testmap kann den vollen Umfang der Unterschiede nicht zeigen, deshalb hier noch ein anderes Vergleichsbild.

Vergleich von -light und -light -fast

Besuche die Quake 3 Mapping Tutorial Hauptseite für weitere Tutorials.

Nach oben scrollen