Die 3D-Skybox

Was ist eine 3D-Skybox?

Sicher ist Euch schon aufgefallen, dass die neuen CS Source Maps größer und weiträumiger wirken als zu CS-Zeiten, da außen um die Map herum richtige Gebäude, Türme oder Bäume stehen. Dieser Effekt wird mit der 3D-Skybox erzielt. Im Gegensatz zu einer normalen Skybox, die nur eine simple Textur enthält, kann man nämlich Brushes, Terrain mit Displacement Mapping und unter gewissen Voraussetzungen auch Models in einer 3D-Skybox unterbringen.


Wie funktioniert eine 3D-Skybox?

Im Prinzip nutzt die Source Engine für diesen Effekt nichts anderes als einen speziellen Kameraeffekt. Eine 3D-Skybox ist eine Miniwelt (1/16-Grösse), die man einfach außerhalb der echten Map aufbaut. Darin ist eine Kamera, welche die Umgebung aus der "Miniwelt" aufnimmt und diese auf die Skybox der echten Map um den Faktor 16 vergrössert projeziert. Somit entsteht der Eindruck man könne weit in die Ferne schauen, obwohl man nur durch die Skybox der normalen Map in die Miniwelt schaut. Somit ist auch logisch, warum man diesen Bereich nicht betreten kann, obwohl man den Eindruck hat, dass er direkt vor einem liegt.


Wie erstellt man eine 3D-Skybox?

1. Als Erstes plaziert man in seine normale Map ein Entity namens "sky_camera", das aussieht wie ein einfacher, blauer Würfel. Diese Skycamera muss man mit ihrer Mitte exakt an den Ursprungskoordinaten der drei Achsen also x=0, y=0, z=0 platzieren, zu erkennen an den drei bunten Pfeilen in eurer Map. Die Skycamera dient als räumlicher Referenzpunkt um die echte Map mit der Miniwelt, in die man die Objekte der 3D-Skybox baut zu synchronisieren.

2. Als nächstes markiert man alle Brushes, welche die Map begrenzen. Also meistens den Boden und die Mauern. Zusätzlich kann man noch grosse Objekte, wie z.B. Gebäude markieren, damit man später einen Anhaltspunkt für die Grössenverhältnisse hat. Zudem markieren wir die Skycamera und unsere Sonne (Environment Light), damit wir die gleichen Lichtverhältnisse erzielen.

3. Die markierten Objekte zieht man nun mit Shift aus dem Bereich der normalen Map und erzeugt somit eine Kopie.

4. Anschließend klickt man mit rechter Maustaste auf die kopierten Objekte und wählt "Transform". Im Popupfenster wählt man Scale und trägt für x, y und z jeweils 0.0625 ein.
Jetzt haben wir unsere Map nochmal als 1/16-Grosse Minimap zur Verfügung. Die Skycamera muss jetzt aus der echten Map wieder herausgelöscht werden.

5. Nun können wir uns in dieser Miniwelt an den vorhandenen Grenzen orientieren und außerhalb davon beliebig Häuser, Wiesen, Berge etc. bauen. Der Übergang darf dabei nahtlos übergehen, in dem man einfach ohne Abstand an die bisherigen Grenzen unserer Map in der Minimap anbaut. Als Faustregel für die Texturengrösse sollte man statt 0.25 in der normalen Welt 0.02 in der Miniwelt nehmen. Da Models nicht mitskalieren, müssen diese schon von vornherein auf 1/16 ihrer echten Grösse sein.

6. Hat man das Drumherum fertig, löscht man einfach alles, was man aus der normalen Map als Orientierungshilfe kopiert hat (also Boden, Mauern etc.)
Nur die Skycamera und alles was man als neue Umgebung erstellt hat bleibt. (Die Fortgeschritteneren können auch statt zu löschen für diese Objekte eine Visgroup anlegen, die sie vor dem Kompilieren auf unsichtbar schalten!)

7. Als letzten Schritt baut man noch um die Miniwelt einen abgeschlossen Würfel (Brush, hollow), der mit einer normalen Skybox-Textur belegt wird.

8. Kompilieren

9. Staunen

Wie Ihr seht, blickt Ihr nun durch die Skybox der normalen Welt in die Umgebung der Miniwelt, und von dort wiederum auf die gewöhnliche Skybox mit der Himmelstextur.

Wer mag, kann jetzt noch etwas Nebel in die Miniwelt machen, so dass die weiter entfernte Umgebung schlechter zu sehen ist, was das Ganze noch realer wirken lässt.