Ray Tracing: Unterschied zwischen den Versionen
Aus Das Sopra Wiki
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| (Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
| Zeile 25: | Zeile 25: | ||
Um die Schnittpunkte von Strahlen und Objekten zu berechnen werden in XNA standardmäßig lediglich Bounding Volumes verwendet. Zur Annäherung komplexerer Objekte kann es dabei notwendig werden die Form eines Objekts über mehrere Bounding Volumes zu definieren. Damit zur Berechnung des Schnitts mit einem solchen Objekt nicht immer direkt alle Teilvolumes auf einen Schnittpunkt getestet werden müssen kann man eine Bounding Volume Hierarchie als Object Partitioning verwenden. Dabei wird zunächst ein Bounding Volume welches das Modell komplett umfasst auf einen Schnittpunkt geprüft und nur wenn der Strahl dieses Volume schneidet werden alle Teilvolumes in der nächsten Hierarchie-Ebene auf einen Schnitt getestet um die Schnittberechnung genauer zu machen. Wenn der Strahl das umgebende Volume nicht schneidet kann man sich dagegen die Berechnung der Schnittpunkte aller Volumes in der nächsten Hierarchie sparen und man kann das Objekt direkt mit nur einem Schnittpunkttest ausschließen. | Um die Schnittpunkte von Strahlen und Objekten zu berechnen werden in XNA standardmäßig lediglich Bounding Volumes verwendet. Zur Annäherung komplexerer Objekte kann es dabei notwendig werden die Form eines Objekts über mehrere Bounding Volumes zu definieren. Damit zur Berechnung des Schnitts mit einem solchen Objekt nicht immer direkt alle Teilvolumes auf einen Schnittpunkt getestet werden müssen kann man eine Bounding Volume Hierarchie als Object Partitioning verwenden. Dabei wird zunächst ein Bounding Volume welches das Modell komplett umfasst auf einen Schnittpunkt geprüft und nur wenn der Strahl dieses Volume schneidet werden alle Teilvolumes in der nächsten Hierarchie-Ebene auf einen Schnitt getestet um die Schnittberechnung genauer zu machen. Wenn der Strahl das umgebende Volume nicht schneidet kann man sich dagegen die Berechnung der Schnittpunkte aller Volumes in der nächsten Hierarchie sparen und man kann das Objekt direkt mit nur einem Schnittpunkttest ausschließen. | ||
Wie bereits erwähnt wurde ist es auch möglich in XNA ein Ray Tracing auf Genauigkeit der Triangles der Modelle zu implementieren. Da der Schnittpunkt Test eines Strahls mit einem Dreieck relativ langsam ist und ein Modell für gewöhnlich aus relativ vielen Triangles besteht ist hierbei die Verwendung eines Object Partitionings in Form einer Bounding Volume Hierarchie, bei der sich die Triangles der Modelle erst auf der untersten Hierarchiestufe befinden, zwingend erforderlich | Wie bereits erwähnt wurde ist es auch möglich in XNA ein Ray Tracing auf Genauigkeit der Triangles der Modelle zu implementieren. Da der Schnittpunkt Test eines Strahls mit einem Dreieck relativ langsam ist und ein Modell für gewöhnlich aus relativ vielen Triangles besteht ist hierbei die Verwendung eines Object Partitionings in Form einer Bounding Volume Hierarchie, bei der sich die Triangles der Modelle erst auf der untersten Hierarchiestufe befinden, zwingend erforderlich. | ||
=== Wichtige Hinweise zum Umgang mit Beschleunigungsstrukturen === | === Wichtige Hinweise zum Umgang mit Beschleunigungsstrukturen === | ||
| Zeile 34: | Zeile 34: | ||
[[Kategorie:Begriffe]] | [[Kategorie:Begriffe]] | ||
[[Kategorie:MS01]] | |||
[[Kategorie:MS02]] | |||
[[Kategorie:MS03]] | |||
[[Kategorie:MS04]] | |||
