4 'ΓΡΑΦΙΚΑ ΚΑΙ ΕΙΚΟΝΙΚΗ ΠΡΑΓΜΑΤΙΚΟΤΗΤΑ' Μουστάκας Κ., Παλιόκας Ι., Τσακίρης Α., Τζοβάρας Δ.








next

Περιεχόμενα

Πατήστε πάνω στους τίτλους των υποκεφαλαίων ή μεταφερθείτε στην αρχική σελίδα.

Πλοήγηση 


2015

ΚΕΦΑΛΑΙΟ 4: ΑΝΑΠΑΡΑΣΤΑΣΗ ΤΡΙΣΔΙΑΣΤΑΤΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ
img
  • 4.1. Εισαγωγή
  • 4.2. Καμπύλες Επιφάνειες
  • 4.3. Μοντέλα Παράστασης 3Δ Αντικειμένων
  • 4.4. Δομές Παράστασης Πολυγωνικού Μοντέλου
  • 4.5. Απλοποίηση Πολυγωνικών Μοντέλων
  • 4.6. Αναπαράσταση του Επιπέδου Λεπτομέρειας
  • 4.7. Προτεινόμενες Ασκήσεις και Προβλήματα
  • 4.8. Βιβλιογραφία/Αναφορές



icon

Σύνοψη

Το κεφάλαιο αυτό πραγματεύεται τρία κυρίως θέματα: το χρησιμοποιούμενο μοντέλο, τις δομές δεδομένων που χρησιμοποιούνται για την κωδικοποίηση και αποθήκευση του μοντέλου και τους αλγορίθμους που υλοποιούν την παράσταση ή άλλες αλγοριθμικές πράξεις μεταξύ μοντέλων. Έμφαση θα δοθεί στα πιο διαδεδομένα μοντέλα όπως είναι το πολυγωνικό, στις επιφάνειες Bezier που χρησιμοποιούνται ως ένθετες για να συνδέσουν άλλες επιφάνειες και τον έλεγχο του επιπέδου λεπτομέρειας των μοντέλων με το Level of Detail (LOD).

Προαπαιτούμενη γνώση

Βασικές γνώσεις μαθηματικής περιγραφής διαφόρων τύπων επιφανειών. Γενικές γνώσεις σχεδίασης με βάση τον υπολογιστή (Computer Aided Design). Άνεση στην ανάγνωση κώδικα για την κατανόηση των αλγοριθμικών λύσεων που προτείνονται.


4.2. Εισαγωγή

Τα σύγχρονα συστήματα γραφικών επεξεργάζονται πολύπλοκες σκηνές με πολυάριθμα αντικείμενα τα οποία συνθέτουν την τελική εικόνα που αντιλαμβάνεται οπτικά ο χρήστης. Το πρόβλημα της αναπαράστασης αναφέρεται στον τρόπο μοντελοποίησης και δόμησης των αναπαριστώμενων αντικειμένων. Δεδομένου ότι δεν υπάρχουν ακόμη τρισδιάστατες οθόνες, ένα σύνολο από 3Δ αντικείμενα καλούνται: α. να προβληθούν πάνω σε πλεγματικές οθόνες με αποδοτικό τρόπο, β. να επιδέχονται μετασχηματισμούς και γ. να προσαρμόζονται δυναμικά στις εκάστοτε απαιτήσεις. Μέχρι σήμερα έχει προταθεί μια πληθώρα μοντέλων παράστασης 3Δ αντικειμένων ανάλογα με το είδος του αντικειμένου που αναπαριστάται και τον τρόπο που αυτό δημιουργήθηκε. Όπως θα δούμε παρακάτω, ο τρόπος δημιουργίας των μοντέλων για ποικίλα αντικείμενα του φυσικού κόσμου καθορίζεται άμεσα από το είδος της μοντελοποίησης που εξυπηρετεί καλύτερα. Για παράδειγμα, η ελεύθερη σχεδίαση με τη βοήθεια ενός προγράμματος CAD μοντελοποιεί τα αντικείμενα ως σύνολα επιφανειών, ενώ η σάρωση ενός αντικειμένου με έναν 3D scanner δημιουργεί ένα νέφος σημείων.


4.2. Καμπύλες Επιφάνειες

