Skybox
Die einfachste Darstellung eines Himmels erreicht man mit Hilfe einer so genannten Skybox. Bei dieser Technik werden Texturen, auf denen ein Himmel abgebildet ist, einfach auf die Innenseiten eines Würfels gerendert. Wenn die Skybox nun die Kamera und die Welt umgibt, erzeugt sie die Illusion eines Himmels.
Erste Überlegungen
Aus
der großen Entfernung des Himmels ergeben sich dabei allerdings einige
Besonderheiten. Würde man einfach versuchen die Skybox so groß zu
machen, dass sie die ganze Welt umschließt, kommt man in Konflikt mit
der maximalen Sichtweite.
Erzeugt man nämlich die Box so groß, dass die nächste Wand genau bei
der maximalen Sichtweite liegt, dann verschwinden die Teile der Skybox,
die zu den Ecken hin laufen, hinter der maximalen Sichtweite.
Setzt man deshalb die Größe der Skybox kleiner, so dass ihre Wände auch bis in die Ecken sichtbar sind, dann jedoch schneidet die Skybox an den Stellen, die der Kamera näher kommen, wesentliche Teile der Welt ab. Dies wird besonders sichtbar, weil die Skybox das Terrain nicht kreisrund abschneidet, sondern entsprechend ihrer eigenen Form. Die Skybox wird sichtbar und damit die Illusion zerstört.
Die Lösung
Stattdessen bedient man sich einer anderen einfachen Technik:
- Zuerst muss die Skybox zum Anfang jedes Rendervorgangs so verschoben, dass die virtuelle Kamera sich genau in ihrem Mittelpunkt befindet. Dadurch entsteht für den Spieler der richtige Eindruck, dass egal wie weit er sich bewegt sich, das Himmelsbild oder Sternenbild nicht verändert. Zudem kann der Spieler so nie den Bereich des Himmels verlassen, weil er zum Beispiel zu weit über das Level hinaus läuft.
- Nun der Clou: Die Skybox wird als allererstes Element der Szene und mit ausgeschaltetem Tiefenpuffer gerendert. Der Tiefenpuffer dient dazu für alle Objekte die Tiefeninformationen zu speichern, damit nur die Objekte auch wirklich erscheinen, die in jedem Pixel der Kamera am nächsten sind. Da die Skybox jedoch sowieso in jeder Szene das am weitesten entfernt Objekt sein soll, brauchen wir diese Information nicht. Alle danach gezeichneten Objekte erscheinen nun automatisch vor dem künstlichen Himmel.
Dieses Verfahren ist für alle Himmelsarten identisch. Unterschiedlich können jedoch, die Formen der eigentlichen Himmelsobjekte sein. Die eleganteste Form sind Skydomes. Diese entsprechen quasi (Halb-)kugeln, die wie eine Käseglocke über die Spielwelt gestülpt sind. Nachteile sind hier die erhöhte Komplexität und die höhere Anzahl von Polygonen, die man benötigt, um ein rundes Objekt darzustellen.
Die von mir für die Screenshots verwendeten Himmelstexturen sind übrigens von Schiller Games.
Siehe auch: VTerrain