Skybox: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (Der Kateogrie Technik oder Algorithmus zugeordnet)
K (Der Kategorie Anleitung zugeordnet)
Zeile 31: Zeile 31:
 
[http://www.delphigl.de/tutorials/skybox_de.html Skybox Tutorial (Erstellung und Nutzung)]
 
[http://www.delphigl.de/tutorials/skybox_de.html Skybox Tutorial (Erstellung und Nutzung)]
  
[[Kategorie:Technik_oder_Algorithmus]]
+
[[Kategorie:Anleitung]] [[Kategorie:Technik_oder_Algorithmus]]

Version vom 23. September 2005, 08:58 Uhr

Konzept

Das Wort Sky kommt aus dem Englischen und bedeutet Himmel. Skyboxen werden verwendet, um die Umgebung in 3D-Szenen darzustellen. Dazu zählen z.B. Landschaften im Hintergrund sowie Sonne, Himmel und Wolken. Da diese Orte nur als Kulisse dienen und für den Programmablauf meist ohne Bedeutung sind, verwendet man für deren Darstellung einfache Texturen.
Sobald man sich in einer Szene jedoch frei bewegen kann, entstehen mehrere Probleme.

  1. Zum einen müssen die Texturen so an einander gefügt werden, dass man den Trick nicht durchschaut und erkennt, dass es sich lediglich um Texturen handelt,
  2. zum anderen muss sich die Textur stets in gleicher Entfernung vom Beobachter befinden, damit man sich ihr nicht nähern kann.
  3. Obendrein darf die Textur jedoch andere Szenenteile, die erreichbar sind, nicht verdecken.

Im Prinzip ist das Problem recht leicht zu lösen.
Für die Darstellung der Umgebung nutzt man einen einfachen Würfel (=Skybox), dessen 6 Seiten mit jeweils einer Textur versehen werden, wobei jede Seite des Würfels einen Umgebungsausschnitt mit einem Projektivwinkel von 90° zeigt, um so quasi ein Panorame der Umgebung zu bilden. Auf die Oberseite projiziert man den Himmel und an die Unterseite den Boden. Die 4 anderen Seiten stehen für die jeweiligen Himmelsrichtungen. Wenn man nun die Skybox zuerst zeichnet und anschließend den Depthbuffer löscht, erreicht man, dass die Skybox anschließend immer an den Stellen verdeckt wird, wo sich noch andere Fragmente der Szene befinden. Dies ist logisch, da gegenüber den Fragmenten der Skybox, die bereits im Framebuffer stehen, alle anderen Fragmente den Tiefentest bestehen.

Die sechs Texturen können alternativ auch in einer Cubemap gespeichert werden und dann nur die Flächen, die speziell als Himmel markiert sind, mit dieser Cubemap gezeichnet werden. Falls die SkyBox immer nur ausschnittweise zu sehen ist, kann dadurch das Rendern vereinfacht werden und das Löschen des Depthbuffer entfällt.

Eine Skybox erhält noch wesentlich mehr Realismus, wenn man sie durch dynamische Effekte, wie z.B. Wolken, die sich bewegen oder eine Sonne, die auf- und untergeht, erweitert.

Skyboxen können mit verschiedenen Programmen wie z.B. [[1]] erzeugt werden.


Beispiel

Skybox.jpg
Obiges Beispiel zeigt alle sechs Seiten die für eine statische Skybox benötigt werden, inklusive ihrer entsprechenden Koordinatenachsen.


Siehe auch

Skysphere, Skydome


Weiterführende Links

Skybox Tutorial (Erstellung und Nutzung)