4.2.1. Μοντελοποίηση και Αναπαράσταση Επιφανειών

Τα 3Δ αντικείμενα αποτελούνται από την εσωτερική τους δομή και τις επιφάνειες που τα καλύπτουν. Κάποια είδη μοντέλων χειρίζονται αποκλειστικά και μόνο τις επιφάνειες που περικλείουν τα αντικείμενα καθώς ο χρήστης αντιλαμβάνεται οπτικά μόνο τις εξωτερικές επιφάνειες των μοντέλων και επομένως αυτές είναι που έχουν μεγαλύτερη σημασία. Όταν τα αντικείμενα έχουν οπές ή ακανόνιστα δομικά χαρακτηριστικά, τότε αυτά αποδίδονται ως επιφανειακά χαρακτηριστικά. Κατά συνέπεια το παρόν κεφάλαιο εστιάζει στα είδη των επιφανειών και στον τρόπο περιγραφής τους.

Οι καμπύλες επιφάνειες αποτελούν ουσιαστικά επέκταση των καμπυλών. Στα γραφικά οι επιφάνειες αναπαριστώνται ως πλέγματα σημείων τα οποία μπορεί να βρίσκονται πάνω σε ένα επίπεδο (δισδιάστατες επιφάνειες) ή να επεκτείνονται στις τρεις διαστάσεις. Οι επιφάνειες που μπορούν να οριστούν με μαθηματικό τρόπο, περιγράφονται σε παραμετρική ή σε μη παραμετρική μορφή. Κατά συνέπεια υπάρχουν επιφάνειες που μπορούν να οριστούν με βάση μια εξίσωση της μορφής:

Ex,y,z=Ax+By+Cz+d=0

{Εξ. 4.1}

Η παραπάνω σχέση αποτελεί την μη παραμετρική αναπαράσταση ενός επιπέδου. Η παραμετρική μορφή (που είναι και η προτιμότερη) κάνει χρήση δύο μεταβλητών u και v, οι οποίες είναι απαραίτητες για την περιγραφή της επιφάνειας ως προς τους τρεις άξονες X, Y και Z:

Eu,v=xu,vyu,vzu,v, uminuumax,  vminvvmax

{Εξ. 4.2}

Διακρίνουμε δύο μεγάλες κατηγορίες επιφανειών: α. τις αναλυτικές επιφάνειες, όπως είναι για παράδειγμα οι επίπεδες επιφάνειες, οι γραμμικές επιφάνειες, οι επιφάνειες που προκύπτουν από περιστροφή επίπεδης καμπύλης, οι επιφάνειες σαρώσεως και β. οι σύνθετες επιφάνειες των οποίων η περιγραφή γίνεται με πιο πολύπλοκους τρόπους (πολυωνυμικές εξισώσεις). Στα γραφικά με υπολογιστή, οι σύνθετες επιφάνειες κατασκευάζονται από άλλες μικρότερες που ονομάζονται εμβαλωματικές επιφάνειες και επιτρέπουν την κατά τμήματα σχεδίαση και έλεγχο των επιφανειών.


4.2.2. Παραμετρική Αναπαράσταση Αναλυτικών Επιφανειών

Παρατηρούμε πως με σταθεροποιημένη μία από τις δύο παραμέτρους u και v, από την εξίσωση της επιφάνειας προκύπτει μία καμπύλη. Είτε σταθεροποιηθεί το u, είτε το v, θα προκύψουν καμπύλες που ανήκουν στην επιφάνεια και ονομάζονται ισοπαραμετρικές. Με σταθερό το v, προκύπτει μια καμπύλη που έχει το u ως παράμετρο και το αντίστροφο.

Έστω ότι η Ku είναι η καμπύλη της επιφάνειας σφαίρας η οποία δημιουργείται αν θέσουμε το v σταθερό και έχει εφαπτόμενο διάνυσμα το ∂S/∂u στο σημείο Α. Παρομοίως, η Kv είναι η καμπύλη που ανήκει στην επιφάνεια της σφαίρας αν θέσουμε το u σταθερό και έχει εφαπτόμενο διάνυσμα το ∂S/∂v στο ίδιο σημείο Α. Το εξωτερικό γινόμενο των δύο αυτών διανυσμάτων (∂S/∂u) x (∂S/∂v) ορίζει το κάθετο διάνυσμα της εφαπτομένης επιφάνειας στο σημείο Α, εφόσον αυτά δεν είναι συγγραμμικά. Αν για παράδειγμα η σφαίρα είναι η υδρόγειος (κατά προσέγγιση), τότε με την παραπάνω μέθοδο προκύπτουν οι ισομετρικές καμπύλες του γεωγραφικού πλάτους και μήκους. Τα εφαπτόμενα διανύσματα σε κάθε σημείο της επιφάνειας ως:

