In Half-Life 2 benötigen viele Materialien Informationen über die Reflexionen, um richtig zu funktionieren. Das geschieht mithilfe einer Cubemap. Durch diese Cubemap wird eine 360°-Ansicht der Umgebung gemacht, welche dann auf die Materialien übertragen werden. Somit können sie die Umgebung genaustens reflektieren. Auch Npc's oder andere Entities werden von der Cubemap beeinflusst.
In Hammer gibt es ein Entity namens env_cubemap. Dieses werden wir für die Cubemap benötigen. Da es unterschiedliche Anwendungsmöglichkeiten gibt, musst du bei den unterschiedlichen Möglichkeiten andere Abstände zwischen den Objekten wählen:
Wenn du alle deine Cubemaps gesetzt hast, musst du nurnoch kompilieren und deine Map starten. Wenn sie fertig geladen wurde, gibst du in der Console buildcubemaps ein. Je nachdem, wie schnell deine Grafikkarte ist, geht der laufende Prozess länger oder kürzer. Das kann manchmal nur mehrere Sekunden oder aber Minuten dauern, das hängt davon ab, wie komplex deine Map gebaut ist. Nachdem der Prozess durchgelaufen ist, musst du noch deine Map neustarten, dann sind alle Cubemaps funktionstüchtig.
Ansonsten setzt man sie dort, wo ein Unterschied in der Umgebung eine solche erfordert. Das bedeutet: Cubemaps bilden quasi einen Schnappschuss der Umgebung und dieser wird dann als Spiegelung verwendet. Deswegen sollte die Cubemap-Dichte vor allem an Grenzen, wo sich die Umwelt stark verändert erhöht sein:
Was für Lichtverhältnisse gilt bezieht sich nicht ausschließlich auf die gesetzten Lights, sondern auch auf die allgemeine Farbgebung der Texturen in der Umgebung.
Wenn einer dieser 3 Aspekte zutrifft, sollte man eine Cubemap spendieren.
Andererseits kann man die Cubemapdichte zu performancezwecken verringern, wenn man ein großes Außenareal hat, und die nächste Oberfläche mehr als 1024 Untis (Boden ausgenommen!) entfernt ist.
Immer dran Denken: Cubemaps werden nicht nur auf Oberflächen im Level dargestellt, sondern auf allen Polygonen dargestellt, auf denen ein Material mit einer Specularmap (=spiegelnd) liegt. Das können Brushes und alle Arten von Modellen sein, also auch Spieler-Models und Waffen.
Wenn du dir nicht sicher bist, ob die Cubemap richtig funktioniert, kannst du mithilfe des Commands impulse 81 (sv_cheats 1 muss aktiviert sein!) mehrere Kugeln einschalten, um die Reflexionen zu überprüfen.
Innerhalb des env_cubemap gibt es eine Einstellung, wie groß die Auflösung sein soll. Während ein größerer Wert natürlich detaillierter wirkt, frisst er auch einiges mehr an Performance. Für die normalen Anwendungsgebiete sollte man die Standardoption beibehalten.
Auch nicht ratsam ist es, mehrere Cubemaps in unmittelbarer Nähe zu plazieren, weil das Sprünge bei den Reflexionen geben kann, was sehr unschön wirkt. Am besten ist es, man plaziert eine Cubemap in der Mitte eines Raums, somit wird das Ergebnis schöner als wenn man mehrere Cubemaps in dem Raum verteilt.