Bounding Volume: Unterschied zwischen den Versionen

Aus Das Sopra Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 3: Zeile 3:
Ein Bounding Volume<ref>[[wikipedia:de:Bounding_Volume|Wikipedia Artikel]] zu Bounding Volumes</ref> ist ein einfacher geometrischer Körper, der ein komplexeres Objekt umschließt.
Ein Bounding Volume<ref>[[wikipedia:de:Bounding_Volume|Wikipedia Artikel]] zu Bounding Volumes</ref> ist ein einfacher geometrischer Körper, der ein komplexeres Objekt umschließt.


Bounding Volumes werden dazu verwendet um bestimmte Tests zu beschleunigen. So kann man z.B. beim [[Ray Tracing]] zuerst den Schnitt mit den Bounding Volumes der Objekte testen, ob sie überhaupt getroffen werden können, bevor man z.B. für ein genaueres Ergebnis die einzelnen Triangel der Objekte testet. Ähnlich funktioniert dies auch für eine [[Kollisionserkennung]], wenn sich die Bounding Volumes zweier Objekte nicht schneiden, dann können auch die Objekte nicht miteinander kollidieren.
Bounding Volumes werden dazu verwendet um bestimmte Tests zu beschleunigen. So kann man z.B. beim [[Ray Tracing]] zuerst über den Schnitt mit den Bounding Volumes der Objekte testen, ob sie überhaupt getroffen werden können, bevor man z.B. für ein genaueres Ergebnis die einzelnen Triangel der Objekte testet. Ähnlich funktioniert dies auch für eine [[Kollisionserkennung]], wenn sich die Bounding Volumes zweier Objekte nicht schneiden, dann können auch die Objekte nicht miteinander kollidieren.


== Varianten ==
== Varianten ==
Zeile 9: Zeile 9:
* '''Bounding Sphere:''' Eine das Objekt umgebende Kugel (oder in 2D ein Kreis). Für Bounding Spheres gibt es in XNA die BoundingSphere [[Struct]] (Namespace ''Microsoft.Xna.Framework''). Eine Bounding Sphere wird durch ihren Center-Punkt und ihren Radius definiert. Der Vorteil von Bounding Spheres ist, dass Kollisionen sehr schnell berechnet werden können.
* '''Bounding Sphere:''' Eine das Objekt umgebende Kugel (oder in 2D ein Kreis). Für Bounding Spheres gibt es in XNA die BoundingSphere [[Struct]] (Namespace ''Microsoft.Xna.Framework''). Eine Bounding Sphere wird durch ihren Center-Punkt und ihren Radius definiert. Der Vorteil von Bounding Spheres ist, dass Kollisionen sehr schnell berechnet werden können.


* '''Bounding Box:''' Ein das Objekt umgebendes Quader (oder in 2D ein Rechteck). Der Vorteil von Bounding Boxen ist dass sie Objekte meistens genauer umschreiben als Kugeln. Bei Bounding Boxen gibts es eine Unterscheidung zwischen Axis-Aligned Bounding Boxen (AABB) und Object Oriented Bounding Boxen (OOB). AABBs orientieren sich immer an den Axen des Koorinatensystems. Definiert sind sie entsprechend durch zwei Punkte, einen mit dem maximalen x-,y- und z-Wert und einen mit dem minimalen x-,y- und z-Wert. Für AABBs gibt es in XNA die BoundingBox [[Struct]] (Namespace ''Microsoft.Xna.Framework''). OOBs orientiren sich wie der Name schon sagt direkt an ihren zugrunde liegenden Objekten. In XNA gibt es für sie standardmäßig keine Implementierung. Der Vorteil von AABBs ist dass Kollisionen wesentlich einfacher berechnet werden können, ihr Nachteil ist dafür dass sie nicht mit Objekten mitgedreht werden können sondern neu berechnet werden müssen.
* '''Bounding Box:''' Ein das Objekt umgebendes Quader (oder in 2D ein Rechteck). Der Vorteil von Bounding Boxen ist, dass sie Objekte meistens genauer umschreiben als Kugeln. Bei Bounding Boxen gibts es eine Unterscheidung zwischen Axis-Aligned Bounding Boxen (AABB) und Object Oriented Bounding Boxen (OOB). AABBs orientieren sich immer an den Axen des Koorinatensystems. Definiert sind sie entsprechend durch zwei Punkte, einen mit dem maximalen x-,y- und z-Wert und einen mit dem minimalen x-,y- und z-Wert. Für AABBs gibt es in XNA die BoundingBox [[Struct]] (Namespace ''Microsoft.Xna.Framework''). OOBs orientiren sich wie der Name schon sagt direkt an ihren zugrunde liegenden Objekten. In XNA gibt es für sie standardmäßig keine Implementierung. Der Vorteil von AABBs ist, dass Kollisionen wesentlich einfacher berechnet werden können, ihr Nachteil ist dafür dass sie nicht mit Objekten mitgedreht werden können sondern neu berechnet werden müssen.