Δuu,v=θSθui^+θSθuj^+θSθuk^, uminuumaxΔuu,v=θSθui^+θSθuj^+θSθuk^, vminvvmax

{Εξ. 4.3}

Παρακάτω πρόκειται να αναλυθούν γνωστές κατηγορίες επιφανειών καθώς και τρόποι περιγραφής και σχεδίασής τους. Κάθε κατηγορία επιφάνειας έχει τα δικά της χαρακτηριστικά που προκύπτουν από τον τρόπο δημιουργίας και κωδικοποίησής της.

4.2.2.1. Επίπεδες Επιφάνειες

Οι επίπεδες επιφάνειες, όπως υποδηλώνει και το όνομά τους, ορίζονται με βάση ένα επίπεδο και αποτελούν τμήμα αυτού. Υπάρχουν διάφοροι τρόποι να οριστεί ένα επίπεδο, αλλά ο πιο συνηθισμένος είναι με τρία (3) μη συγγραμμικά σημεία. Εναλλακτικοί τρόποι είναι (Εικόνα 4.1) με ένα σημείο και το κάθετο σε αυτήν διάνυσμα, δύο σημεία και ένα διάνυσμα κάθετο στην επιφάνεια, ένα σημείο και δύο μη συγγραμμικά διανύσματα, και δύο σημεία Α, Β και ένα διάνυσμα μη συγγραμμικό με το ΑΒ.

4.2.2.2. Γραμμικές Επιφάνειες

Γραμμική επιφάνεια είναι αυτή που δημιουργείται από δύο καμπύλες Κ1(u) και Κ2(u) όταν ενώσουμε τα σημεία τους κατά πρόοδο της μεταβλητής u. Αν δηλαδή ενωθούν ανά δύο τα σημεία των καμπυλών που έχουν την ίδια τιμή u με ένα απλό ευθύγραμμο τμήμα, τότε το σύνολο αυτών των ευθύγραμμων τμημάτων ορίζει μια γραμμική επιφάνεια. Οπότε, ένας κύλινδρος μπορεί να προκύψει ενώνοντας ανά δύο τα σημεία δύο παράλληλων κύκλων. Έστω ένα ευθύγραμμο τμήμα που ενώνει δύο σημεία P1 και P2 και περιγράφεται από την εξίσωση:

Tt=P1+tP2-P1

{Εξ. 4.4}

όπου t ∈ [0, 1].

Το ευθύγραμμο τμήμα επεκτείνεται κατά μήκος των δύο καμπυλών Κ1(u) και Κ2(u) με αποτέλεσμα να τις ενώσει σε μια επιφάνεια (Εικόνα 4.2). Αν για μια δεδομένη τιμή του u έστω um, οι δύο καμπύλες έχουν τιμές Κ1(um)=Km1 και Κ2(um)=Km2, τότε η εξίσωση της ευθείας που ενώνει τα δύο σημεία δίδεται από την εξίσωση:

Tum,v=Km1+vKm2-Km1

{Εξ. 4.5}

Άρα η επιφάνεια που προκύπτει από την παραπάνω ευθεία για όλα τα σημεία των δύο καμπυλών δίνεται από την ακόλουθη σχέση:

Eu,v=K1u+vK2u-K1u, u[0,1], v[0,1]

{Εξ. 4.6}

pixel

Εικόνα 4.1. Διάφοροι τρόποι ορισμού επίπεδης επιφάνειας: Α) Με 1 σημείο και το κάθετο σε αυτό διάνυσμα, Β) 2 σημεία και 1 διάνυσμα κάθετο στην επιφάνεια, Γ) με 1 σημείο και 2 μη συγγραμμικά διανύσματα, Δ) με 2 σημεία και 1 διάνυσμα μη συγγραμμικό με το ΑΒ και ε. με 3 μη συνευθειακά σημεία

