Quake 3 Radiant – Compiler Switches und Build Menü
Last Updated on 7. January 2022 by Victor Karp
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.
Table of Contents
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.
![](https://victorkarp.com/wp-content/uploads/2011/01/26_01.jpg)
-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.
![](https://victorkarp.com/wp-content/uploads/2011/01/26_02.jpg)
-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:
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.
Patchshadows
Mit -patchshadows
wirft auch die Säule einen korrekten Schatten.
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.
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.
Dirty
-dirty
dunkelt aufeinandertreffende Kanten und Fugen ab und bringt dadurch Kontraste zurück.
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.
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.
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.
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.
![](https://victorkarp.com/wp-content/uploads/2011/09/09-light-fast-patchshadows-bounce-3-gamma-1-4-dirty-dirtdepth-32-dirtscale-3-filter-samplesize-8.jpg)
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.
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.
Besuche die Quake 3 Mapping Tutorial Hauptseite für weitere Tutorials.