1 ΤΕΙ Θεσσαλονίκης Τμήμα Πληροφορικής Γραφικά Υπολογιστών: Αναπαράσταση Αντικείμενων 3D (Octrees & Fractals) Πασχάλης Ράπτης http://aetos.it.teithe.gr/~praptis praptis@it.teithe.gr
2 Contents Τεχνικές μοντελοποίησης αντικειμένων τριών διαστάσεων: Πολύεδρα Οκταδικά δένδρα (Octrees) Fractals
3 Οκταδικά Δένδρα - Octrees Τα octrees είναι δομές ιεραρχικών δένδρων που χρησιμοποιούνται στην αναπαράσταση στερεών αντικειμένων. Τα octrees είναι χρήσιμα σε εφαρμογές που απαιτούν εμφάνιση αντικειμένων από πολλές οπτικές γωνίες. Παράδειγμα: Ιατρικές εφαρμογές. Τα octrees χρησιμοποιούνται όταν ενδιαφερόμαστε για το εσωτερικό (interior) των αντικειμένων
4 Octrees & Quadtrees Η οκταδική περιγραφή ενός 3D αντικειμένου είναι μια επέκταση ενός παρόμοιου διδιάστατου σχεδίου που ονομάζεται κωδικοποίηση τετραδικού δένδρου (quadtree). Η κωδικοποίηση τετραδικού δένδρου διαιρεί μια τετράγωνη περιοχή του χώρου σε 4 ίσες περιοχές (τεταρτημόρια). Η διαδικασία επαναλαμβάνεται μέχρι να βρεθούν ομογενείς περιοχές δηλ. όλες οι συντεταγμένες σε ένα τεταρτημόριο να έχουν το ίδιο χρώμα. Αυτές οι περιοχές στην συνέχεια διευθετούνται σε ένα δένδρο.
5 Quadtree - Παράδειγμα 1
Images taken from Hearn & Baker, Computer Graphics with OpenGL (2004) 6 Quadtree - Παράδειγμα 2
7 Octrees Η quadtree κωδικοποίηση παρέχει σημαντικό κέρδος σε αποθηκευτικό χώρο (hard disk) όταν υπάρχουν μεγάλες έγχρωμες περιοχές σε μια περιοχή στον χώρο. Ένα octree εφαρμόζει την ίδια προσέγγυση όπως τα quadtrees, αλλά διαιρεί μια κυβική περιοχή του 3D χώρου σε octants Η διαίρεση συνεχίζεται μέχρι να βρεθούν ομογενείς περιοχές. Κάθε περιοχή μέσα σε ένα octree αναφέρεται ως ογκοστοιχείο (volume element ή voxel)
8 Octrees (2) Στον τριδιάστατο χώρο ομογενείς περιοχές μπορούν να θεωρηθούν με όρους (in terms) του χρώματος, του τύπου του υλικού, της πυκνότητας ή οποιωνδήποτε άλλων φυσικών χαρακτηριστικών Τα voxels εχουν την μοναδική δυνατότητα να είναι κενά (empty)
Images taken from Hearn & Baker, Computer Graphics with OpenGL (2004) 9 Octrees (3) Δεδομένα στην αναπαράσταση του octree κόμβου (node) Περιοχή ενός χώρου τριών διατάσεων
10 Octree Παράδειγμα 1 To octree περιλαμβάνει τμήματα μιας implicitly defined σφαίρα: μέσα σε κάθε τερματικό node τα vertices επιφάνειας υπολογίζονται και συνδέονται για να σχηματίσουν ένα πολύγωνο
Taken from http://www-evasion.inrialpes.fr/membres/sylvain.lefebvre/these/ 11 Octree Παράδειγμα 2
12 Fractals Οι τεχνικές μοντελοποίησης που αναφέρθηκαν χρησιμοποιούν μεθόδους Ευκλείδειας γεωμετρίας Τα αντικείμενα περιγράφονταν με εξισώσεις Αυτό είναι ΟΚ για αντικείμενα που κατασκευάζονται. Τι συμβαίνει με κάποια φυσικά αντικείμενα που έχουν ακανόνιστα-ανώμαλα (irregular) ή κερματισμένα (fragmented) χαρακτηριστικά? Βουνά, σύννεφα, κοράλλια,
13 Fractal Με τον διεθνή όρο φράκταλ (μορφόκλασμα ή μορφοκλασματικό σύνολο) στα Μαθηματικά, τη Φυσική αλλά και σε πολλές επιστήμες ονομάζεται ένα γεωμετρικό σχήμα που επαναλαμβάνεται αυτούσιο σε άπειρο βαθμό μεγέθυνσης, κι έτσι συχνά αναφέρεται σαν "απείρως περίπλοκο".
14 Fractal Geometry Methods & Procedural Modelling Φυσικά αντικείμενα μπορούν να περιγραφούν με την χρήση μεθόδων fractal γεωμετρίας. Fractal μέθοδοι χρησιμοποιούν διαδικασίες και όχι εξισώσεις στην μοντελοποίηση αντικειμένων διαδικαστική (procedural) μοντελοποίηση. Το κύριο χαρακτηριστικό κάθε διαδικαστικού μοντέλου είναι ότι το μοντέλο δεν βασίζεται σε δεδομένα αλλά στην υλοποίηση μιας διαδικασίας με ένα σύνολο από ορισμένους κανόνες
15 Fractals Ένα fractal αντικείμενο έχει δύο βασικά χαρακτηριστικά: Άπειρες (infinite) λεπτομέρειες σε κάθε σημείο Ομοιότητες σε μέρη (κομμάτια) του αντικειμένου και στα γενικά χαρακτηριστικά του Mandelbrot Set Video From: Η καμπύλη του Koch http://www.fractal-animation.net/ufvp.htm
16 Παραγωγή (generating) Fractals Ένα fractal αντικείμενο παράγεται με την επαναλαμβανόμενη εφαρμογή μιας καθορισμένης συνάρτησης μετασχηματισμού σε σημεία σε μια περιοχή στον χώρο Αν P0 = (x0, y0, z0) είναι ένα επιλεγμένο αρχικό σημείο, κάθε επανάληψη της συνάρτησης μετασχηματισμού F παράγει επαναλαμβανόμενα επίπεδα (successive levels) λεπτομερειών με υπολογισμούς: ( ) ( ) ( ) P = F P, P = F P, P = F P,... 1 0 2 1 3 2 Γενικά ο μετασχηματισμός εφαρμόζεται σε ένα ορισμένο σημείο ή σε γραμμές ή καμπύλες ή επιφάνειες.
17 Παραγωγή (generating) Fractals(2) Παρόλο που τα fractal αντικείμενα, εξ ορισμού έχουν απεριόριστες (infinite) λεπτομέρειες, εφαρμόζουμε τον μετασχηματισμό σε περιορισμένο αριθμό επαναλήψεων. Αντικείμενα που εμφανίζονται έχουν περιορισμένες διαστάσεις ώστε να χωρούν σε μια σελίδα ή σε μια οθόνη. Η εμφάνιση των fractal αντικείμενων βελτιώνεται όσο αυξάνεται ο αριθμός των επαναλήψεων. Ο αριθμός των λεπτομερειών περιορίζεται από την ανάλυση (resolution) των συσκευών εμφάνισης εκτύπωσης [πάντα υπάρχει και η μεγέθυνση (zoom) για περισσότερες λεπτομέρειες]
Παράδειγματα: Images taken from Hearn & Baker, Computer Graphics with OpenGL (2004) 18 Η νιφάδα (snowflake) του Koch Τοπίο : Animation fractal
Images taken from Hearn & Baker, Computer Graphics with OpenGL (2004) 19 Η νιφάδα του Koch
20 Παράδειγμα: Φτέρες (Ferns) Μια όμοια τεχνική μπορεί να χρησιμοποιηθεί στην παραγωγή βλάστησης (vegetation)
21 Fractal Διάσταση Το πλήθος των μεταβολών (variation) στην δομή των fractal αντικειμένων περιγράφεται ως fractal διάσταση (fractal dimension), D Όσο πιο ανώμαλα είναι τα αντικείμενα τόσες πιο μεγάλες είναι οι fractal διαστάσεις Ο υπολογισμός της fractal διάστασης μπορεί να είναι δύσκολος ειδικά για περίπλοκα (complex) fractals Δεν εξετάζονται σε λεπτομέρειες αυτοί οι υπολογισμοί
22 Τύποι Fractals Τα fractals χωρίζονται σε τρεις κατηγορίες Aυτοόμοια (Self similar) fractals Αυτά έχουν μέρη (parts) που είναι σμικρύνσεις κομματιών του αντικειμένου Χρησιμοποιούνται στην μοντελοποίηση δένδρων, shrubs Self affine fractals Έχουν μέρη που σχηματίζονται με διαφορετικές παραμέτρους σμίκρυνσης σε κάθε διάσταση Χρησιμοποιούνται για νερό, σύννεφα, terrain Αμετάβλητα fractal σύνολα (invariant fractal sets) Δημιουργούνται με μη-γραμμικούς μετασχηματισμούς Mandelbrot set, Julia set Μικρή χρήση
23 Μέθοδοι για την Τοπογραφία Random Midpoint Displacement Μια από τις πιο επιτυχημένες χρήσεις των fractal τεχνικών στα γραφικά είναι η δημιουργία τοπίων (landscapes). Μια αποτελεσματική μέθοδος στην δημιουργία τοπίων είναι η random midpoint displacement.
Μέθοδοι για την Τοπογραφία Random Midpoint Displacement (2) Εύκολο είναι να γίνει στις δύο διαστάσεις Εύκολα επεκτείνεται στις τρεις διαστάσεις για την δημιουργία εδάφους (terrain) Μπορεί να εισαχθεί ένας παράγοντας τραχύτητας (roughness) H για να ελεγχθεί η εμφάνιση του εδάφους Επιφάνειες ελέγχου μπορούν να χρησιμοποιηθούν για να ξεκινήσει με ένα γενικό ανάγλυφο σχήμα εδάφους (terrain shape) Demo Δημιουργίας Terrain: http://world.std.com/~bgw/applets/1.02/mtfractal/mtfractal.html
25 Fractals σε ταινίες - Eιδικά effects
26 Σύνοψη Σήμερα εξετάσαμε: Πως τα octrees και τα fractals χρησιμοποιούνται στην μοντελοποίηση. Ειδικά τα fractals είναι σχετικά μια εξωτική τεχνική μοντελοποίησης και μπορεί να γίνει εξαιρετικά αποτελεσματική. Στο επόμενο μάθημα θα δούμε τις κυρτές (curved) επιφάνειες που είναι πολύ σημαντικές