pixel

Εικόνα 4.2. Ένα παράδειγμα γραμμικής επιφάνειας ως αποτέλεσμα ένωσης δύο καμπυλών Κ1 και Κ2


4.2.2.3. Επιφάνειες από Περιστροφή

Μια επιφάνεια μπορεί να προκύψει μετά από περιστροφή μιας επίπεδης καμπύλης γύρω από έναν άξονα κατά τρόπο ώστε κάθε σημείο της καμπύλης να περιτρέχει έναν κύκλο. Έστω μια καμπύλη που βρίσκεται στο επίπεδο XZ (προφίλ). Η περιστροφή της κατά 360ο γύρω από τον άξονα Ζ δημιουργεί το σχήμα που φαίνεται στην Εικόνα 4.3. Αν υποθέσουμε ότι η καμπύλη δίνεται από τη σχέση:

X=x(t)Z=z(t)

{Εξ. 4.7}

Με το t ∈ (a, b) και ισχύει x2+y2=1, τότε η επιφάνεια από περιστροφή είναι ο γεωμετρικός τόπος των σημείων:

M(t,θ)=x(t) cos(θ)x(t) sin(θ). t(a,b), θ[0,2π]z(t)

{Εξ. 4.8}

pixel

Εικόνα 4.3. Δημιουργία επιφάνειας από περιστροφή καμπύλης

img

Σημείωση: Για τις επιφάνειες από περιστροφή ισχύει η σχέση του de Clairaut, η οποία συνδέει την απόσταση r(t) από ένα σημείο της επιφάνειας προς τον άξονα Ζ και τη γωνία θ ανάμεσα στο διάνυσμα της εφαπτομένης και τον κύκλο στο ύψος του σημείου, δηλαδή r(t)cos(θ)=const.

Το ευθύγραμμο τμήμα y=2x, με χ ∈ [0, 3] περιστρεφόμενο γύρω από τον άξονα y δίνεται από τον τύπο [WolframAlpha1]:

xyz=x0 cos(θ)2x0x0 sin(θ) 0<x0<3,0<θ<2π

{Εξ. 4.9}

Ένα σχήμα δαχτυλιδιού για παράδειγμα μπορεί να σχεδιαστεί από περιστροφή γύρω από τον άξονα χ μιας καμπύλης σε σχήμα C, όπου ισχύει [WolframAlpha2]:

f(x)=4-x2 , -1<x0<1 και 0<θ<2π

{Εξ. 4.10}

H εξίσωση της επιφάνειας που προκύπτει από την περιστροφή είναι:

xyz=xo4-χ02cos(θ)4-χ02σιν(θ) , -1<x0<1 και 0<θ<2π

{Εξ. 4.11}

Και το εμβαδό της επιφάνειας υπολογίζεται σε:

-112π14-x2|4-x2|dx = 8π = 25.1327

{Εξ. 4.12}

Στην Εικόνα 4.4 φαίνονται ορισμένα παραδείγματα δημιουργίας ελλειψοειδών. Ανάλογα με τον άξονα περιστροφής προκύπτουν διαφορετικά αποτελέσματα.

pixel

Εικόνα 4.4. Επιφάνειες ελλειψοειδών από περιστροφή καμπύλης όπου η περιστροφή γίνεται: Α) ως προς τον άξονα x στο άκρο της καμπύλης, Β) ως προς τον άξονα z στο άκρο της καμπύλης, Γ) ως προς άξονα x αλλά εκτός της καμπύλης και Δ) ως προς τον άξονα z εκτός της καμπύλης.


4.2.2.4. Επιφάνειες Σαρώσεως από Μετατοπιζόμενη Καμπύλη

