Dieses Tutorial beschreibt, wie ein eigener 2D-Sky aus Photos für Half-Life 2 mit kostenloser Freeware erstellt werden kann. Das Ergebnis kann hochauflösend sein, hat aber keinen Boden und nur einen einfarbigen Himmel. Das Tutorial ist für fortgeschrittene.
Benötigt wird ein beliebiger Rechner, wobei ein schnellerer Prozessor und größerer Arbeitsspeicher kürzere Wartezeiten erzeugen können. Benötigt wird Software für
außerdem noch
und Wissen über das erstellen von Materials in Half-Life 2.
Ich gehe davon aus, dass du weißt, wie du deine Kamera auf einem Stativ benutzt. Die Umgebung muss natürlich rein optisch für eine Skybox geeignet sein. Es muss jetzt eine Photoserie erstellt werden, welche die gesamte Umgebung beinhaltet. Folgendes muss beachtet werden
Autostitch kann jetzt die einzelnen Bilder in ein einzelnes equirectangulares Panoramabild umwandeln. In den Optionen sollten folgende Einstellungen vorgenommen werden
Das zusammengesetzte Panoramabild hat links und rechts die von der Aufnahme überlappenden Bereiche, die jetzt stören. Sie müssen abgeschnitten werden. Das kann mit dem GIMP über Zuschneiden oder mit Irfanview über die Batchkonvertierungsfunktion Freistellen bewerkstelligt werden.
Die schwarzen Ränder unten können bleiben, wo sie sind. Der gesamte obere Bereich muss aber eine einheitliche Farbe bekommen. Mit dem GIMP sollte es möglich sein, der Oberkante des Bildes ein einheitliches Blau (oder grau oder welche Farbe dein Himmel hat) zu geben. Mit verminderter Deckkraft des Pinsels oder der Verblassen-Funktion kann ein weicher Übergang erzeugt werden. Ich habe diesen Schritt später gemacht. Es ist jedoch bequemer, es an dieser Stelle zu tun.
In Pano2QTVR muss jetzt ein neues Projekt erstellt werden. Pano2QTVR wird hier nicht für seinen eigentlichen Zweck genutzt. Im ersten Registerkartendialog wird die Möglichkeit angeboten, ein equirectangulares Panorama in ein Kubisches zu verwandeln. Das TIF-Format ist qualitätshalber. Dies soll jetzt geschehen. Hier kann ausgewählt werden, welche auflösung jedes der sechs Skyelemente haben soll. Soll ein hochauflösender 2D-Sky erzeugt werden, kann hier schon eine Größe 2048 Pixeln für jede Seite ausgewählt werden. Die Einstellung „Auto“ wird eine qualitativ optimale Größe auswählen. Die Bilder können später noch mit Irfanview per Batchkonvertierung umgewandelt werden. Pano2QTVR erzeugt einen kubischen Sky mit sechs Elementen: Vier für das Panorama und jeweils eines für Decke und Boden.
Ein Panorama-Element enthält in seinem Zentrum die Stelle, an der die Enden des von autostitch erzeugten Panoramabildes lagen. Hier kann eine vertikale Verwerfung auftreten. Mit dem GIMP und etwas Können im Umgang mit dem Kopierstempel, Verwischen und Blur kann diese Verwerfung retuschiert werden. Wenn in Pano2QTVR die automatische Auflösung gewählt wurde und die Bilder verkleinert werden sollen, kann man sich hier kleine Fehler leisten.

Die schwarzen Bereiche im Himmel können jetzt die vorhin verwendete Einheitshimmelfarbe bekommen. Ebenso wird die Decke des Skies mit der einheitlichen Farbe getüncht.

In meinem Beispiel kann man noch sehen, dass ich den Himmel später einheitlich gefärbt habe, so sind diese hässlichen hellblauen Schnitte nach oben entstanden.
Ich gehe an dieser Stelle davon aus, dass es kein Problem darstellt, die Bilder in Environment Maps umzuwandeln.
Half-Life 2 verwendet für die Seiten des Skies nicht die Suffixe 0 bis 5 sondern FT (front), LF (left), BK (back), RT (right), UP (up) und DN (down). DN bekommt das einfarbig schwarze Bild zugewiesen, es wird der Boden sein. UP wird der Himmel mit Einheitsfarbe werden. Cubefache 0 wird zu RT, 1 zu FT, 2 → LF und **3 → BK*. Die so erzeugten VTFs werden als skyname_suffix.vtf im Ordner materials\skybox des Modverzeichnises abgelegt. Falls der Sky ein hochauflösender ist, dennoch aber in Multiplayer-Maps Anwendung finden soll, muss der nächste Hinweis befolgt werden.
Für eine einfache Skybox reicht je eine VMT für die Cubefaces. Hier ein Beispiel
//Inhalt von "materials/skybox/skyname_suffix.vmt"
"UnlitGeneric"
{
"$basetexture" "skybox/skyname_suffix"
"$nofog" 1
"$ignorez" 1
}
Damit ein hochauflösender Sky auch in Multiplayermaps zum Einsatz kommen kann, sollte sich der Mapper des Fallbacks bedienen. Ein hochauflösender Sky mit 2048er Cubefaces verballert 6*2048²*24/8000000, also 75 MB Graphikspeicher. Das ist schlecht für Besitzer einer Graphikkarte, die nur 64 MB hat. Eine noch schön anzusehende Skybox mit 1024er Cubefaces verbraucht noch vertretbare 15 MB, eine 512er nur 5 MB. Nach der ganzen Arbeit sollen aber möglichst alle Leute, die gute Graphikkarten haben, den high-quality-Sky auch bewundern können.
Der Trick ist folgender: Es werden zwei (oder drei) Cubeskies in unterschiedlichen Auflösungen abgespeichert, zum Beispiel 512, 1024 (und 2048?). Dennoch wird es nur sechs VMTs geben, die jetzt aber so aussehen:
//Inhalt von "materials/skybox/skyname_suffix.vmt"
"UnlitGeneric"
{
"$basetexture" "skybox/skyname_suffix_512" //512er Auflösung als Anfang
"$nofog" 1
"$ignorez" 1
//Erkennt Half-Life 2 eine DirectX9-Kompartible Graphikkarte,
//die viel Leistung und vermutlich auch viel Graphikspeicher hat,
//kann die high-quality-Skybox verwendet werden:
"UnlitGeneric_dx9"
{
"$basetexture" "skybox/skyname_suffix_2048"
}
//Auch Zwischenunterscheidungen sind möglich:
"UnlitGeneric_dx8"
{
"$basetexture" "skybox/skyname_suffix_1024"
}
}
Half-Life 2 prüft nicht wirklich die DirectX-Funktionen der Graphikkarte. Valve hat intern eine Liste erstellt, sodass die optimale Performance erreicht wird.
Der Sky hat leider nur einen einfarbigen Himmel. Dieser kann natürlich mit bewegten Wolken wesentlich aufgemotzt werden.