Es gibt noch einige weitere Primitive die für Bounding Volumes verwendet werden können, doch diese beiden sind die wichtigsten.
Es gibt noch einige weitere Primitive die für Bounding Volumes verwendet werden können, doch diese beiden sind die wichtigsten.


== Bounding Volume Hierarchies (BVHs) ==
== Bounding Volume Hierarchies (BVHs) ==
Eine BVH ist prinzipiell eine räumliche Struktur (siehe [[Space Partitioning]]), allerdings überlappen sich hier die einzelnen Bereiche.


Eine BVH ist ein Baum aus Bounding Volumes. An der Wurzel des Baums befindet sich ein Bounding Volume das groß genug ist um  
Eine BVH ist ein Baum aus Bounding Volumes. An der Wurzel des Baums befindet sich ein Bounding Volume das groß genug ist um  


bla<noinclude>
to be continued ...<noinclude>
== Referenzen ==
== Referenzen ==
<references />
<references />
[[Kategorie:Begriffe]]
[[Kategorie:Begriffe]]
</noinclude>
</noinclude>

Version vom 1. Mai 2009, 20:57 Uhr



Ein Bounding Volume[1] ist ein einfacher geometrischer Körper, der ein komplexeres Objekt umschließt.

Bounding Volumes werden dazu verwendet um bestimmte Tests zu beschleunigen. So kann man z.B. beim Ray Tracing zuerst über den Schnitt mit den Bounding Volumes der Objekte testen, ob sie überhaupt getroffen werden können, bevor man z.B. für ein genaueres Ergebnis die einzelnen Triangel der Objekte testet. Ähnlich funktioniert dies auch für eine Kollisionserkennung, wenn sich die Bounding Volumes zweier Objekte nicht schneiden, dann können auch die Objekte nicht miteinander kollidieren.

Varianten

  • Bounding Sphere: Eine das Objekt umgebende Kugel (oder in 2D ein Kreis). Für Bounding Spheres gibt es in XNA die BoundingSphere Struct (Namespace Microsoft.Xna.Framework). Eine Bounding Sphere wird durch ihren Center-Punkt und ihren Radius definiert. Der Vorteil von Bounding Spheres ist, dass Kollisionen sehr schnell berechnet werden können.
  • Bounding Box: Ein das Objekt umgebendes Quader (oder in 2D ein Rechteck). Der Vorteil von Bounding Boxen ist, dass sie Objekte meistens genauer umschreiben als Kugeln. Bei Bounding Boxen gibts es eine Unterscheidung zwischen Axis-Aligned Bounding Boxen (AABB) und Object Oriented Bounding Boxen (OOB). AABBs orientieren sich immer an den Axen des Koorinatensystems. Definiert sind sie entsprechend durch zwei Punkte, einen mit dem maximalen x-,y- und z-Wert und einen mit dem minimalen x-,y- und z-Wert. Für AABBs gibt es in XNA die BoundingBox Struct (Namespace Microsoft.Xna.Framework). OOBs orientiren sich wie der Name schon sagt direkt an ihren zugrunde liegenden Objekten. In XNA gibt es für sie standardmäßig keine Implementierung. Der Vorteil von AABBs ist, dass Kollisionen wesentlich einfacher berechnet werden können, ihr Nachteil ist dafür dass sie nicht mit Objekten mitgedreht werden können sondern neu berechnet werden müssen.

Es gibt noch einige weitere Primitive die für Bounding Volumes verwendet werden können, doch diese beiden sind die wichtigsten.

Bounding Volume Hierarchies (BVHs)

Eine BVH ist ein Baum aus Bounding Volumes. An der Wurzel des Baums befindet sich ein Bounding Volume das groß genug ist um

to be continued ...

Referenzen

  1. Wikipedia Artikel zu Bounding Volumes