Υπάρχουν επιφάνειες που προκύπτουν από τη μετατόπιση μιας καμπύλης ως προς μια κατεύθυνση στο χώρο Ε3 (Εικόνα 4.5). Εναλλακτικά μπορούμε να υποθέσουμε ένα ευθύγραμμο τμήμα σταθερού προσανατολισμού που ακολουθεί στο χώρο μια επίπεδη καμπύλη (τροχιά). Μια παραλλαγή αυτής της επιφάνειας είναι αυτή που προκύπτει από μετατόπιση μιας κλειστής καμπύλης κατά μήκος ενός άξονα. Τέτοιες καμπύλες είναι για παράδειγμα ένας κύλινδρος που προέκυψε από έναν κύκλο που μετακινήθηκε κατά μήκος μιας ευθείας, ή ένα τρίγωνο στο επίπεδο XY δημιουργεί ένα σφηνοειδές σχήμα μετατοπιζόμενο κατά μήκος του κάθετου άξονα Ζ.

pixel

Εικόνα 4.5. Δημιουργία επιφάνειας από μετατοπιζόμενη καμπύλη: Ένα ευθύγραμμο τμήμα ξεκινάει από το ένα άκρο της καμπύλης (πάνω-αριστερά) και διατρέχει την τροχιά που χαράζει η καμπύλη (πάνω-δεξιά) έως το άλλο άκρο της (κάτω-δεξιά) για να προκύψει μια επιφάνεια σάρωσης (κάτω-αριστερά).


4.2.3. Παραμετρική Αναπαράσταση Σύνθετων Επιφανειών

Οι σύνθετες επιφάνειες είναι επιφάνειες ελεύθερης μορφής που ορίζονται από παραμετρικές εξισώσεις για να περιγράψουν τη μορφή τους. Υπάρχουν διάφορες κατηγορίες επιφανειών όπως οι δικυβικές επιφάνειες Hermite, οι NURBS για ομαλότερες επιφάνειες, οι επιφάνειες Coons και Bezier. Στο κεφάλαιο αυτό θα ασχοληθούμε περισσότερο με τις επιφάνειες Bezier που είναι πολύ διαδεδομένες στο σχεδιασμό επιφανειών, την τμηματοποίηση και ένωση επιφανειών.


4.2.3.1. Επιφάνειες Bezier

Οι καμπύλες Bezier (που εξετάσαμε σε προηγούμενο κεφάλαιο) μπορούν να γενικευθούν για να περιγράψουν παραμετρικές επιφάνειες. Με αντικατάσταση κάθε σημείου της καμπύλης Bezier βαθμού m με μια νέα διαφορετική καμπύλη Bezier βαθμού n προκύπτει η επιφάνεια:

Bu,v=i=0nj=0mBimu Bjnv pi,j, u[0,1], v[0,1] 

{Εξ. 4.13}

όπου:

Bin(u)=niui(1-u)n-1

{Εξ. 4.14}

είναι ένα πολυώνυμο Μπέρνσταϊν (Bernstein Polynomial) και (n¦i)= n!/i!(n-i)! είναι ο διωνυμικός συντελεστής.

Η προηγούμενη σχέση περιγράφει μια καμπύλη Bezier που ξεκινάει με την τιμή 0 για το t και ολοκληρώνεται για t=1. Καθώς οι επιφάνειες Bezier αποτελούν ουσιαστικά επέκταση των καμπυλών Bezier από τις δύο διαστάσεις στις τρεις, οι επιφάνειες που προκύπτουν κληρονομούν αρκετές από τις ιδιότητες των καμπυλών Bezier. Για παράδειγμα, το στερεό ελάχιστου όγκου που περιλαμβάνει τα σημεία ελέγχου μια καμπύλης Bezier περιλαμβάνει και την ίδια την καμπύλη, επειδή ισχύει:

i=0n j=0mΒimuΒinv=1

{Εξ. 4.15}

Το m δίνει το βαθμό της καμπύλης Bezier προς την κατεύθυνση του u και το ν το βαθμό προς την κατεύθυνση του v. Όπως οι καμπύλες Bezier, έτσι και οι επιφάνειες ορίζονται με μοναδικό τρόπο, με βάση τα (u+1)(v+1) σημεία ελέγχου. Το σύνολο των σημείων ελέγχου ορίζει το πολύεδρο ελέγχου. Τα σημεία ελέγχου καθορίζουν την καμπυλότητα κατά μήκος της κάθε καμπύλης. Όπως ισχύει στις καμπύλες Bezier, έτσι και στις αντίστοιχες επιφάνειες υπάρχει παρεμβολή στα ακραία σημεία ελέγχου, ενώ οι επιφάνειες κατά κανόνα δε διέρχονται από τα ενδιάμεσα σημεία ελέγχου, αλλά το σχήμα της επιφάνειας ‘έλκεται’ από αυτά στις περιοχές προσέγγισης (Εικόνα 4.6). Όπως η περίπτωση των συνευθειακών σημείων ελέγχου υποβιβάζει μια καμπύλη Bezier σε ευθύγραμμο τμήμα, έτσι και η περίπτωση των συνεπίπεδων σημείων ελέγχου υποβιβάζει μια καμπύλη Bezier σε επίπεδη επιφάνεια.

