Startseite
Zurück Übersicht
Vis Leafgroups
Jeder, der schon einmal sehr große Maps erstellt hat, ist sicherlich an einen Punkt gekommen, wo die FPS in
den Keller gehen und das bekannte Ruckeln anfängt. Besonders intensiv macht sich dies beim vielen setzen von
Bäumen und Büschen bemerkbar oder auch bei einer sehr Detailreichen Map.

Hier behandeln wir das setzen von Vis - Leafgroups und dehren Auswirkung in unserer Map.
Was sind Vis - Leafgroups ?

Die Vis - Leafgroups sind Brushes, die mit der Textur Vis versehen werden und dann zu einem Vis - Leafgroup
umgewandelt werden. Mit diesen Vis - Leafgroup kann man bestimmte Teile einer Map ausblenden. Alles was sich
in den Vis - Leafgroups befindet, wird von der Engine nicht mitberechnet und erhöt somit unsere FPS. Hiebei
müssen wir aber einen Vis - Leafgroup als "Startbrush" und einen Vis - Leafgroup als "Zielbrush" setzen. Also zwei
Vis - Leafgroups.

Was bewirken Vis - Leafgroups ?

Um dies einfacher zu erklären, nennen wir einfach die benötigten Vis - Leafgroups ,

Startbrush ( solange der Player in diesen Brush steht, wird alles im Endbrush nicht mitberechnet )

und

Zielbrush ( alles was in diesen Brush mit eingeschlossen ist, wird nicht mitberechnet )

Solange sich der Player im Startbrush befindet wird alles im Zielbrush nicht mitberechnet. Verlässt der Player den
Startbrush, wird alles im Zielbrush berechnet und auch dargestellt.

Was muss ich beim setzen von Vis Leafgroups beachten ?

- Die Vis - Leafgroups, also Start - und Endbrush müssen so weit auseinander sein, das der Player beim verlassen
des Startbrushes nicht das plötzliche Einblenden ( aufpoppen ) aller Mapteile sieht, die sich im Zielbrush befinden.

- Die Vis - Leafgroups, also Start - und Endbrush müssen, z.B. bei kleineren Maps, so angeordnet sein das der
Player nicht unmittelbar in den Endbrush reinläuft oder ihn sogar sehen kann. Hier sollte z.B. eine Trennwand
vorhanden sein. Oder es wird ein verwinkelter Gang gebaut, so das der Player beim verlassen des Startbrushes die
Einblendung des Zielbrushes nicht sieht.
Beispielmap für Vis - Leafgroups
Um dies besser zu erklären, wählen wir einen Innenbereich. Dieser besteht aus zwei Räumen. Alles was sich im
Raum B befindet, soll nicht mitberechnet werden. Dort müssen wir also unseren Zielbrush setzen. Im Raum A
befindet sich unser Player. Dort platzieren wir den Startbrush. Erstellt zum Test zwei Räume, wie auf Bild 1 zu sehen
ist. Diese beiden Räume werden durch einen Gang verbunden.
Bild 1
Hier haben wir die zwei Räume bewust mit
einem verwinkelten Gang verbunden, damit der
Player beim verlassen des ersten Raumes (A)
nicht in den zweiten Raum (B) schauen kann.
Die Sicht des Players wird durch die Wände
versperrt. Wäre hier nur ein Türdurchgang,
würde der Player den Zielbrush sehen, während
er sich noch im Startbrush befindet. So würde
er in einem Luftleeren Raum ( Void ) schauen.
Also nichts sehen. Um das zu verhindern,
haben wir eine kleine Schleuse ( Gang )
gebaut.
Ihr könnt auch etwas anderes bauen, nur solltet ihr auf die wichtigen Punkte achten, die schon weiter oben
erklärt wurden.

Der Test vor dem setzen der Vis - Leafgroups

Um die Wirkung der FPS später in der Map besser testen zu können, setzt bitte im Raum B mehrere Bäume
oder Büsche. Diese brauchen nämlich viel an Berechnung und man merkt schnell den Unterschied. Compilt
eure Map einmal und startet diese. Wenn ihr die FPS Anzeige noch nicht eingeschaltet habt, führt folgende
Schritte aus:

- starte deine Map
- Öffne deine Console mit der Taste ( ^ ) und gibt folgendes ein:
fps1
- bei nochmaliger eingabe von fps1 wird es wieder deaktiviert.

