ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΣΧΕ ΙΑΣΗΣ ΠΡΟΪΟΝΤΩΝ ΚΑΙ ΣΥΣΤΗΜΑΤΩΝ Αλγόριθµοι Ανίχνευσης Συγκρούσεων και Εφαρµογή σε Γεωµετρικά Μοντέλα CAD ιπλωµατική Εργασία Αρετή ηµολάκη Α.Μ: 511/2000 016 Επιβλέπων Καθηγητής: Σαπίδης Νικόλαος Τριµελής Επιτροπή: Σαπίδης Νικόλαος (Αναπληρωτής Καθηγητής) Αζαριάδης Φίλιππος (Επίκουρος Καθηγητής) Βοσινάκης Σπυρίδων (Λέκτορας) ΣΥΡΟΣ 2007
Η ολοκλήρωση αυτής της διπλωµατικής εργασίας δεν θα ήταν δυνατή χωρίς τη βοήθεια και την υποστήριξη ενός αριθµού ανθρώπων, και πρώτα από όλα των µελών της τριµελούς συµβουλευτικής επιτροπής, Ν. Σαπίδη, Αναπληρωτή Καθηγητή, Φ. Αζαριάδη, Επίκουρο Καθηγητή και Σ. Βοσινάκη, Λέκτορα. Θα ήθελα να ευχαριστήσω τον επιβλέποντα της διπλωµατικής εργασίας, Αναπληρωτή Καθηγητή Ν. Σαπίδη, για τη συνεργασία που είχαµε, τις υποδείξεις του και την επιστηµονική καθοδήγηση του. Επίσης, ευχαριστώ τον Λέκτορα Σ. Βοσινάκη, για τη συνεργασία που είχαµε, την ενθάρρυνση του και τη βοήθεια που προσέφερε στο να στηθούν οι βιβλιοθήκες ανίχνευσης συγκρούσεων και να λυθούν µια σειρά προβληµάτων. 2
Περιεχόµενα ΣΚΟΠΟΣ ΤΗΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ 7 ΕΙΣΑΓΩΓΗ 8 1 ΠΡΟΑΠΑΙΤΟΥΜΕΝΑ 10 1.1 ΣΗΜΕΙΑ ΚΑΙ ΙΑΝΥΣΜΑΤΑ...10 1.2 ΠΟΛΥΓΩΝΙΚΑ ΜΟΝΤΕΛΑ...11 1.3 ΠΟΛΥΕ ΡΑ...14 1.4 ΠΕΡΙΟΧΕΣ VORONOI...16 1.5 ΆΘΡΟΙΣΜΑ ΚΑΙ ΙΑΦΟΡΑ MINKOWSKI...17 1.6 ΘΕΩΡΗΜΑ ΚΑΡΑΘΕΟ ΩΡΗ...18 1.7 ΣΥΝΟΛΟΘΕΩΡΗΤΙΚΟ ΜΟΝΤΕΛΟ (CONSTRUCTIVE SOLID GEOMETRY)...19 2 ΒΑΣΙΚΕΣ ΜΕΘΟ ΟΛΟΓΙΕΣ ΑΝΙΧΝΕΥΣΗΣ ΣΥΓΚΡΟΥΣΕΩΝ 21 2.1 ΟΡΙΑΚΟΙ ΌΓΚΟΙ...22 2.1.1 ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΤΩΝ ΟΡΙΑΚΩΝ ΌΓΚΩΝ...23 2.1.2 Ευθυγραµµισµένα οριακά κουτιά ως προς άξονα (AABBs)...24 2.1.3 Σφαίρες...27 2.1.4 Προσανατολισµένα οριακά κουτιά (OBBs)...28 2.1.5 Ηµιχώροι και Κυρτά Περιβλήµατα...30 2.1.5.1 k-dops (πολύτοπα διακριτού προσανατολισµού)...31 2.1.5.2 Κυρτό Περίβληµα...32 2.2 ΙΕΡΑΡΧΙΕΣ ΟΡΙΑΚΩΝ ΌΓΚΩΝ...33 2.2.1 Επιθυµητά χαρακτηρίστηκα BVH...34 2.2.2 Κόστος Υπολογισµού...35 2.2.3 Βαθµός δέντρου...36 2.2.4 Στρατηγικές οικοδόµησης για τη κατασκευή ιεραρχίας...37 2.3 ΠΑΡΑ ΕΙΓΜΑΤΑ ΙΕΡΑΡΧΙΩΝ ΟΡΙΑΚΩΝ ΌΓΚΩΝ...38 2.3.1 έντρα ΟΒΒ...38 2.3.2 έντρα ΑΑΒΒ...39 2.3.3 έντρο Σφαιρών...41 2.3.4 k-dop Trees...41 2.4 ΣΥΓΧΩΝΕΥΣΗ ΟΡΙΑΚΩΝ ΌΓΚΩΝ...42 2.4.1 Συγχώνευση ύο ΑΑΒΒ...42 2.4.2 Συγχώνευση ύο Σφαιρών...42 2.4.3 Συγχώνευση ύο ΟΒΒ...43 2.4.4 Συγχώνευση ύο k-dops...43 2.5 ΙΑΜΕΡΙΣΗ ΧΩΡΟΥ...43 2.5.1 Οµοιόµορφα πλέγµατα...45 2.5.2 έντρα...46 2.5.2.1 Octree...47 2.5.2.2 K-d Tree...47 2.6 BSP TREE...48 3 ΑΛΓΟΡΙΘΜΟΙ ΑΝΙΧΝΕΥΣΗΣ ΣΥΓΚΡΟΥΣΕΩΝ 53 3.1 ΑΛΓΟΡΙΘΜΟΣ GILBERT-JOHNSON-KEERTHI...54 3.2 ΑΛΓΟΡΙΘΜΟΣ CHUNG-WANG...58 3.3 ΑΛΓΟΡΙΘΜΟΣ V-CLIP...60 3.4 ΓΡΑΜΜΙΚΟΣ ΚΑΙ ΤΕΤΡΑΓΩΝΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ...61 3.4.1 Γραµµικός Προγραµµατισµός...61 3.4.2 Τετραγωνικός Προγραµµατισµός...62 4 ΒΙΒΛΙΟΘΗΚΕΣ ΑΝΙΧΝΕΥΣΗΣ ΣΥΓΚΡΟΥΣΕΩΝ 64 4.1 Βιβλιοθήκη I Collide...65 4.2 Βιβλιοθήκη RAPID...65 4.3 Βιβλιοθήκη V Collide...66 3
4.4 Βιβλιοθήκη SOLID...66 4.5 ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΤΡΕΧΟΥΣΑ ΜΕΘΟ ΟΛΟΓΙΑ ΣΥΓΚΡΙΣΗΣ ΒΙΒΛΙΟΘΗΚΩΝ...67 4.5.1 Μέθοδος Σύγκρισης Βιβλιοθηκών...67 4.5.2 Αποτελέσµατα Συγκρίσεων...70 4.5.2.1 Σύγκριση Complex - Complex...70 4.5.2.2 Σύγκριση Complex Simplex1...72 4.5.2.3 Σύγκριση Complex Simplex2...73 4.5.2.4 Σύγκριση σε Περιοχές Στενής Εγγύτητας...75 4.6 ΣΥΜΠΕΡΑΣΜΑΤΑ ΣΥΓΚΡΙΣΗΣ ΒΙΒΛΙΟΘΗΚΩΝ ΑΝΙΧΝΕΥΣΗΣ ΣΥΓΚΡΟΥΣΕΩΝ...77 ΕΠΙΛΟΓΟΣ 81 ΠΑΡΑΡΤΗΜΑ 83 ΠΡΟΒΛΗΜΑΤΑ ΚΑΙ ΤΡΟΠΟΠΟΙΗΣΕΙΣ ΚΑΤΑ ΤΗ ΧΡΗΣΗ ΤΩΝ ΒΙΒΛΙΟΘΗΚΩΝ...83 Βιβλιοθήκη SOLID...83 Βιβλιοθήκη RAPID...84 ΒΙΒΛΙΟΓΡΑΦΙΑ 89 ΒΙΒΛΙΑ...89 ΕΠΙΣΤΗΜΟΝΙΚΑ ΗΜΟΣΙΕΥΜΑΤΑ...89 ΠΗΓΕΣ ΣΤΟ ΙΑ ΙΚΤΥΟ...91 Λίστα Εικόνων Εικόνα 1.1: Το διάνυσµα θέσης p του σηµείου P....11 Εικόνα 1.2: (α) απλό πολύγωνο, (β) πολύγωνο µε αυτό-τοµή...12 Εικόνα 1.3: (α) Σε ένα κυρτό πολύγωνο, τα ευθύγραµµα τµήµατα που συνδέουν δυο σηµεία είναι µέσα στο πολύγωνο, (β) Σε ένα µη-κυρτό πολύγωνο, το ευθύγραµµο τµήµα δύο σηµείων του µπορεί να βρεθεί έξω από αυτό....12 Εικόνα 1.4: (α) Κυρτό τετράπλευρο, (β) Κοίλο τετράπλευρο, (γ) Τετράπλευρο αυτό-τεµνόµενο, (δ) Τετράπλευρο εκφυλισµένο....13 Εικόνα 1.5: Παράδειγµα πολυγωνικού µοντέλου µε 2.584 τρίγωνα (αριστερά) και 852 (δεξιά)...14 Εικόνα 1.6: ιαφορετικοί τύποι Simplices για διαστάσεις 0 έως 3...14 Εικόνα 1.7: α) κυρτό σύνολο, β) µη-κυρτό σύνολο...15 Εικόνα 1.8: (α) Για τη διεύθυνση d, η κορυφή υποστήριξης του πολυγώνου C είναι η P. (β) Για τη διεύθυνση d, το σηµείο υποστήριξης για το κύκλο C είναι το σηµείο P....15 Εικόνα 1.9: Τρεις διαφορετικοί τύποι περιοχών Voronoi για έναν 3D κύβο. (α) Μια ακµή, (β)µια κορυφή, (γ) µια πλευρά...16 Εικόνα 1.10: Ένα τρίγωνο διαιρεί το επίπεδο σε επτά περιοχές Voronoi. Μια πλευρά F, τρεις ακµές ( E1, E2, E3) και τρεις κορυφές ( V1, V2, V 3)....17 Εικόνα 1.11: Άθροισµα Minkowski ενός τριγώνου Α και ενός τετραγώνου Β....17 Εικόνα 1.12: ιαφορά Minkowski ενός τετραγώνου Α και ενός τριγώνου Β...18 Εικόνα 1.13: Θεώρηµα Καραθεοδωρή για ένα τετράγωνο στο R 2...19 Εικόνα 1.14: Παράδειγµα δένδρου CSG...20 Εικόνα 2.1: Παράδειγµα χρήσης οριακών όγκων. ύο αντικείµενα µπορούν να συγκρουστούν µόνο αν τέµνονται οι οριακοί όγκοι τους....21 Εικόνα 2.2: Οι οριακοί όγκοι Α και Β δεν επικαλύπτονται και έτσι δεν µπορεί να είναι σε τοµή. Οι οριακοί όγκοι Γ και επικαλύπτονται, άρα υπάρχει πιθανότητα να είναι σε τοµή...22 Εικόνα 2.3: Οι οριακοί όγκοι µπορεί να είναι σφαίρα, ευθυγραµµισµένο οριακό κουτί (ΑΑΒΒ), προσανατολισµένο οριακό κουτί (ΟΒΒ), οχτάπλευρο polytope µε ιδιαίτερο προσανατολισµό (8- DOP) και κυρτό περίβληµα....24 Εικόνα 2.4: Το ΑΑΒΒ µπορεί να απεικονιστεί από τις min-max τιµές, τις min-widths και τις centerradius τιµές...25 Εικόνα 2.5: ύο ΑΑΒΒ Α και Β ευθυγραµµισµένα ως προς (α) το παγκόσµιο σύστηµα συντεταγµένων, (β) το τοπικό σύστηµα συντεταγµένων του Α και (γ) το τοπικό σύστηµα συντεταγµένων του Β...26 Εικόνα 2.6: ύο ΟΒΒ είναι χωριστά όταν η απόσταση µεταξύ των κέντρων των κουτιών που προβάλλονται πάνω σε έναν άξονα L είναι µεγαλύτερη από το άθροισµα των προβαλλόµενων ακτινών τους...29 4
Εικόνα 2.7: (α) Μη καλά ευθυγραµµισµένο OBB και (β) ένα καλά ευθυγραµµισµένο OBB...30 Εικόνα 2.8: Το 8-DOP για τρίγωνο (3,1), (5,4), (1,5) είναι { 1,1,4,-4,5,5,9,2} για τους άξονες (1,0), (0,1), (1,1), (1,-1)....31 Εικόνα 2.9: Το κυρτό περίβληµα ενός συνόλου πριν και µετά την προσθήκη ενός νέου σηµείου K. Οι πλευρές του i 1 Q που βρίσκονται στο εσωτερικό του κώνου διαγράφονται από το Q i....33 Εικόνα 2.10: Ιεραρχία οριακού όγκου για πέντε αντικείµενα. Η παραπάνω ιεραρχία χρησιµοποιεί ΑΑΒΒs...34 Εικόνα 2.11: Παράδειγµα δέντρου....36 Εικόνα 2.12: έντρο τεσσάρων αντικειµένων που για να κατασκευαστεί χρησιµοποιεί (α) τη µέθοδο "top-down" (β) τη µέθοδο "bottom-up"....37 Εικόνα 2.13: Οικοδόµηση ενός OBBTree µε τη µέθοδο top-down...38 Εικόνα 2.14: Ένα θετικά ταξινοµηµένο στοιχειώδη αντικείµενο, αφού το µεσαίο σηµείο της προβολής του είναι µεγαλύτερο από το δ...39 Εικόνα 2.15: Συγχώνευση των σφαιρών s0και s 1....42 Εικόνα 2.16: Παράδειγµα διαµέρισης χώρου ενός σκηνικού αποτελούµενο από στατικά αντικείµενα. 44 Εικόνα 2.17: (α) πλέγµα πάρα πολύ λεπτοµερές, (β) πλέγµα πάρα πολύ αραιό (όσον αφορά το µέγεθος αντικειµένου), (γ) πλέγµα πάρα πολύ αραιό (όσον αφορά την πολυπλοκότητα του αντικειµένου) και (δ) πλέγµα πάρα πολύ λεπτοµερές και πάρα πολύ αραιό...45 Εικόνα 2.18: 3D χώρος µε υποδιαίρεση octree....47 Εικόνα 2.19: Το 2 k-d tree. (α) Χωρική διάσπαση και (β) διάταξη k-d tree...48 Εικόνα 2.20: ιαδοχική διαίρεση ενός τετραγώνου σε τέσσερις κυρτούς υποχώρους και το αντίστοιχο δέντρο BSP....50 Εικόνα 2.21: (α) διαίρεση του χώρου για κάθε αντικείµενο, (β) απεικόνιση όγκου ή ορίου ενός αντικειµένου....51 Εικόνα 2.22: Μια στερεά µορφή κόβεται από πέντε επίπεδα διαίρεσης και το προκύπτον δέντρο BSP είναι "solid-leaf"....51 Εικόνα 2.23: (α) Εισαγωγή πολυγώνου µε 12 πλευρές, (β) το αρχικό επίπεδο διαίρεσης επιλέγεται να περάσει από τις πλευρές A και G, (γ) τα επόµενα δύο επίπεδα διαίρεσης επιλέγονται να διέλθουν από τις πλευρές Β και Η...52 Εικόνα 3.1: (α) Για δύο κυρτά αντικείµενα η τοπική ελάχιστη απόσταση µεταξύ δύο σηµείων τους είναι πάντα µοναδική. (β) Για δύο µη-κυρτά αντικείµενα η τοπική ελάχιστη απόσταση µεταξύ δύο σηµείων τους (γκρι γραµµή) δεν είναι πάντα µοναδική (µαύρη γραµµή)...53 Εικόνα 3.2: Η απόσταση µεταξύ του Α και του Β είναι ισοδύναµη µε τη Minkowski διαφορά τους από την αρχή των αξόνων...54 Εικόνα 3.3: Ο αλγόριθµος GJK βρίσκει τα σηµεία του πολυγώνου που είναι πιο κοντά στην αρχή των αξόνων....57 Εικόνα 3.4: (α) Πρώτη επανάληψη του αλγορίθµου CW για τα πολύγωνα P και Q. (β) Στη δεύτερη επανάληψη βρέθηκε διάνυσµα που χωρίζει τα δύο πολύγωνα....59 Εικόνα 3.5: ύο 2D πολύεδρα Α και Β που δεν είναι σε τοµή. Το χαρακτηριστικό ζευγάρι είναι η κορυφή V και η πλευρά F γιατί είναι το πιο κοντινό ζεύγος χαρακτηριστικών γνωρισµάτων και περιέχει το πιο στενό ζευγάρι σηµείων P και P µεταξύ των αντικειµένων....60 A Εικόνα 3.7: ύο τρίγωνα Α=(1,0), (5,-1), (4,3) και Β=(0,0), (4,1), (1,4) ορισµένα ως τοµή τριών ηµιχώρων το καθένα....62 Εικόνα 4.1: Αποτέλεσµα βιβλιοθήκης σε περιβάλλον γραµµής εργασίας....70 Εικόνα 4.2: (α) Τα µοντέλα στον έλεγχο 1 και (β) στον έλεγχο 2...71 Εικόνα 4.3: (α) Τα µοντέλα στον έλεγχο 1 και (β) στον έλεγχο 2...72 Εικόνα 4.4: (α), (β) Τα µοντέλα στον έλεγχο 1 και (γ) στον έλεγχο 2....74 Εικόνα 4.5: Περιοχές στενής εγγύτητας, (α) έλεγχος 1, (β) έλεγχος 2 και (γ) έλεγχος 3....75 Εικόνα 4.6: Ο πρώτος δακτύλιος έχει οριοθετηθεί από ΑΑΒΒs και ο δεύτερος από ΟΒΒs...76 B i 5
Λίστα Πινάκων Πίνακας 4.1: Σύγκριση torusknot - torusknot....71 Πίνακας 4.2: Σύγκριση torusknot - teapot....72 Πίνακας 4.3: Σύγκριση torusknot - pipe....74 Πίνακας 4.4: Σύγκριση αντικειµένων σε περιοχές στενής εγγύτητας....75 Πίνακας 4.5: Συγκεντρωτικός πίνακας αποτελεσµάτων...77 Πίνακας Π.1: Περιορισµός µνήµης στη SOLID...83 Πίνακας Π.2: Ανάγνωση του αρχείου input που περιέχει τα µοντέλα...84 Πίνακας Π.3: Υπολογίζει το χρόνο πιθανών συγκρούσεων...84 Πίνακας Π.4: Πριν η RAPID κατασκεύαζε έναν δακτύλιο...86 Πίνακας Π.5: Μετά την τροποποίηση η RAPID διαβάζει κάθε σηµείο του αντικειµένου από το αρχείο του...87 Πίνακας Π.6: Ο προσανατολισµός και η θέση των µοντέλων πριν την τροποποίηση...87 Πίνακας Π.7: Ο προσανατολισµός και η θέση των µοντέλων µετά την τροποποίηση...88 Πίνακας Π.8: Μέρος τριγώνων που οικοδοµούν το teapot.vrt...88 Πίνακας Π.9: Το αρχείο εισόδου που ανοίγουν οι βιβλιοθήκες....88 6
Σκοπός της διπλωµατικής εργασίας Η γρήγορη και ακριβής ανίχνευση συγκρούσεων µεταξύ γεωµετρικών µοντέλων γενικής µορφής είναι ένα σηµαντικό πρόβληµα που παρουσιάζεται στα προγράµµατα σχεδίασης µε υπολογιστή. Αρκετοί αλγόριθµοι έχουν προταθεί ανάλογα µε τη κατηγορία των γεωµετρικών µοντέλων που χρησιµοποιούνται σε κάθε εφαρµογή ανίχνευσης συγκρούσεων, π.χ.: άκαµπτα, δυναµικά, ή παραµορφώσιµα µοντέλα. Ένας από τους στόχους της παρούσας διπλωµατικής εργασίας είναι να επικεντρωθεί στην τρέχουσα βιβλιογραφία των γραφικών και της υπολογιστικής γεωµετρίας, µε σκοπό τη µελέτη των µεθοδολογιών και των αλγορίθµων ανίχνευσης συγκρούσεων για άκαµπτα γεωµετρικά µοντέλα γενικής µορφής που βρίσκουν εφαρµογή στο CAD. Βάσει της βιβλιογραφίας [1,20], τα κριτήρια που θεωρούνται σηµαντικά στις εφαρµογές ανίχνευσης συγκρούσεων είναι: Η ταχύτητα εκτέλεσης τους, Η κατανάλωση µνήµης, Ο χειρισµός σύνθετων αντικειµένων, Η αξιοπιστία των αποτελεσµάτων τους, και Ο χρόνος που χρειάζονται για τη κατασκευή ιεραρχιών οριακών όγκων. Μερικά από αυτά τα προβλήµατα µπορούν να λυθούν σύµφωνα µε τη βιβλιογραφία [1], αν λάβουµε υπόψη µας ένα γρήγορο και καλά εφαρµοσµένο στο αντικείµενο οριακό όγκο. Για το λόγο αυτό θα συγκριθούν δύο περιπτώσεις οριακών όγκων, που χρησιµοποιούνται συνήθως στις εφαρµογές ανίχνευσης συγκρούσεων, ως προς τα παραπάνω κριτήρια. Οι οριακοί όγκοι που θα συγκριθούν είναι: τα οριακά προσανατολισµένα κουτιά (Oriented Bounding Boxes OBBs) και τα ευθυγραµµισµένα οριακά κουτιά ως προς άξονα ( Axis-aligned Bounding Boxes AABBs) Συγκεκριµένα, θα συγκριθούν δύο βιβλιοθήκες που είναι αντιπροσωπευτικές των δύο παραπάνω τύπων οριακών όγκων. Οι βιβλιοθήκες είναι η RAPID και η SOLID όπου συναντάµε τους οριακούς όγκους ΟΒΒ και ΑΑΒΒ αντίστοιχα. 7
Εισαγωγή Η ανίχνευση συγκρούσεων είναι η διαδικασία που προσδιορίζει για δεδοµένα γεωµετρικά µοντέλα, εάν τα αντικείµενα είναι σε τοµή το ένα µε το άλλο ή είναι πολύ κοντά το ένα στο άλλο µε πιθανότητα σύγκρουσης. Για παράδειγµα, στα ηλεκτρονικά παιχνίδια, η ανίχνευση σύγκρουσης είναι η διαδικασία που προσδιορίζει εάν τα αντικείµενα είναι σε επαφή είτε µεταξύ τους, είτε µε τη στατική γεωµετρία του ίδιου του περιβάλλοντος (τοίχοι, πάτωµα, οροφή, κτλ.) Η ανίχνευση συγκρούσεων µπορεί να θεωρηθεί ως ένα τµήµα της φυσικής προσοµοίωσης. Το σηµαντικότερο όµως, είναι ότι η ανίχνευση συγκρούσεων είναι ένα καθαρά γεωµετρικό πρόβληµα που προκύπτει σε διάφορες γεωµετρικές εφαρµογές του CAD. Η ανίχνευση συγκρούσεων µπορεί επίσης να είναι ένα σηµαντικό βοήθηµα σε πειράµατα τα οποία είναι δαπανηρά να κατασκευαστούν ή µη πρακτικά για να πραγµατοποιηθούν, µπορούν όµως να απεικονισθούν σε ένα ρεαλιστικό σύστηµα προσοµοίωσης του CAD. Τέτοια συστήµατα δηµιουργούν απεικονίσεις των µηχανικών µερών, εργαλείων και µηχανών που χρειάζεται να εξεταστούν για αλληλεπίδραση, λειτουργικότητα και αξιοπιστία. Η ανίχνευση συγκρούσεων είναι ένα σηµαντικό βήµα στην ακριβή απεικόνιση αυτών των αλληλεπιδράσεων. Οι αλγόριθµοι ανίχνευσης συγκρούσεων βελτιστοποιούνται για αυτόν το λόγο και επιτρέπουν στο σχεδιαστή, να τους χρησιµοποιήσει για περισσότερη ακριβή φυσική προσοµοίωση σε περιοχές που απαιτείται. Η επιλογή των αλγορίθµων ανίχνευσης συγκρούσεων εξαρτάται πολύ από την απεικόνιση του µοντέλου και την αναπαράσταση του περιβάλλοντος. Υπάρχουν πολλοί τύποι απεικόνισης που χρησιµοποιούνται στο CAD. Σε πολλές εφαρµογές του CAD, η εισαγωγή των µοντέλων λαµβάνεται ως συλλογή πολυγώνων χωρίς καµία τοπολογική πληροφορία ( polygon soups ), ως ένα συνολοθεωρητικό µοντέλο, επιφάνειες κ.α. Στην παρούσα εργασία θα χρησιµοποιηθούν µοντέλα που δοµούνται ως συλλογή πολυγώνων χωρίς καµία τοπολογική πληροφορία, (κεφάλαιο 1). 8
Τεχνικές βασισµένες στις ιεραρχικές δοµές οριακών όγκων και διαµέρισης χώρου που χρησιµοποιούνται σε τέτοια µοντέλα θα παρουσιαστούν στη συνέχεια (κεφάλαιο 2). Αρκετοί αλγόριθµοι ανίχνευσης συγκρούσεων έχουν προταθεί στη βιβλιογραφία, ο λόγος είναι οι πολλές διαφορετικές εφαρµογές στις οποίες µπορούν να χρησιµοποιηθούν. Η ανίχνευση συγκρούσεων εκτός από το CAD, βρίσκει εφαρµογή στη ροµποτική, στα ηλεκτρονικά παιχνίδια, σε µεγάλα εικονικά περιβάλλοντα που περιέχουν στατικά, δυναµικά, άκαµπτα ή ακόµα και παραµορφώσιµα µοντέλα. [18, 33, 48, 49]. Λόγω του µεγάλου αριθµού αλγορίθµων και βιβλιοθηκών που υπάρχουν για τις διάφορες εφαρµογές της ανίχνευσης συγκρούσεων, η παρούσα διπλωµατική εργασία θα επικεντρωθεί στους σηµαντικότερους αλγόριθµους ανίχνευσης συγκρούσεων για άκαµπτα γεωµετρικά αντικείµενα γενικής µορφής, (κεφάλαιο 3). Τέλος, θα παρουσιαστούν και θα συγκριθούν δύο βιβλιοθήκες ανίχνευσης συγκρούσεων που δέχονται ως εισαγωγή άκαµπτα µοντέλα που δοµούνται από µια συλλογή πολυγώνων χωρίς καµία τοπολογική πληροφορία και χρησιµοποιούν δύο από τις πιο δηµοφιλής µεθοδολογίες οριακών όγκων για να ορίσουν τα µοντέλα που εισάγονται σε αυτές, (κεφάλαιο 4). 9
Κεφάλαιο 1 1 Προαπαιτούµενα Ένα σύστηµα ανίχνευσης σύγκρουσης δέχεται πολλά γεωµετρικά αντικείµενα. Σε µία προσοµοίωση, η σκηνή και τα αντικείµενα της απεικονίζονται ως γεωµετρικές οντότητες όπως είναι τα πολύγωνα, οι σφαίρες και τα κουτιά. Για να ελεγχθούν σωστά, για πιθανή σύγκρουση αυτές οι γεωµετρικές οντότητες, απαιτείται ο υπολογισµός διανυσµάτων, πινάκων και εξισώσεων γραµµικής άλγεβρας. Η απεικόνιση των αντικειµένων µε πολύγωνα είναι η παλαιότερη και η πιο διαδεδοµένη. Τα πολύγωνα είναι ένα εύχρηστο συστατικό για την απεικόνιση αντικειµένων, ιδιαίτερα όταν αυτά δεν είναι πολύπλοκα. Η δυσκολία απεικόνισης αυξάνεται για πολύπλοκα αντικείµενα. Η δοµή που χρησιµοποιείται για την απεικόνιση πολυγωνικών µοντέλων είναι ιεραρχική. Κάθε αντικείµενο είναι µια λίστα επιφανειών, κάθε επιφάνεια µια λίστα πολυγώνων και κάθε πολύγωνο µια λίστα κορυφών. Συχνά τα πολυγωνικά µοντέλα αποτελούνται από συλλογή πολυγώνων που δεν συνδέονται τοπολογικά µεταξύ τους. Αυτά αναφέρονται συχνά ως «polygon soups». 1.1 Σηµεία και ιανύσµατα Προς αποφυγή συγχύσεων στα γραφικά γίνεται σαφής διάκριση µεταξύ σηµείων και διανυσµάτων. Κάθε σηµείο στον τρισδιάστατο χώρο χαρακτηρίζεται από τη θέση του, δηλαδή τρεις συντεταγµένες ( x, y,z ) και συµβολίζεται µε ένα κεφαλαίο γράµµα, π.χ. P. Το σύνολο όλων των σηµείων είναι ο τρισδιάστατος Ευκλείδειος χώρος σηµείων 3 Ε. Ένα διάνυσµα έχει καθορισµένο µέτρο, διεύθυνση και φορά και συµβολίζεται µε ένα µικρό γράµµα, π.χ. n. Το σύνολο όλων των τρισδιάστατων διανυσµάτων αποτελεί τον τρισδιάστατο Ευκλείδειο διανυσµατικό χώρο 3 R. 10
y z O p P ( x, y, z) x Εικόνα 1.1: Το διάνυσµα θέσης p του σηµείου P. Η διαφορά των σηµείων P 1 και P 2 δίνει ένα µοναδικό διάνυσµα q που δείχνει από το πρώτο στο δεύτερο σηµείο: q = P2 - P1. Ορίζουµε ως διάνυσµα θέσης p ενός σηµείου P, το διάνυσµα που δείχνει από την αρχή των αξόνων O προς το σηµείο P (Εικόνα 1.1), δηλαδή: p = P - O, [21]. 1.2 Πολυγωνικά Μοντέλα Αν και έχουν αναπτυχθεί αναλυτικές µέθοδοι µοντελοποίησης τρισδιάστατων αντικειµένων (παραµετρικές επιφάνειες), η πλέον διαδεδοµένη µορφή αναπαράστασης στις εφαρµογές γραφικών είναι η προσέγγιση της επιφάνειας των αντικειµένων από ένα σύνολο πολυγώνων. Ένα πολύγωνο είναι µια κλειστή µορφή µε n πλευρές, που ορίζεται από ένα σύνολο τριών ή περισσότερων σηµείων, διαταγµένο στο χώρο µε τέτοιο τρόπο ώστε κάθε σηµείο να συνδέεται µε το επόµενο µε ένα ευθύγραµµο τµήµα. Το πολύγωνο που προκύπτει από ένα σύνολο v σηµείων, καλείται επίσης και v γωνο. Για παράδειγµα, ένα πολύγωνο που προκύπτει από 5 σηµεία καλείται πεντάγωνο. Τα ευθύγραµµα τµήµατα που ενώνουν τα σηµεία του πολυγώνου καλούνται πλευρές ή ακµές των πολυγώνων. Τα ίδια τα σηµεία καλούνται κορυφές των πολυγώνων. 11
Ακµή Κορυφή Εσωτερικό Αυτό-τοµή ιαγώνιος Εξωτερικό Εικόνα 1.2: (α) απλό πολύγωνο, (β) πολύγωνο µε αυτό-τοµή. Ένα απλό πολύγωνο χωρίζει το επίπεδο σε δύο µέρη: το εσωτερικό (η περιοχή που καλύπτεται από το πολύγωνο) και το εξωτερικό (η περιοχή έξω από το πολύγωνο). Μια κορυφή είναι κυρτή εάν η εσωτερική γωνία είναι µικρότερη ή ίση µε 180 µοίρες. Εάν η γωνία είναι µεγαλύτερη από 180 µοίρες, τότε η κορυφή καλείται κοίλη. Κυρτή κορυφή Μη-κυρτή κορυφή Εικόνα 1.3: (α) Σε ένα κυρτό πολύγωνο, τα ευθύγραµµα τµήµατα που συνδέουν δυο σηµεία είναι µέσα στο πολύγωνο, (β) Σε ένα µη-κυρτό πολύγωνο, το ευθύγραµµο τµήµα δύο σηµείων του µπορεί να βρεθεί έξω από αυτό. Ένα πολύγωνο είναι κυρτό, εάν όλα τα ευθύγραµµα τµήµατα µεταξύ δύο οποιονδήποτε σηµείων του πολυγώνου βρίσκονται πλήρως µέσα στο πολύγωνο. Ένα πολύγωνο που δεν είναι κυρτό καλείται κοίλο πολύγωνο ή µη κυρτό. Ένα πολύγωνο µε µία ή περισσότερες κοίλες κορυφές είναι πάντα κοίλο, αλλά ένα πολύγωνο που έχει µόνο κυρτές κορυφές δεν είναι πάντα κυρτό. Το τρίγωνο είναι το µόνο πολύγωνο που πάντα είναι κυρτό και επίπεδο. Οι περισσότεροι έλεγχοι τοµής που εκτελούνται σε ένα σύστηµα σύγκρουσης είναι γρηγορότεροι όταν εφαρµόζονται σε κυρτά πολύγωνα παρά σε µη-κυρτά. Η απεικόνιση ενός αντικειµένου από τρίγωνα, είναι ίσως η καλύτερη λύση, δεδοµένου ότι το τρίγωνο είναι ο µόνος τύπος πολυγώνου που εγγυάται ότι είναι κυρτό. 12
Α Α Γ Α Γ Β Β Β Γ Γ Α Β (α) (β) (γ) (δ) Εικόνα 1.4: (α) Κυρτό τετράπλευρο, (β) Κοίλο τετράπλευρο, (γ) Τετράπλευρο αυτό-τεµνόµενο, (δ) Τετράπλευρο εκφυλισµένο. Συχνά, τα quads (τετράπλευρα) είναι τα µόνα στοιχειώδη αντικείµενα µαζί µε τα τρίγωνα που υποστηρίζονται από τους αλγόριθµους ανίχνευσης σύγκρουσης. Μπορούµε να ελέγξουµε ένα τετράπλευρο αν είναι κυρτό ως εξής: Υποθέτουµε ότι όλες οι κορυφές του τετραπλεύρου ΑΒΓ είναι στο ίδιο επίπεδο, το τετράπλευρο είναι κυρτό εάν και µόνο αν οι δύο διαγώνιες του, βρίσκονται πλήρως στο εσωτερικό του (Εικόνα 1.4). Μπορούµε επίσης να ελέγξουµε τα ευθύγραµµα τµήµατα ΑΓ και Β, που αντιστοιχούν στις διαγώνιες του τετραπλεύρου, αν τέµνει η µια την άλλη. Εάν δεν ισχύει τίποτα από τα παραπάνω, τότε το quad είναι κοίλο ή αυτό-τεµνόµενο. Εάν τα ευθύγραµµα τµήµατα είναι παράλληλα ή επικαλύπτονται, το quad είναί εκφυλισµένο (σε µια γραµµή). Για να αποφύγουµε ένα quad µε τρεις κυρτές συγγραµµικές κορυφές, πρέπει τα ευθύγραµµα τµήµατα να θεωρούνται τεµνόµενα µόνο εάν επικαλύπτονται στο εσωτερικό του. Αν και θεωρητικά τα πολύγωνα που θα χρησιµοποιηθούν σε ένα πολυγωνικό µοντέλο µπορεί να είναι οποιασδήποτε τάξης, στην πράξη χρησιµοποιούνται σχεδόν αποκλειστικά τρίγωνα, οπότε ο όρος πολυγωνικό µοντέλο στα γραφικά υποδηλώνει ένα σύνολο τριγώνων, ενώ ο όρος πολύγωνο έχει επικρατήσει να ταυτίζεται σχεδόν πάντα µε το τρίγωνο. Εφόσον ένα πολυγωνικό µοντέλο δεν είναι παρά µια προσέγγιση µιας επιφάνειας, η πιστή πολυγωνική αναπαράσταση ενός πολύπλοκου αντικειµένου απαιτεί µεγάλο αριθµό τριγώνων, ενώ η µείωση του αριθµού των τριγώνων οδηγεί σε απώλεια της ακρίβειας (Εικόνα 1.5). Συνεπώς ένα τυπικό πολυγωνικό µοντέλο µπορεί να περιέχει από µερικές δεκάδες ως αρκετές χιλιάδες τρίγωνα. 13
Εικόνα 1.5: Παράδειγµα πολυγωνικού µοντέλου µε 2.584 τρίγωνα (αριστερά) και 852 (δεξιά). 1.3 Πολύεδρα Πολύεδρο είναι ένα τρισδιάστατο αντικείµενο που αποτελείται από πολλές επίπεδες επιφάνειες που ενώνονται µεταξύ τους δηµιουργώντας σε κάθε επίπεδο ένα πολύγωνο [1]. Όπως το πολύγωνο, έτσι και το πολύεδρο διαιρεί το χώρο σε δύο περιοχές: την εσωτερική και την εξωτερική. Ένα πολύεδρο είναι κυρτό εάν το σύνολο των σηµείων (πολύγωνα) που ορίζουν το εσωτερικό του και το όριο του (σύνορο) είναι κυρτό. Ένα κυρτό πολύεδρο ονοµάζεται και polytope. Όπως τα πολύγωνα, έτσι και τα polytopes µπορούν να περιγραφούν ως τοµή ενός πεπερασµένου αριθµού ηµιχώρων. 0-simplex 1-simplex 2-simplex 3-simplex Εικόνα 1.6: ιαφορετικοί τύποι Simplices για διαστάσεις 0 έως 3. Ένα d-simplex είναι το κυρτό περίβληµα d+1 ενωµένων ανεξάρτητων σηµείων σε χώρο d διαστάσεων. Ένα simplex είναι ένα d-simplex για κάποιο δεδοµένο d. Για παράδειγµα, το 0-simplex είναι ένα σηµείο, το 1-simplex είναι ένα ευθύγραµµο τµήµα, το 2-simplex είναι ένα τρίγωνο, και το 3-simplex είναι τετράεδρο (εικόνα1.6). Το simplex έχει την εξής ιδιότητα: η αφαίρεση ενός σηµείου από το σύνολο ορισµού του µειώνει τη διάσταση του simplex κατά ένα. 14
Κυρτό Σύνολο Μη-Κυρτό Σύνολο α) β) Εικόνα 1.7: α) κυρτό σύνολο, β) µη-κυρτό σύνολο. Για ένα γενικό κυρτό σύνολο C, το σηµείο από το σύνολο µε τη µεγαλύτερη απόσταση κατά µήκος µιας δεδοµένης κατεύθυνσης καλείται supporting point (σηµείο υποστήριξης) του C. Πιο συγκεκριµένα, το P είναι ένα σηµείο υποστήριξης του C εάν για µια δεδοµένη κατεύθυνση d ισχύει ότι d P= max{ d V : V C }, δηλαδή το P είναι ένα σηµείο για το οποίο το d Pείναι µέγιστο. Η εικόνα 1.8 δείχνει τα σηµεία υποστήριξης για δύο διαφορετικά κυρτά σύνολα. Τα σηµεία υποστήριξης καλούνται µερικές φορές ακραία σηµεία. εν είναι απαραίτητα µοναδικά. Για ένα polytope, µια από τις κορυφές του µπορεί πάντα να επιλέγετε ως σηµείο υποστήριξης για µια δεδοµένη κατεύθυνση. Όταν ένα σηµείο υποστήριξης είναι µια κορυφή, τότε το σηµείο αυτό καλείται συνήθως κορυφή υποστήριξης (supporting vertex). d C P = S ( d ) C C P = S ( d ) C (α) (β) Εικόνα 1.8: (α) Για τη διεύθυνση d, η κορυφή υποστήριξης του πολυγώνου C είναι η P. (β) Για τη διεύθυνση d, το σηµείο υποστήριξης για το κύκλο C είναι το σηµείο P. Η απεικόνιση υποστήριξης (support mapping) είναι µια συνάρτηση S ( d), που συνδέεται µε ένα σύνολο C και απεικονίζει τη κατεύθυνση του d σε ένα σηµείο υποστήριξης του C. Για απλές κυρτές µορφές (όπως είναι οι σφαίρες, κουτιά, κώνοι, και κύλινδροι) η απεικόνιση υποστήριξης µπορεί να δοθεί µε κλειστή µορφή. Για παράδειγµα, για µια σφαίρα C µε κέντρο O και µε ακτίνα r, η απεικόνιση υποστήριξης δίνεται από τη σχέση S ( d) = O+ r d / d (εικόνα1.8). Κυρτές µορφές c c 15
µε µεγαλύτερη πολυπλοκότητα απαιτούν τη συνάρτηση απεικόνισης υποστήριξης για να καθορίσουν ένα σηµείο υποστήριξης χρησιµοποιώντας αριθµητικές µεθόδους. 1.4 Περιοχές Voronoi Μια σηµαντική έννοια στο σχεδιασµό πολλών ελέγχων τοµής είναι αυτή των περιοχών Voronoi (Voronoi regions) [1]. Έστω S ένα σύνολο σηµείων στο επίπεδο, η περιοχή Voronoi ενός σηµείου P που ανήκει στο σύνολο S είναι το σύνολο των σηµείων στο επίπεδο που είναι πιο κοντά στο σηµείο P από ότι σε οποιοδήποτε άλλο σηµείο του συνόλου S. Οι περιοχές Voronoi και τα διαγράµµατα Voronoi (Voronoi diagrams, περιγράφουν το σύνολο των σηµείων που είναι πιο κοντά σε δύο ή περισσότερα σηµεία του συνόλου S) προέρχονται από το πεδίο της υπολογιστικής γεωµετρίας (computational geometry), όπου χρησιµοποιούνται για ερωτήσεις όπως ποιοι είναι οι κοντινότεροι γείτονες. Αν επεκτείνουµε λίγο την έννοια των περιοχών Voronoi, τότε γίνονται αρκετά χρήσιµες για τις εφαρµογές ανίχνευσης σύγκρουσης. Έστω ένα πολύεδρο P και έστω ένα χαρακτηριστικό γνώρισµα του P να είναι µια από τις κορυφές, ακµές ή πλευρές του. Η περιοχή Voronoi ενός χαρακτηριστικού γνωρίσµατος F του πολύεδρου P είναι τότε το σύνολο των σηµείων που είναι πιο κοντά στο F από ότι σε οποιοδήποτε άλλο χαρακτηριστικό γνώρισµα του P. Στην εικόνα 1.10 φαίνονται οι περιοχές Voronoi που ορίζονται από τα χαρακτηριστικά γνωρίσµατα ενός τριγώνου. Η εικόνα 1.9 δείχνει τους τρεις διαφορετικούς τύπους περιοχών Voronoi ανάλογα µε το χαρακτηριστικό γνώρισµα. (α) (β) (γ) Εικόνα 1.9: Τρεις διαφορετικοί τύποι περιοχών Voronoi για έναν 3D κύβο. (α) Μια ακµή, (β)µια κορυφή, (γ) µια πλευρά. 16
V 1 V 2 E 3 F E 1 E 2 V 3 Εικόνα 1.10: Ένα τρίγωνο διαιρεί το επίπεδο σε επτά περιοχές Voronoi. Μια πλευρά F, τρεις ακµές ( E1, E2, E3) και τρεις κορυφές ( V1, V2, V 3). 1.5 Άθροισµα και ιαφορά Minkowski ύο σηµαντικές πράξεις των σηµειοσυνόλων είναι το άθροισµα Minkowski (Minkowski sum)και η διαφορά Minkowski (Minkowski difference). Έστω δύο σηµειοσύνολα Α και Β, και έστω a και b τα διανύσµατα θέσης που αντιστοιχούν στα ζευγάρια των σηµείων στα σύνολα Α και Β. Το άθροισµα Minkowski, A B, ορίζεται τότε ως το σύνολο A B= { a+ b : a A, b B }, όπου a+ bείναι το άθροισµα των διανυσµάτων θέσης a και b. Οπτικά, το άθροισµα Minkowski µοιάζει µε την προσθήκη του συνόλου Β στο σύνολο Α (ή αντίστροφα). Η εικόνα 1.11 δείχνει ένα άθροισµα Minkowski. A B A B Εικόνα 1.11: Άθροισµα Minkowski ενός τριγώνου Α και ενός τετραγώνου Β. Η διαφορά Minkowski δύο σηµειοσυνόλων Α και Β ορίζεται όπως και το άθροισµα Μinkowski: A B= { a b : a A, b B }. Γεωµετρικά, η διαφορά 17
Minkowski εξασφαλίζεται µε τη προσθήκη του συνόλου Α στη προβολή του Β στην αρχή των αξόνων, δηλαδή A B= A ( B) (εικόνα 1.12). Για το λόγο αυτό, και η διαφορά Minkowski αναφέρεται και ως άθροισµα Minkowski. Για δύο κυρτά πολύγωνα, P και Q, το άθροισµα Minkowski R= P Q έχει τις εξής ιδιότητες: το R είναι ένα κυρτό πολύγωνο και οι κορυφές του είναι το άθροισµα των κορυφών του P και Q. Το άθροισµα Minkowski δύο κυρτών πολύεδρων είναι ένα κυρτό πολύεδρο, µε αντίστοιχες ιδιότητες. A ( B) B A Εικόνα 1.12: ιαφορά Minkowski ενός τετραγώνου Α και ενός τριγώνου Β. Το άθροισµα Minkowski χρησιµοποιείται άµεσα και έµµεσα σε εφαρµογές ανίχνευσης σύγκρουσης (ειδικά σε σύνθετη κίνηση αντικειµένων). Η διαφορά Minkowski είναι σηµαντική στις εφαρµογές ανίχνευσης σύγκρουσης επειδή δύο σηµειοσύνολα Α και Β συγκρούονται (δηλαδή έχουν ένα ή περισσότερα σηµεία κοινά) εάν και µόνο εάν η Minkowski διαφορά τους C (C= A B ) περιέχει την αρχή των αξόνων (εικόνα 1.12). Στην πραγµατικότητα, αυτό µπορεί να επαληθευτεί, υπολογίζοντας την ελάχιστη απόσταση µεταξύ του Α και του Β, που ισοδυναµεί µε τον υπολογισµό της ελάχιστης απόστασης του C από την αρχή των αξόνων. Ο αλγόριθµος GJK χρησιµοποιεί το παραπάνω γεγονός. ηλαδή, distance( A, B) = min{ a b : a A, b B} = min{ c : c A B }. 1.6 Θεώρηµα Καραθεοδωρή Το θεώρηµα Καραθεοδωρή για κυρτά σύνολα λέει ότι εάν ένα σηµείο x του R d βρίσκεται στο κυρτό περίβληµα ενός συνόλου Ρ, τότε υπάρχει ένα υποσύνολο Ρ του 18
Ρ που αποτελείται από d+1 και λιγότερα σηµεία, τέτοια ώστε το x να βρίσκεται στο κυρτό περίβληµα του Ρ [32]. Η εικόνα 1.13 δείχνει ένα κυρτό σύνολο P={(0,0), (0,1), (1,0), (1,1)} που είναι ένα υποσύνολο του R 2. Το κυρτό περίβληµα αυτού του συνόλου είναι ένα τετράγωνο. Έστω τώρα ένα σηµείο x = (1/4, 1/4), το οποίο είναι στο κυρτό περίβληµα του Ρ. Μπορούµε να κατασκευάσουµε τότε ένα σύνολο {(0,0),(0,1),(1,0)} = P, το κυρτό περίβληµα του οποίου είναι ένα τρίγωνο και εσωκλείει το σηµείο x. Με τον τρόπο αυτό λειτουργεί το θεώρηµα Καραθεοδωρή για κυρτά σύνολα. (0,1) (1,1) (1/4,1/4) (0,0) (1,0) Εικόνα 1.13: Θεώρηµα Καραθεοδωρή για ένα τετράγωνο στο R 2 1.7 Συνολοθεωρητικό Μοντέλο (Constructive Solid Geometry) Το συνολοθεωρητικό µοντέλο είναι µια µέθοδος που αναπτύχθηκε για τη δηµιουργία βιοµηχανικών στερεών µοντέλων. Προέκυψε µετά την παρατήρηση ότι πολλά βιοµηχανικά στερεά µοντέλα προέρχονται από τους συνδυασµούς απλών γεωµετρικών µορφών όπως είναι οι σφαίρες, οι κύλινδροι, οι κώνοι και τα ορθογώνια παραλληλόγραµµα. Οι συνδυασµοί των παραπάνω απλών γεωµετρικών µορφών αντιστοιχούν στις βιοµηχανικές πράξεις (συγκόλληση, τρύπηµα, καλούπωµα). Οι βιοµηχανικές πράξεις µπορούν να παραστηθούν από τις βασικές πράξεις συνόλων (ένωση, αφαίρεση, τοµή). Για να είναι αυτό δυνατό πρέπει να θεωρήσουµε τα βασικά 19
στερεά σαν σύνολα σηµείων. Έτσι για παράδειγµα, η συγκόλληση δύο στερεών µπορεί να παρασταθεί µε την ένωση των συνόλων των σηµείων τους (εικόνα 1.14). Στο CSG, ένα αντικείµενο αναπαριστάται από ένα δέντρο. Τα φύλλα του δέντρου περιέχουν τα βασικά στερεά. Οι ενδιάµεσοι κόµβοι περιέχουν τις συνολοθεωρητικές πράξεις, ένωση, τοµή και αφαίρεση. Το CSG παρέχει µια ακριβή απεικόνιση του όγκου ενός αντικειµένου. Το µειονέκτηµα του CSG είναι ότι ορισµένες διαδικασίες όπως η στρογγυλοποίηση µιας ακµής ή η fillet ένωση είναι δύσκολο να περιγράφεί µε τις CSG διαδικασίες [2]. Αφαίρεση Ένωση Εικόνα 1.14: Παράδειγµα δένδρου CSG 20
Κεφάλαιο 2 2 Βασικές Μεθοδολογίες Ανίχνευσης Συγκρούσεων Εικόνα 2.1: Παράδειγµα χρήσης οριακών όγκων. ύο αντικείµενα µπορούν να συγκρουστούν µόνο αν τέµνονται οι οριακοί όγκοι τους. Σε µια εφαρµογή ανίχνευσης συγκρούσεων βασικό κριτήριο είναι ο χρόνος. Για να επιταχυνθούν οι έλεγχοι ανίχνευσης συγκρούσεων, χρησιµοποιούνται τα απλά γεωµετρικά αντικείµενα όπως είναι οι σφαίρες και τα κουτιά, για να απεικονίσουν τα σύνθετα αντικείµενα που ελέγχονται για πιθανή σύγκρουση. Μόνο εάν οι απλοί οριακοί όγκοι συγκρούονται, γίνονται επιπλέον έλεγχοι για να βρεθεί το ακριβές σηµείο τοµής των αντικειµένων. Έτσι, µια από τις βασικές τεχνικές επιτάχυνσης της ανίχνευσης συγκρούσεων είναι οι οριακοί όγκοι (παράγραφο 2.1). Ένα δεύτερο σηµαντικό κριτήριο είναι η απόδοση. Η οριοθέτηση των αντικειµένων και ο έλεγχος τοµής των οριακών όγκων που περιέχουν τα αντικείµενα, µπορεί να οδηγήσει σε σηµαντικές βελτιώσεις της απόδοσης. Μπορεί λοιπόν µε αυτό τον τρόπο, οι έλεγχοι τοµής να έχουν απλοποιηθεί, όµως η χρονική πολυπλοκότητα παραµένει η ίδια. Με την τακτοποίηση των οριακών όγκων σε µια ιεραρχία δέντρου, 21
η οποία ονοµάζεται ιεραρχία οριακών όγκων, η χρονική πολυπλοκότητα µπορεί να µειωθεί. Συνεπώς, µια µεθοδολογία ανίχνευσης συγκρούσεων είναι οι ιεραρχίες οριακών όγκων (παράγραφος 2.2). Παραδείγµατα ιεραρχιών οριακών όγκων θα παρουσιαστούν στην παράγραφο 2.3. Σε µερικές εφαρµογές ανίχνευσης συγκρούσεων χρειάζεται να γίνει συγχώνευση των ίδιων οριακών όγκων. Τέτοια παραδείγµατα θα παρουσιαστούν στην παράγραφο 2.4. Όταν εξετάζεται µεγάλος αριθµός αντικειµένων για πιθανή σύγκρουση, τα αντικείµενα πρέπει να χωριστούν σε µικρές οµάδες για να διευκολυνθούν οι έλεγχοι τοµής. Άρα, µια άλλη µεθοδολογία ανίχνευσης συγκρούσεων που θα παρουσιαστεί παρακάτω είναι αυτή της διαµέρισης του χώρου (παράγραφος 2.5, 2.6). 2.1 Οριακοί Όγκοι A B Γ Εικόνα 2.2: Οι οριακοί όγκοι Α και Β δεν επικαλύπτονται και έτσι δεν µπορεί να είναι σε τοµή. Οι οριακοί όγκοι Γ και επικαλύπτονται, άρα υπάρχει πιθανότητα να είναι σε τοµή. Η άµεση εξέταση δύο γεωµετρικών αντικειµένων για πιθανή σύγκρουση είναι συχνά πολύ ακριβή (κοστίζει σε χρόνο και µνήµη), ειδικά όταν τα αντικείµενα αποτελούνται από εκατοντάδες ή ακόµα και χιλιάδες πολύγωνα. Για να ελαχιστοποιηθεί αυτό το κόστος, οριοθετούµε τους όγκους των αντικειµένων και τα εξετάζουµε πρώτα για πιθανή επικάλυψη, προτού γίνει ο έλεγχος για τοµή της γεωµετρίας. Ένας οριακός όγκος (bounding volume, BV), είναι ένας ενιαίος απλός όγκος που περιέχει ένα ή περισσότερα αντικείµενα [1]. Η ιδέα για τη χρήση απλούστερων όγκων, όπως κουτιά και σφαίρες είναι αρκετά καλή, γιατί µπορούµε να κάνουµε γρήγορους ελέγχους για πιθανή επικάλυψη σε σύνθετα αντικείµενα που µέχρι τώρα µας δέσµευαν, χωρίς µεγάλο κόστος. Με την χρήση οριακών όγκων, µπορούµε να 22
ελέγξουµε γρήγορα για πιθανή επικάλυψη, και µόνο όταν υπάρχει πιθανότητα επικάλυψης των οριακών όγκων, ελέγχουµε για το σηµείο τοµής. Φυσικά, όταν έχουµε πραγµατική επικάλυψη των αντικειµένων, αυξάνεται ο χρόνος για τον υπολογισµό του σηµείου τοµής. Μερικά συστήµατα ανίχνευσης σύγκρουσης, ικανοποιούνται και µόνο µε τον έλεγχο οριακών όγκων. εν είναι απαραίτητο να βρεθεί το ακριβές σηµείο τοµής, αρκεί να γνωρίζουµε αν υπάρχει πιθανή σύγκρουση των οριακών όγκων των αντικειµένων ή όχι. Ο έλεγχος των πολυγώνων ενός αντικειµένου Α προς ένα αντικείµενο Β έχει πολυπλοκότητα 2 ( ) O n. Άρα, αν καταφέρουµε να µειώσουµε των αριθµό των πολυγώνων στο µισό, ο έλεγχός για πιθανή ανίχνευση σύγκρουση των δύο αντικειµένων θα µειωθεί κατά 75% [1]. 2.1.1 Χαρακτηριστικά των Οριακών Όγκων εν µπορούν όλα τα γεωµετρικά αντικείµενα να χρησιµεύσουν ως αποτελεσµατικοί όγκοι που µπορούν να οριοθετήσουν ένα αντικείµενο. Ένας οριακός όγκος πρέπει να ικανοποιεί τις παρακάτω ιδιότητες [1]: Έλεγχος τοµής χωρίς κόστος (ταχύτητα, µνήµη), Πολύ καλή οριοθέτηση του αντικειµένου (Tight fitting), Εύκολη και γρήγορη κατασκευή οριακού όγκου, Ευκολία στη χρήση µετασχηµατισµών, και Ελάχιστες απαιτήσεις σε µνήµη Η βασική ιδέα πίσω από τη χρήση των οριακών όγκων, είναι να ξεπεραστούν χρονοβόρες γεωµετρικές µε άλλες, χαµηλότερου κόστους, που µπορούν να µας δώσουν γρήγορες απαντήσεις. Ο οριακός όγκος για να µπορέσει να υποστηρίξει τους ελέγχους επικάλυψης, πρέπει να έχει µια απλή γεωµετρική µορφή. Συγχρόνως, για να δώσει µια γρήγορη αλλά και σωστή απάντηση για µια πιθανή σύγκρουση, πρέπει ο οριακός όγκος να περιγράφει όσο το δυνατόν καλύτερα το αντικείµενο. 23
Ο οριακός όγκος υπολογίζεται συνήθως πριν την εκτέλεση του αλγορίθµου (σε ένα βήµα προ-επεξεργασίας). Η κατασκευή του δεν έχει δυσµενής επιπτώσεις κατά τον χρόνο εκτέλεσης του αλγορίθµου. Μερικοί οριακοί όγκοι πρέπει να ευθυγραµµιστούν εκ νέου κατά το χρόνο εκτέλεσης, όταν κινούνται τα αντικείµενα που ορίζουν. Για αυτούς, εάν ο υπολογισµός της νέας ευθυγράµµισης του οριακού όγκου κοστίζει, είναι προτιµότερο (φτηνότερο) να ξανά υπολογιστεί από την αρχή. Επειδή οι οριακοί όγκοι αποθηκεύονται επιπρόσθετα στη γεωµετρία του αντικειµένου, πρέπει να προστεθεί επιπλέον µνήµη στη γεωµετρία. Όσο πιο απλή γεωµετρική µορφή έχει ο οριακός όγκος, τόσο λιγότερη µνήµη χρειάζεται. Για να διαλέξουµε έναν οριακό όγκο για µια συγκεκριµένη εφαρµογή, η καλύτερη λύση είναι να εξετάσουµε µερικούς διαφορετικούς οριακούς όγκους και να επιλέξουµε αυτόν που είναι κατάλληλος για τη δεδοµένη εφαρµογή. Πέντε από τους πιο κοινούς τύπους οριακών όγκων φαίνονται στην εικόνα 2.3. ΑΥΞΗΣΗ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ, ΚΑΛΥΤΕΡΟ ΟΡΙΑΚΟ ΟΓΚΟ ΓΡΗΓΟΡΟΤΕΡΟΣ ΕΛΕΓΧΟΣ, ΛΙΓΟΤΕΡΗ ΜΝΗΜΗ ΣΦΑΙΡΑ ΑΑΒΒ ΟΒΒ 6-DOP ΚΥΡΤΟ ΠΕΡΙΒΛΗΜΑ Εικόνα 2.3: Οι οριακοί όγκοι µπορεί να είναι σφαίρα, ευθυγραµµισµένο οριακό κουτί (ΑΑΒΒ), προσανατολισµένο οριακό κουτί (ΟΒΒ), οχτάπλευρο polytope µε ιδιαίτερο προσανατολισµό (8-DOP) και κυρτό περίβληµα. 2.1.2 Ευθυγραµµισµένα οριακά κουτιά ως προς άξονα (AABBs) Το ευθυγραµµισµένο οριακό κουτί ως προς άξονα (AABB, axis-aligned bounding box) είναι ένας από τους πιο κοινούς τρόπους οριοθέτησης όγκων. Είναι ένα ορθογώνιο κουτί µε έξι πλευρές, που ευθυγραµµίζεται ως προς την πλευρά που 24
είναι πάντα παράλληλη στο δεδοµένο σύστηµα συντεταγµένων. Το καλύτερο χαρακτηριστικό του ΑΑΒΒ είναι ο γρήγορος έλεγχος για πιθανή επικάλυψη των αντικειµένων, ο οποίος περιλαµβάνει απλά την άµεση σύγκριση των συντεταγµένων τους. Υπάρχουν τρεις απεικονίσεις για τα ΑΑΒΒ (εικόνα 2.4). Μια από αυτές τις απεικονίσεις, είναι οι ελάχιστες και µέγιστες συντεταγµένες τιµές κατά µήκος κάθε άξονα (min-max). Αυτή η απεικόνιση διευκρινίζει την περιοχή του οριακού όγκου. Μια άλλη απεικόνιση είναι να βρούµε το ελάχιστο σηµείο (γωνία) και το πλάτος ή την έκταση διαµέτρων dx, dy, και dz από αυτό το σηµείο (min-widths). Η τρίτη απεικόνιση ορίζει το AABB ως ένα κεντρικό σηµείο C και τις ακτίνες rx, ry, rz από το σηµείο αυτό κατά µήκος των αξόνων (center-radius). Από άποψη απαιτήσεων αποθήκευσης, η τελευταία απεικόνιση είναι αποδοτικότερη, δεδοµένου ότι οι τιµές που παίρνουν οι ακτίνες αποθηκεύονται σε λιγότερα bits σε σχέση µε τις άλλες δύο απεικονίσεις των ΑΑΒΒ. Ένα χρήσιµο χαρακτηριστικό της τελευταίας απεικόνισης (κεντρικό σηµείο ακτίνες) είναι ότι µπορεί να εξεταστεί και ως µία οριοθετηµένη σφαίρα. Οι έλεγχοι για επικάλυψη των ΑΑΒΒ είναι απλοί, ανεξάρτητα από την απεικόνιση τους. ύο ΑΑΒΒ επικαλύπτονται, εάν επικαλύπτονται και στους τρεις άξονες. (α) (β) (γ) Εικόνα 2.4: Το ΑΑΒΒ µπορεί να απεικονιστεί από τις min-max τιµές, τις min-widths και τις centerradius τιµές. Οι οριακοί όγκοι ορίζονται συνήθως στο τοπικό σύστηµα συντεταγµένων των αντικειµένων που περιέχουν (µπορεί να είναι το παγκόσµιο σύστηµα συντεταγµένων). Για να πραγµατοποιηθεί ένας έλεγχος επικάλυψης µεταξύ δύο οριακών όγκων, οι οριακοί όγκοι πρέπει να µετασχηµατιστούν σε ένα κοινό σύστηµα συντεταγµένων. Που όµως είναι καλύτερα να µετασχηµατιστούν οι οριακοί όγκοι, στο παγκόσµιο σύστηµα συντεταγµένων ή σε ένα τοπικό σύστηµα συντεταγµένων; 25
Το πλεονέκτηµα του µετασχηµατισµού σε ένα τοπικό σύστηµα συντεταγµένων, είναι ότι τα αποτελέσµατα εκτελούνται στο µισό χρόνο, από ότι στο παγκόσµιο σύστηµα συντεταγµένων (εικόνα 2.5). Β Β Β Α Α Α (α) (β) (γ) Εικόνα 2.5: ύο ΑΑΒΒ Α και Β ευθυγραµµισµένα ως προς (α) το παγκόσµιο σύστηµα συντεταγµένων, (β) το τοπικό σύστηµα συντεταγµένων του Α και (γ) το τοπικό σύστηµα συντεταγµένων του Β. Τα υπολογισµένα εκ νέου ΑΑΒΒ των αντικειµένων Α και Β επικαλύπτονται στο παγκόσµιο σύστηµα συντεταγµένων. Όµως, στο τοπικό σύστηµα συντεταγµένων του αντικειµένου Β, τα αντικείµενα βρίσκονται χωριστά. Η ακρίβεια είναι ένας ακόµη λόγος που µας αναγκάζει να µετασχηµατίσουµε έναν οριακό όγκο στο τοπικό σύστηµα συντεταγµένων. Ένας έλεγχος στο παγκόσµιο σύστηµα συντεταγµένων µπορεί να µετακινήσει τα αντικείµενα µακριά από την αρχή συντεταγµένων. Μερικοί οριακοί όγκοι όπως οι σφαίρες ή το κυρτό περίβληµα, µετασχηµατίζονται φυσικά σε οποιοδήποτε σύστηµα συντεταγµένων, δεδοµένου ότι δεν υπάρχει κανένας περιορισµός για τους συγκεκριµένους περιορισµούς. Αυτοί οι οριακοί όγκοι καλούνται µη ευθυγραµµισµένοι ή µη προσανατολισµένοι όγκοι. Αντίθετα, οι ευθυγραµµισµένοι ως προς άξονα οριακοί όγκοι, όπως είναι οι ΑΑΒΒ είναι περιορισµένοι σε προσανατολισµούς. 26
2.1.3 Σφαίρες Η σφαίρα είναι ένας άλλος πολύ διαδεδοµένος οριακός όγκος, που συναγωνίζεται σε δηµοτικότητα τα ευθυγραµµισµένα οριοθετηµένα κουτιά ως προς άξονα (AABBs). Όπως τα AABBs, έτσι και οι σφαίρες κάνουν γρήγορους ελέγχους για πιθανή τοµή χωρίς µεγάλο κόστος. Οι σφαίρες έχουν επίσης το πλεονέκτηµα της αµετάβλητης περιστροφής, το οποίο σηµαίνει ότι είναι ασήµαντος ο µετασχηµατισµός τους. Πρέπει απλά να µετασχηµατιστούν στη νέα τους θέση. Οι σφαίρες ορίζονται από µια κεντρική θέση και µία ακτίνα. Με µόνο τέσσερις συνιστώσες (C(x,y,z), r), η οριοθετηµένη σφαίρα καταλαµβάνει το µικρότερο ποσοστό µνήµης. Συχνά το κέντρο του αντικειµένου µπορεί να ρυθµιστεί ώστε να συµπέσει µε το κέντρο της σφαίρας, και έτσι µόνο µία συνιστώσα, η ακτίνα χρειάζεται να αποθηκευτεί. Ο υπολογισµός µιας βέλτιστης οριοθετηµένης σφαίρας δεν είναι τόσο εύκολος όπως είναι ο υπολογισµός ενός βέλτιστου AABB. Ο έλεγχος για πιθανή επικάλυψη δύο σφαιρών είναι πολύ απλός. Υπολογίζουµε την Ευκλείδεια απόσταση µεταξύ των κέντρων των σφαιρών και τη συγκρίνουµε µε το άθροισµα των δύο ακτινών των σφαιρών. Ο έλεγχος για πιθανή σύγκρουση µε οριοθετηµένες σφαίρες, έχει λιγότερες αριθµητικές πράξεις και είναι λίγο πιο γρήγορος από τα ΑΑΒΒ. Όµως, η ταχύτητα µε την οποία γίνονται αυτοί οι έλεγχοι δεν πρέπει να είναι ο βασικός παράγοντας για την επιλογή µεταξύ των δύο οριακών όγκων. Η καλή οριοθέτηση των αντικειµένων που περιέχουν είναι επίσης ένας πολύ σηµαντικός παράγοντας που πρέπει να ληφθεί υπόψη. Υπολογισµός οριοθετηµένης σφαίρας. Μπορούµε να υπολογίσουµε µια απλή οριοθετηµένη σφαίρα µε τη βοήθεια των ΑΑΒΒ. Συγκεκριµένα, µε τον τρίτο τρόπο που υπολογίζουµε ένα ΑΑΒΒ (κεντρικό σηµείο, ακτίνες). Αν και αυτή η µέθοδος είναι γρήγορη, υπάρχουν πολύ καλύτερες µέθοδοι. 27
2.1.4 Προσανατολισµένα οριακά κουτιά (OBBs) Ένα προσανατολισµένο οριακό κουτί (OBB, oriented bounding box) είναι ένα ορθογώνιο, όπως είναι ένα AABB αλλά µε αυθαίρετο προσανατολισµό. Ένα ΟΒΒ έχει πολλές αναπαραστάσεις. Μπορεί να παρασταθεί ως: συλλογή οκτώ κορυφών, συλλογή έξι επιπέδων, ένα ζευγάρι παράλληλων επιπέδων, µια κορυφή, συν τρία ορθογώνια διανύσµατα µε αρχή την ίδια κορυφή ή µπορεί να απεικονιστεί σαν ένα κεντρικό σηµείο συν ένα πίνακα προσανατολισµού και τρεις πλευρές (µισό µήκος). Περισσότερο χρησιµοποιείται η τελευταία απεικόνιση των ΟΒΒs, γιατί κοστίζει λιγότερο (σε µνήµη και χρόνο) κατά τη διάρκεια του ελέγχου τοµής, σε σχέση µε τις άλλες απεικονίσεις των ΟΒΒs [1,8,9]. Υπάρχουν πολλοί αλγόριθµοι για τον υπολογισµό ενός ΟΒΒ. Οι περισσότεροι όµως είναι αρκετά πολύπλοκοι, αδυνατούν σε µερικές περιπτώσεις να δώσουν ένα καλά ορισµένο ΟΒΒ ή χρειάζεται να γραφούν αρκετές γραµµές κώδικα. Ένας αλγόριθµος υπολογισµού, ενός καλά ορισµένου ΟΒΒ που χρησιµοποιείται συνήθως είναι ο ακόλουθος. Έστω ότι θέλουµε να προσεγγίσουµε ένα αντικείµενο (οµάδα πολυγώνων) µε ένα ΟΒΒ. Χωρίζουµε σε τρίγωνα όλα τα πολύγωνα που έχουν περισσότερες από τρεις κορυφές. Ο αλγόριθµος υπολογισµού του ΟΒΒ συνοψίζει τις συντεταγµένες των κορυφών των πολυγώνων. Εάν οι κορυφές i τριγώνων είναι τα i i i σηµεία p, q και r, τότε χρειάζεται να υπολογίσουµε µόνο το κέντρο βάρους, µ, και τον πίνακα διακύµανσης, C : n 1 i i i µ = ( p + q + r ), 3n i= 0 1 C = ( p p + q q + r r ), 1 j, k 3 n i i i i i i jk j k j k j k 3n i= 0 Όπου n είναι ο αριθµός των τριγώνων, p i = p i µ, q i = q i µ, και r i = r i µ. Κάθε i i i T ένα από αυτά είναι ένας πίνακας 3 1, π.χ.: p = ( p1, p2, p 3). i Ο αλγόριθµος µπορεί να βελτιωθεί µε τη χρήση κυρτού περιβλήµατος. Εάν το κυρτό περίβληµα είναι ήδη διαθέσιµο, ο αλγόριθµος έχει πολυπλοκότητα O( n ). Εάν 28
όµως το κυρτό περίβληµα πρέπει να υπολογιστεί, τότε ο αλγόριθµος αποκτά πολυπλοκότητα O( nlog n ). Ο έλεγχος τοµής των OBBs είναι βασισµένος στο θεώρηµα διαχωρισµού άξονα (separating axis) [10]. Σε αντίθεση µε τους ελέγχους τοµής των προηγούµενων οριακών όγκων, ο έλεγχος για επικάλυψη µεταξύ δύο προσανατολισµένων οριακών κουτιών (OBBs) είναι αρκετά περίπλοκος. Στην πιο απλή περίπτωση, θα µπορούσαµε να ελέγξουµε εάν οι κορυφές, ενός κουτιού A δεν ανήκουν στις πλευρές ενός κουτιού Β και αντίστροφα. Αυτό όµως δεν είναι αρκετό. Αυτός ο έλεγχος δουλεύει στις δύο διαστάσεις αλλά δεν λειτουργεί σωστά στις τρεις διαστάσεις. Α Τ Β L r A T L r B Εικόνα 2.6: ύο ΟΒΒ είναι χωριστά όταν η απόσταση µεταξύ των κέντρων των κουτιών που προβάλλονται πάνω σε έναν άξονα L είναι µεγαλύτερη από το άθροισµα των προβαλλόµενων ακτινών τους Ένας ακριβής έλεγχος τοµής µεταξύ δύο ΟΒΒ είναι αυτός που είναι βασισµένος στο θεώρηµα διαχωρισµού άξονα. Εάν η απόσταση µεταξύ των κέντρων των κουτιών που προβάλλονται πάνω σε έναν άξονα L είναι µεγαλύτερη από το άθροισµα των προβαλλόµενων ακτινών τους, τότε τα διαστήµατα είναι χωριστά. ηλαδή, τα δύο αντικείµενα δεν συγκρούονται (εικόνα 2.6). Εάν, T L > r + r. A B Για δύο ΟΒΒ, µπορούν να υπάρξουν το πολύ 15 separating axes, που πρέπει να εξεταστούν για να καθοριστεί σωστά η θέση επικάλυψης των ΟΒΒ. Αυτοί οι άξονες αντιστοιχούν σε τρεις ισότιµους άξονες του Α, σε τρεις ισότιµους άξονες του Β, και εννέα άξονες κάθετους ο ένας στον άλλο. Εάν τα κουτιά δεν επικαλύπτονται σε κανέναν από τους 15 άξονες, τότε τα κουτιά είναι χωριστά. Εάν όµως επικαλύπτονται έστω και σε έναν από τους 15 άξονες, τότε υπάρχει πιθανότητα σύγκρουσης των 29
αντικειµένων που περιέχουν τα προσανατολισµένα οριοθετηµένα κουτιά. Για να συγκρούονται δύο ΟΒΒ πρέπει να επικαλύπτονται και στους 15 άξονες. Εάν υπάρξει, έστω και ένας άξονας από τους 15 στον οποίο δεν επικαλύπτονται, τότε τα δύο ΟΒΒ είναι χωριστά και ο άξονας αυτός ονοµάζεται separating axis. Ο υπολογισµός ενός καλά ορισµένου οριακού κουτιού είναι ένα δύσκολο πρόβληµα, που γίνεται δυσκολότερο, γιατί η διαφορά όγκου ενός µη καλά ορισµένου ΟΒΒ και ενός καλά ορισµένου ΟΒΒ µπορεί να είναι αρκετά µεγάλη (εικόνα 2.7). y y x x (α) (β) Εικόνα 2.7: (α) Μη καλά ευθυγραµµισµένο OBB και (β) ένα καλά ευθυγραµµισµένο OBB. 2.1.5 Ηµιχώροι και Κυρτά Περιβλήµατα Οι περισσότεροι οριακοί όγκοι µε εξαίρεση τις σφαίρες είναι κυρτά πολύεδρα. Όλα αυτά τα πολύεδρα οριακών όγκων µπορούν να απεικονιστούν ως τοµή ενός συνόλου ηµιχώρων, όπου οι ηµιχώροι διαιρούµενοι σε επίπεδα, αντιστοιχούν στις πλευρές του οριακού όγκου. Για παράδειγµα, τα ΑΑΒΒ και ΟΒΒ είναι και τα δύο τοµή έξι ηµιχώρων. Ένα τετράεδρο είναι η τοµή τεσσάρων ηµιχώρων (ο µικρότερος αριθµός ηµιχώρων που χρειάζεται για να σχηµατίσουµε ένα κλειστό όγκο). Γενικά, οι περισσότεροι ηµιχώροι χρησιµοποιούνται για καλύτερη οριοθέτηση ενός αντικειµένου. Εάν το αντικείµενο που θέλουµε να οριοθετήσουµε είναι ένα πολύεδρο, ο καλύτερος οριακός όγκος (που ορίζει πολύ καλά το αντικείµενο που εσωκλείει) είναι το κυρτό περίβληµα του αντικειµένου. Το κυρτό περίβληµα είναι ο σηµαντικότερος οριακός όγκος. Αν και το κυρτό περίβληµα σχηµατίζει πολύ καλούς οριακούς όγκους, παρουσιάζει κάποια 30
µειονεκτήµατα, κοστίζει σε χρόνο και µνήµη. Καταλαµβάνει µεγάλα ποσά µνήµης για να απεικονιστεί, και χρειάζεται περισσότερο χρόνο σε σχέση µε τους παραπάνω οριακούς όγκους, γιατί είναι δύσκολος ο υπολογισµός ενός κυρτού περιβλήµατος. Με τη µείωση του αριθµού των ηµιχώρων που χρησιµοποιούνται στην τοµή όγκου, µπορούν να σχηµατιστούν αρκετά απλούστεροι εναλλακτικοί οριακοί όγκοι. Ένας τέτοιος οριακός όγκος είναι τα k-dops. 2.1.5.1 k-dops (πολύτοπα διακριτού προσανατολισµού) Τα k-dops (discrete-orientation polytopes) είναι διακριτά προσανατολισµένα polytopes (polytopes = τοµή ενός πεπερασµένου συνόλου ηµιχώρων) [1,22]. Ο όρος πολύτοπο διακριτού προσανατολισµού κ-τάξης, αναφέρεται σε ένα κυρτό πολύτοπο του οποίου οι πλευρές προσδιορίζονται από επίπεδα µε κανονικά διανύσµατα που σχηµατίζουν ένα σύνολο κ-προσανατολισµού. Μόνο τα ελάχιστα και µέγιστα διαστήµατα κάθε άξονα αποθηκεύονται. Για παράδειγµα, σε ένα 8-DOP (polytope µε 8 πλευρές) αποθηκεύονται µόνο οι ελάχιστες και οι µέγιστες αποστάσεις από την αρχή των αξόνων (εικόνα 2.8). Τ Εικόνα 2.8: Το 8-DOP για τρίγωνο (3,1), (5,4), (1,5) είναι { 1,1,4,-4,5,5,9,2} για τους άξονες (1,0), (0,1), (1,1), (1,-1). Αν συγκρίνουµε τα k-dops µε τα OBBs, ο έλεγχος επικάλυψης των k-dops είναι αρκετά γρηγορότερος ακόµα και για µεγάλο αριθµό k-dops, χάρη στις στάνταρ διευθύνσεις των επιπέδων. Όσον αφορά τη µνήµη, η ίδια ποσότητα µνήµης που απαιτείται για ένα ΟΒΒ, σχεδόν ανταποκρίνεται σε ένα 14-DOPs. Τα k-dops έχουν πολύ καλύτερο όριο από τα OBBs, φυσικά όσο το k µεγαλώνει το k-dop πλησιάζει το κυρτό περίβληµα. Το µεγαλύτερο µειονέκτηµα των k-dops είναι ότι ακόµα και αν οι όγκοι δεν υπάρχει πιθανότητα να συγκρουστούν, τα k-dops πρέπει να αναβαθµιστούν. Γενικά, τα k-dops αποδίδουν καλύτερα όταν υπάρχουν µικρά 31
δυναµικά αντικείµενα, τα οποία ελέγχονται ενάντια σε πολλά στατικά αντικείµενα ή όταν το ίδιο αντικείµενο είναι αναµεµειγµένο σε αρκετούς ελέγχους. Η ανίχνευση τοµής µεταξύ δύο k-dop είναι παρόµοια και όχι πιο δύσκολη από τον έλεγχο τοµής δύο ΑΑΒΒ. Ο έλεγχος επικάλυψης ελέγχει k/2 διαστήµατα για πιθανή επικάλύψη. Εάν κανένα ζευγάρι από αυτά τα διαστήµατα δεν επικαλύπτεται, τότε τα k-dops δεν είναι σε τοµή. Μόνο εάν όλα τα ζευγάρια επικαλύπτονται, τα k- DOPs είναι σε τοµή. 2.1.5.2 Κυρτό Περίβληµα Έστω ένα πολυγωνικό αντικείµενο Α µε κορυφές K1, K2,..., K N. Ως κυρτό περίβληµα (convex hull) του αντικειµένου Α ορίζεται η τοµή όλων των κυρτών υποσυνόλων του 3 R που περιέχουν τα 1 2 K, K,..., K N. Το κυρτό περίβλήµα είναι επίσης κυρτό σύνολο, και µάλιστα είναι το ελάχιστο κυρτό σύνολο των σηµείων K1, K2,..., K N, το οποίο αντιστοιχεί στο µικρότερο πολύεδρο το οποίο περικλείει το Α [17]. Για τον υπολογισµό του κυρτού περιβλήµατος ενός τρισδιάστατου αντικειµένου υπάρχει µεγάλος αριθµός αλγορίθµων, π.χ. [5,30]. Ένας από τους πιο γρήγορους γνωστούς αλγόριθµους ακολουθεί τη φιλοσοφία «διαίρει και βασίλευε» [30]: το αντικείµενο διαιρείται αναδροµικά σε µικρότερα, όταν φτάσουµε σε αντικείµενα λίγων σηµείων κατασκευάζεται το κυρτό περίβληµα τους και στη συνέχεια τα περιβλήµατα συγχωνεύονται ανά δύο. Ο αλγόριθµος έχει πολυπλοκότητα O( N log N ), όπου Ν ο αριθµός των κορυφών του αντικειµένου, αλλά παρουσιάζει το µειονέκτηµα ότι η υλοποίηση του είναι ιδιαίτερα πολύπλοκη και είναι ευαίσθητος στις ειδικές περιπτώσεις. Ένας άλλος αλγόριθµός για τον υπολογισµό του περιβλήµατος είναι ο «beneathbeyond» για τρεις διαστάσεις, [29]. Πρόκειται για έναν επαναληπτικό αλγόριθµο, ο οποίος έχει πολυπλοκότητα O N 2 ( ). Αρχικά κατασκευάζεται ένα τετράεδρο από τέσσερις κορυφές του αντικειµένου Α, που αποτελεί το αρχικό κυρτό περίβληµα Q. Στο περίβληµα προστίθενται στη συνέχεια ένα-ένα τα υπόλοιπα σηµεία του 32
αντικειµένου. Κατά την προσθήκη ενός σηµείου τρίγωνα του Q είναι «ορατά» από το K i στο κυρτό περίβληµα, ορισµένα K i και κάποια άλλα όχι. Τα ορατά τρίγωνα διαγράφονται από το Q ενώ οι ακµές του Q στο όριο της ορατής περιοχής χρησιµοποιούνται για τη δηµιουργία ενός «πολυγωνικού κώνου», κάθε πλευρά του οποίου είναι ένα τρίγωνο µε κορυφή το K i και βάση την ακµή του Q. Ο κώνος αυτός προστίθεται στο Q και η διαδικασία επαναλαµβάνεται για τα υπόλοιπα σηµεία του Α (Εικόνα 2.9). Εικόνα 2.9: Το κυρτό περίβληµα ενός συνόλου πριν και µετά την προσθήκη ενός νέου σηµείου Οι πλευρές του Qi 1που βρίσκονται στο εσωτερικό του κώνου διαγράφονται από το Q i. K i. 2.2 Ιεραρχίες Οριακών Όγκων Η οριοθέτηση των αντικειµένων και ο έλεγχος τοµής των οριακών όγκων που περιέχουν τα αντικείµενα, µπορεί να οδηγήσει σε σηµαντικές βελτιώσεις της απόδοσης. Μπορεί λοιπόν µε αυτό τον τρόπο, οι έλεγχοι τοµής να έχουν απλοποιηθεί, όµως η χρονική πολυπλοκότητα παραµένει η ίδια. Με την τακτοποίηση των οριακών όγκων σε µια ιεραρχία δέντρου, η οποία ονοµάζεται ιεραρχία οριακών όγκων (bounding volume hierarchies, BVH), η χρονική πολυπλοκότητα µπορεί να µειωθεί σε λογαριθµικό αριθµό. Ένα σύνολο από οριακούς όγκους σχηµατίζει κόµβους (φύλλα δέντρου). Αυτοί οι κόµβοι οµαδοποιούνται σε µικρά σύνολα και εσωκλείονται σε µεγαλύτερους οριακούς όγκους. Η διαδικασία αυτή, επαναλαµβάνεται δηµιουργώντας µια δοµή δέντρου και σταµατά όταν έχουµε έναν ενιαίο οριακό όγκο στη κορυφή του δέντρου. 33