Η μετακίνηση ενός σημείου ελέγχου δύναται να επηρεάσει όχι μόνο τη γειτονιά του σημείου ελέγχου, αλλά και την ευρύτερη περιοχή της επιφάνειας. Αυτό εισάγει κάποιες δυσκολίες στην επεξεργασία των επιφανειών Bezier με λογισμικό CAD και η λύση που συνήθως εφαρμόζεται είναι η απομόνωση της περιοχής παρέμβασης από την υπόλοιπη επιφάνεια με διαίρεση της επιφάνειας (εμβαλωματικές επιφάνειες, όπως θα δούμε παρακάτω).

Παρατηρούμε ότι για σταθεροποιημένη μία εκ των δύο μεταβλητών u και v, αν εφαρμόσουμε τις ακρότατες τιμές τους και επιπλέον κρατήσουμε μόνο τις τιμές 0 και 1 για το t, τότε οι ισοπαραμετρικές καμπύλες της επιφάνειας περιορίζονται στις συνοριακές καμπύλες. Επίσης, από οποιαδήποτε συνοριακή καμπύλη κι αν ξεκινήσει η σχεδίαση, το αποτέλεσμα θα είναι το ίδιο κατά ομοιότητα με τη συμμετρία στη σχεδίαση καμπυλών Bezier (ανάγνωση των σημείων ελέγχου με αντίστροφη σειρά).

Επειδή τα σημεία ελέγχου μιας σύνθετης επιφάνειας είναι περισσότερα από ό,τι μπορεί να επεξεργαστεί ένας χρήστης συστήματος CAD, οι καμπύλες αναφοράς ορίζονται ως καμπύλες που επεξεργάζεται ο χρήστης για να μεταδώσει μια επιθυμητή γεωμετρική αλλαγή στην επιφάνεια Bezier. Καμπύλες αναφοράς μπορούν να είναι οι συνοριακές καμπύλες ή καμπύλες που επιλέγονται από το σύστημα ή από τον ίδιο τον χρήστη.

Παρά τις ενδιαφέρουσες ιδιότητες των καμπυλών Bezier, υπάρχουν και ορισμένα μειονεκτήματα από τη χρήση τους στα συστήματα γραφικών. Το κυριότερο είναι ότι αυξάνεται πολύ η πολυπλοκότητά τους όταν έχουμε πολυπληθή σύνολα σημείων ελέγχου.

pixel

Εικόνα 4.6. Επιφάνεια Bezier σε κατάσταση σχεδίασης όπου με μαύρο χρώμα φαίνονται οι συνοριακές καμπύλες και με κόκκινο χρώμα φαίνονται τα ακραία σημεία ελέγχου (SketchUp 2015)


4.2.3.2. Ο Αλγόριθμος de Casteljau

Για μια επιφάνεια Bezier, οι μεγάλες τιμές του n και του m, όπως είναι φυσικό, αυξάνουν σε μεγάλο βαθμό την πολυπλοκότητα της επιφάνειας και ταυτόχρονα το υπολογιστικό κόστος και την κατανάλωση πόρων στο σύστημα γραφικών. Για την αποδοτική περιγραφή των επιφανειών Bezier, η ενδεδειγμένη λύση είναι ο σχεδιασμός και η συνένωση μικρότερων επιφανειών με τη χρήση του αλγορίθμου deCasteljau. Μπορεί μάλιστα να εφαρμοστεί περιορισμός του βαθμού σε κυβικές επιφάνειες Bezier για τον έλεγχο της πολυπλοκότητας.