Schau von eurem Playerstartpunkt in Richtung des Raumes B und merkt euch die Zahl der FPS. Jetzt haben
wir einen Vergleichswert, wenn wir unsere Vis - Leafgroups gesetzt haben.
Setzen von Vis - Leafgroups
Zuerst zieht ihr einen Brush im Raum A, der den kompletten Raum ausfüllt und dessen Inhalt mit einschließt. Lade
die Common Texturen über
Texture -----> Common und belege diesen Brush mit der Texture Vis.

Lass diesen Brush selectiert und wandel ihn in einem Vis - Leafgroup um.

Rechtsklick ---------> Vis ---------> leafgroup

Jetzt habt ihr den ersten Leafgroup erstellt. Kopiert diesen und setzt ihn in den Raum B.

Jetzt haben wir in jeden Raum einen Vis - Leafgroup Brush. Nun müssen wir ihnen nur die Funktionen zuteilen,
welcher der Start - und Endbrush ist.

Selectiert zuerst den Brush in Raum A und dannach den Brush in Raum B. Wenn beide selectiert sind, drückt die
Tasten
Strg + K
Jetzt sehen wir eine Line. Die beiden Vis - Leafgroups wurden nun die Funktionen zugewiesen und miteinander
verbunden. Der Pfeil der Linie sollte jetzt vom Startbrush ( Raum A ) zum Zielbrush ( Raum B ) zeigen. Außerdem
sollte der Zielbrush blau eingefärbt sein. Siehe Bild 2

Ihr könnt dies auch später wieder erkennen. Denn der Zielbrush, in dem nichts berechnet werden soll, ist immer blau
eingefärbt. Wichtig ist nur die Reihenfolge.

Zuerst immer den Vis - Brush selectieren, von dem aus die FPS reduziert werden soll. Dann erst den Zielbrush.
Bild 2
Der Zielbrush ist blau. Die Linie zeigt immer
vom Startbrush zum Zielbrush.
Jetzt wird alles im Zielbrush ( Raum A ) nicht
mitberechnet, solange sich der Player im
Startbrush ( Raum B ) befindet.
Wenn ihr das Entitymenü von dem Vis -
Leafgroups öffnet, werden hier targetname und
target mit der entsprechenden Nummer ( Value )
automatisch vergeben.

Zielbrush:
targetname
mv1

Startbrush:
target
mv1
An diesen Beispiel könnt ihr noch einmal sehen, wie wichtig die richtige Platzierung der Vis - Brushes ist. Der Player
verlässt in diesen Beispiel den Raum A durch den Gang und es wird alles im Raum B wieder mitberechnet. So sieht
der Player nichts vom Ein - und Ausblenden der Mapteile. Außer natürlich an das eventuelle absacken der FPS.
Setzen und verbinden mehrerer Vis - Leafgroups
Natürlich ist es auch möglich vom Playerstandort ( Startbrush ) gleich mehrere Mapteile auszublenden. Hiezu
erstellen wir zwei weitere Vis - Leafgroups wie oben schon beschrieben und setzen sie an den Ort unserer Wahl.

Wir bleiben bei unserem obigen Beispiel und setzen einfach links und rechts zwei neue Visbrushes.
Jetzt wieder zuerst den Startbrush ( Raum A ) selectieren und nacheinander zwei neuen Visbrushes.
Das Ergebnis sehen wir im Bild 3
Bild 3
Nun zeigen alle Linien vom Startbrush weg
und kennzeichnen so die Zielbrushes, die
nicht mitberechnet werden.
Im Entitymenü vom Zielbrush wurden nun
unter target die neuen Value - Werte
hinzugefügt. In diesen Falle sieht das dann
so aus............

Key
target

Value
mv1 t1 t2

Die Value Parameter wurden um den
Visbrush t1 und t2 erweitert. So erkennt ihr
auch immer, mit welchem Vis - Leafgroups
euer Startbrush verbunden ist.
Tipp:

- Die Vis - Leafgroups machen sich erst im Game bemerkbar, wenn ihr eure Map auf Final Compilet.
- Wenn ihr den MBuilder unter Vis Option zusätzlich auf
-verbose stellt, bekommt ihr eine zusätzliche
Textausgabe im Compilefenster angezeigt. Dies sieht ungefähr wie folgt aus:

cannsee xxxxxx nightsee xxxxx

die xxxxx sind in diesen Falle Koordinaten von Brushes in der Map, die der MBuilder beim Compilen gegeneinander
aufrechnet. Also welcher Bereich sichbar ist und welcher nicht. Aber Vorsicht !! Bei größeren Maps kann dies unter
Umständen zu etwas längeren Compilezeiten führen. Siehe hierzu auch unter BSP nach.

Eine andere Variante, einige FPS in unserer Map zu sparren, findet ihr unter Hint - Portale.