Skybox: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (Formatierung)
()
Zeile 1: Zeile 1:
 +
== 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]].<br>
 
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]].<br>
 
Sobald man sich in einer Szene jedoch frei bewegen kann, entstehen mehrere Probleme.  
 
Sobald man sich in einer Szene jedoch frei bewegen kann, entstehen mehrere Probleme.  
Zeile 6: Zeile 8:
  
 
Im Prinzip ist das Problem recht leicht zu lösen. <br>
 
Im Prinzip ist das Problem recht leicht zu lösen. <br>
Für die Darstellung der Umgebung nutzt man einen einfachen Würfel (=Skybox), dessen 6 Seiten mit jeweils einer Textur versehen werden. Auf die Oberseite projiziert man den Himmel und an die Unterseite den Boden. Die 4 anderen Seiten stehen für die jeweiligen Himmelsrichtungen.
+
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°C 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 [[Tiefenpuffer|Depthbuffer]] löscht, erreicht man, dass die Skybox anschließend immer an den Stellen verdeckt wird, wo sich noch andere [[Fragment|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.
 
Wenn man nun die Skybox zuerst zeichnet und anschließend den [[Tiefenpuffer|Depthbuffer]] löscht, erreicht man, dass die Skybox anschließend immer an den Stellen verdeckt wird, wo sich noch andere [[Fragment|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.
  
Zeile 13: Zeile 15:
 
Skyboxen können mit verschiedenen Programmen wie z.B. [[http://www.planetside.co.uk/terragen/|Terragen]] erzeugt werden.
 
Skyboxen können mit verschiedenen Programmen wie z.B. [[http://www.planetside.co.uk/terragen/|Terragen]] erzeugt werden.
  
'''Anmerkung:'''
+
<br>
@SoS: Vielleicht könntest Du hier noch ein Bild einer aufgeklappten Skybox beisteuern. Ich denke da an das aus deinem Tutorial.
+
== Beispiel ==
 +
----
 +
[[Bild:Skybox.jpg]]<br>
 +
Obiges Beispiel zeigt alle sechs Seiten dir für eine statische Skybox benötigt werden, inklusive ihrer entsprechenden Koordinatenachsen.
 +
 
 +
<br>
 +
== Siehe auch ==
 +
----
 +
[[Skysphere]], [[Skydome]]
 +
 
 +
<br>
 +
== Weiterführende Links ==
 +
----
 +
[http://www.delphigl.de/tutorials/skybox_de.html Skybox Tutorial (Erstellung und Nutzung)]

Version vom 23. Juli 2004, 00:01 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°C 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.

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 dir für eine statische Skybox benötigt werden, inklusive ihrer entsprechenden Koordinatenachsen.


Siehe auch


Skysphere, Skydome


Weiterführende Links


Skybox Tutorial (Erstellung und Nutzung)