Diplomarbeit (*.pdf - 5,3MB) - Faculty of Computer Science ...
Diplomarbeit (*.pdf - 5,3MB) - Faculty of Computer Science ...
Diplomarbeit (*.pdf - 5,3MB) - Faculty of Computer Science ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Folglich ergibt sich für die Berechnung einer separierenden Achse folgender<br />
Ausdruck:<br />
r r<br />
T ⋅ L<br />
><br />
∑<br />
i<br />
r<br />
i<br />
a A ⋅ L +<br />
i<br />
∑<br />
i<br />
r<br />
b B<br />
i<br />
i<br />
⋅ L .<br />
Ist dieser erfüllt, so separiert L die beiden getesteten Boxen und diese<br />
überlappen sich folglich nicht.<br />
3.3.7 Primitivtest<br />
Bisher wurden lediglich Überschneidungstests zwischen Hüllvolumen betrachtet.<br />
Handelt es sich hierbei im Falle einer Überlappung um Blattknoten in der<br />
entsprechenden Hierarchie, so muss für eine exakte Kollisionserkennung eine<br />
Untersuchung der von den Volumen eingeschlossenen Geometrie durchgeführt<br />
werden.<br />
Zunächst soll analysiert werden, welche geometrischen Primitive zu erwarten<br />
sind und welche Möglichkeiten für einen gegenseitigen Überlappungstest<br />
bekannt sind.<br />
3.3.7.1 Geometrie<br />
Die Java3D – Geometrie eines Shapes besteht aus Punkten, Linien, Dreiecken<br />
oder Vierecken. Prinzipiell müssten also für alle diese Primitive Überlappungstests<br />
implementiert werden. In der vorliegenden Arbeit soll sich der<br />
Primitivtest jedoch auf Dreiecke beschränken. Grund hierfür ist, dass es sich<br />
bei den durch die FileLoader geladenen Bauteile in der Regel um<br />
dreidimensionale Objekte handelt, deren äußere Hülle durch Flächen (Dreiecke<br />
oder Vierecke) approximiert wird. Sollte es sich bei diesen Flächenstücken um<br />
Vierecke handeln, so können diese leicht trianguliert werden.<br />
Für den Schnittest zweier Dreiecke existieren eine Reihe von Verfahren. Die<br />
Literaturrecherche ergab, dass die am häufigsten Verwendung findenden<br />
Algorithmen diejenigen von [Möller97], [Held97] und [Devillers02] sind,<br />
welche im folgenden vorgestellt werden sollen.<br />
3.3.7.2 Möller<br />
[Möller97] beginnt mit der gegenseitigen Lageuntersuchung jedes Dreiecks in<br />
Bezug auf die durch das andere Dreieck aufgespannte Ebene. Liegen alle<br />
Eckpunkte jeweils im gleichen Halbraum und keiner auf der Ebene, so<br />
überlappen sich die Dreiecke nicht und der Test kann abgebrochen werden.<br />
Andernfalls schneiden die Dreiecke die Schnittgerade L der durch sie<br />
aufgespannten Ebenen (Abbildung 3-33). Ein Test der Intervalle [t3,t4]und<br />
[t1,t2] auf Überschneidungen liefert schlussendlich ein Ergebnis.<br />
61