Γενικά δεν απαιτείται ο βαθμός της επιφάνειας για καθεμία από τις δύο διευθύνσεις να είναι ο ίδιος. Άμεση συνέπεια αυτού είναι ότι δεν απαιτείται, η διαίρεση να γίνει σε επιφάνειες με ίσο αριθμό σημείων ελέγχου. Επειδή, όμως, μας ενδιαφέρει η κατάτμηση σε επιφάνειες του ίδιου βαθμού, τότε γίνεται ανύψωση του βαθμού προς τη μία ή και τις δύο κατευθύνσεις. Η κατάτμηση μιας επιφάνειας ξεκινάει από την κατάτμηση των καμπυλών που την απαρτίζουν. Έστω η καμπύλη Bezier που δίνεται από το πολυώνυμο:

Βt =i=0nβi(0)bin(t), t[0,1]

{Εξ. 4.16}

Όπου bi,n είναι τα πολυώνυμα Bernstein. Η καμπύλη αυτή διαιρείται στις καμπύλες:

Β1t =i=0nβ0(i)bin(tt0), t[0,t0]

{Εξ. 4.17}

και

Β2t =i=0nβi(n-1)bin(t-t01-t0), t[t0,1]

{Εξ. 4.18}

Εφαρμόζοντας την παραπάνω κατάτμηση για ένα σημείο P(u,v) που ανήκει σε μια επιφάνεια Bezier, ο αλγόριθμος ξεκινάει για καθεμία θέση του u, έστω αρχικά τη μηδενική, να υπολογίζει τα n+1 σημεία ελέγχου που αντιστοιχούν στην καμπύλη προς την κατεύθυνση του v σε αυτή τη θέση. Αυτά ορίζουν την ισοπαραμετρική καμπύλη στη θέση της τρέχουσας τιμής του u. Το σημείο P(u,v) που αναζητάμε είναι σημείο αυτής της καμπύλης. Για να προσδιορίσουμε συγκεκριμένα ποιο σημείο είναι, θα χρειαστεί να εφαρμόσουμε ξανά τον αλγόριθμο deCasteljau, αυτή τη φορά για τη δεδομένη τιμή του v. Η δεύτερη επανάληψη του αλγορίθμου παίρνει ως είσοδο την ισοπαραμετρική καμπύλη που προέκυψε από το πρώτο βήμα και λύνει ως τη ζητούμενη τιμή του v.

Ο αλγόριθμος deCasteljau έχει διπλή χρησιμότητα: α. χρησιμοποιείται στο σχεδιασμό επιφανειών Bezier και β. βρίσκει εφαρμογή στην κατάτμηση επιφανειών. Έστω ότι η διαίρεση μια επιφάνειας Bezier με το δισδιάστατο ανάλογο του αλγορίθμου deCasteljau γίνεται σε ένα σημείο P(u0,v0). Αυτό το σημείο διαιρεί την κάθε καμπύλη Bezier στην οποία ανήκει σε δύο μέρη, άρα την επιφάνεια σε τέσσερις (4) επιμέρους επιφάνειες του ίδιου τύπου. Έτσι προκύπτουν τέσσερα σύνολα από σημεία ελέγχου Α,Β,Γ,Δ (Πίνακας 4.1). Αν η επιφάνεια είναι βαθμού mxn, τότε από τα (m+1)(n+1) σημεία ελέγχου της θα προκύψουν τέσσερις ομάδες σημείων ελέγχου (Πίνακας 4.1). Η υλοποίηση του αλγορίθμου deCasteljau για επιφάνειες Bezier προκύπτει από τον αντίστοιχο αλγόριθμο που χρησιμοποιείται στις καμπύλες και γενικεύεται έτσι ώστε να μπορεί να χειρίζεται επιφάνειες (Λίστα 4.1) [Θεοχάρης και άλλοι, 2010].

1. point bezierPointSurface (int m, int n, float u, float v; point controlPoints[][]);
2. {
3.    point tempPoint[n+1];
4.    point curvePoint[n+1];
5.
6.    for (i=0; i<=m; i++)
7.    {
8.       for (j=0; j<=n; j++)
9.       {
10.          tempPoint[j]=controlPoints[i][j];
11.       }
12.       curvePoint[i]=bezierPoint(n, tempPoint, v);
13.    }
14.    return bezierPoint(n, curvePoint, u);
15. }

Λίστα 4.1. Ψευδοκώδικας του αλγορίθμου de Casteljau για επιφάνειες Bezier

Πίνακας 4.1. Παράδειγμα επιφάνειας Bezier βαθμού 2x2 που χωρίστηκε σε 4 επιφάνειες ίδιου τύπου με τη βοήθεια του αλγορίθμου de Casteljau

Περιοχές Επιφανειών Επιφάνεια Σημεία Ελέγχου
pixel Α (m'+1)(n'+1)
B (m'+1)(n'+1)
Γ (m'+1)(n'+1)
Δ (m'+1)(n'+1)
Συνολική επιφάνεια (m+1)(n+1)
όπου
(m'+1)(n'+1)

4.2.4. Εμβαλωματικές Επιφάνειες

Ο χειρισμός επιφανειών απαιτεί μεταξύ άλλων οι επιφάνειες που σχεδιάζονται να μπορούν να ενωθούν μεταξύ τους. Μια επιφάνεια που παρεμβάλλεται ανάμεσα σε δύο ή περισσότερες άλλες για να δημιουργήσει μια συνεχή μεγαλύτερη επιφάνεια ονομάζεται εμβαλωματική επιφάνεια (patch surface). Στη συνέχεια θα εξετάσουμε μια διαδεδομένη λύση που χρησιμοποιεί δικυβικές επιφάνειες Bezier. Ένα εμβάλωμα Bezier είναι μια παραμετρική επιφάνεια αποτελείται από ένα πλέγμα 4x4 και ορίζεται με βάση ένα σύνολο από 16 σημεία ελέγχου. Στην Εικόνα 4.7 παρατίθεται ένα παράδειγμα κυβικής εμβαλωματικής επιφάνειας Bezier με m=n=3.

Όπως και στις επιφάνειες Bezier πιο γενικής μορφής που έχουν εξεταστεί μέχρι τώρα, έτσι στις εμβαλωματικές επιφάνειες δε χρειάζεται να αποθηκεύονται οι συντεταγμένες των σημείων γραμμικής παρεμβολής, αλλά μόνο των σημείων ελέγχου. Η χρήση των εμβαλωμάτων Bezier προσφέρει το πλεονέκτημα της αναλυτικής περιγραφής της επιφάνειας, του εύκολου χειρισμού και των καλύτερων συνθηκών συνέχειας στα σημεία 'συγκόλλησης' σε σχέση με άλλες εμβαλωματικές επιφάνειες χαμηλότερης τάξης, όπως τα τρίγωνα Bezier ή οι διτετραγωγικές μορφές.

pixel

Εικόνα 4.7. Εμβαλωματική δικυβική επιφάνεια Bezier: υπολογίζονται οι καμπύλες Bezier προς την κατεύθυνση u με σταθερό v (κόκκινη γραμμή) και το αντίστροφο (πράσινη γραμμή).

Από την άλλη πλευρά, είναι πιο δύσκολος ο υπολογισμός τομών με γραμμές καθιστώντας δύσκολη την άμεση εφαρμογή τεχνικών, όπως η παρακολούθηση ακτίνας (ray tracing) και των αλγόριθμων προοπτικής προβολής (perspective projection). Μια λύση στα παραπάνω προβλήματα είναι η περαιτέρω διαίρεση των εμβαλωματικών επιφανειών σε τρίγωνα (τριγωνοποίηση). Υπό μορφή πίνακα, οι εμβαλωματικές επιφάνειες Bezier μπορούν να παρασταθούν ως:

Υπό μορφή πίνακα, οι εμβαλωματικές επιφάνειες Bezier μπορούν να παρασταθούν ως:

U=u3u2u1 V=v3v2v1  B=BT=-13-313-630-33001000

{Εξ. 4.19}

όπου:

Cx = BTGxB

Cy = BTGyB

Cz = BTGzB

και

Gx=PoxP1xP2xP3xP4xP5xP6xP7xP8xP9xP10xP11xP12xP13xP14xP15x

Gy=P0yP1yP2yP3yP4yP5yP6yP7yP8yP9yP10yP11yP12yP13yP14yP15y

Gz=P0zP1zP2zP3zP4zP5zP6zP7zP8zP9zP10zP11zP12zP13zP14zP15z

X(u,v)=VTCxUVTCyUVTCzU