Professional Documents
Culture Documents
ΓΡΑΦΙΚΑ ΗΥ ΠΕΤΡΟΣ ΚΑΡΒΕΛΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ
ΓΡΑΦΙΚΑ ΗΥ ΠΕΤΡΟΣ ΚΑΡΒΕΛΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ
ΠΕΤΡΟΣ ΚΑΡΒΕΛΗΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ
Εισαγωγή
Περιοχές εφαρμογών
Περιβάλλοντα γραφικής αλληλεπίδρασης (GUI).
Σχεδίαση με υπολογιστή (CAD): πχ Μηχανολογία, Αρχιτεκτονική,
VLSI design
Γεωγραφικά Συστήματα Πληροφοριών (GIS).
Εικονική πραγματικότητα (π.χ. προσομοιώσεις πτήσεως, εκπαίδευση
γιατρών )
Ιατρικές εφαρμογές.
Οπτικοποίηση δεδομένων.
Ψυχαγωγία και Τέχνη (π.χ. κινηματογράφος, παιχνίδια, διαφημίσεις).
Γραφικά Υπολογιστών:
Σημαντικοί Σταθμοί
Γεωμετρία
Φωτισμός / Ένταση
Κίνηση
Γεωμετρία
3D Μοντέλα
Προβολή
Απεικόνιση
Τεχνολογία (Συσκευές Εισόδου / Εξόδου)
Συνήθεις συσκευές εισόδου: ποντίκι, πληκτρολόγιο.
Συνήθεις συσκευές εξόδου: πλεγματική οθόνη υψηλής ανάλυσης:
3Δ Ψηφιοποιητές
•Χειροκίνητοι, Laser, Stereo, Pattern
Ψηφιοποίηση Κίνησης (Motion Capture)
3D Models - Σκανάρισμα
(http://graphics.stanford.edu/projects/mich/).
Scanned Model
Δημιουργία 3D models
http://graphics.stanford.edu/papers/ecosys/ecosys.pdf
Γεωμετρία- Προβολή-Απεικόνιση
http://www.cs.unc.edu/~walk/
Φωτισμός
Μοντελοποίηση φωτισμού
Ανάκλαση (Reflectance)
Υφή (Texture)
Σκίαση (Shadows -visibility)
Ενδοανακλάσεις (Interreflections)
Φωτισμός (Lighting)
Φως
Εκπομπή φωτονίων
Κάποια εντοπίζονται
από το μάτι/ κάμερα
Measuring BRDF
Αντανάκλαση στο δέρμα
BRDF BSSRDF
http://graphics.stanford.edu/papers/bssrdf/
Μαλλιά
http://graphics.stanford.edu/papers/hair/hair-sg03final.pdf
Υφή (Texture)
Photo
Επαναλαμβνόμενο Pattern
Υφή (Texture)
Photo
Διανακλάσεις (Interreflections)
()
()
Physically real motion
Παράδειγμα
Παράδειγμα
Παράδειγμα
Παράδειγμα
Παράδειγμα
Παράδειγμα
Παράδειγμα
Παράδειγμα
Παράδειγμα
Παράδειγμα
Παράδειγμα
Παράδειγμα
Παράδειγμα
Παράδειγμα
Παράδειγμα
Παράδειγμα
Οπτικοποίηση
Οπτικοποίηση
Οπτικοποίηση
Οπτικοποίηση
Οπτικοποίηση
Εφαρμογές Γραφικών
Ψυχαγωγία:
Κινηματογράφος
Ψυχαγωγία
Εφαρμογές Γραφικών
Ιατρικές Απεικονίσεις
The Visible Human Project
Καθημερινή χρήση
Επιστημονική Οπτικοποίηση
Επιστημονική Οπτικοποίηση
Εφαρμογές Γραφικών
Εκπαίδευση
Ψυχαγωγία:
Παιχνίδια
GT Racer 3
Παιχνίδια
Προοπτική
Μηχανές
Προοπτική
Lorenzetti
Birth of the Virgin
1342
Leonardo
• The Last Supper
• 1498
Σχήμα
Το επεξεργαζόμαστε…
Γραφικό Σύστημα
Επεξεργασίας & Εξόδου
Γραφικό σύστημα επεξεργασίας
CRT
Στοιχείο
θέρμανσης
(Heating element
filament)
Ηλεκτρόνια
εκπέμπονται προς
Κάθετα και
οριζόντια πεδία
απόκλισης
Ακτίνα χτυπάει σε
μια οθόνη
επικαλυμμένη με
φώσφορο
Υλικό για γραφικά
2/6/2018
2/6/2018
Πλεγματική ή διανυσματική απεικόνιση
Διανυσματική Οθόνη
Σχεδιασμός (γραμμικών) αντικειμένων με κατάλληλη μετακίνηση
δέσμης ηλεκτρονίων.
Εντολές της μορφής: point(x,y), line(x1,y1,x2,y2) στο display-file.
Ανάγκη φρεσκαρίσματος περιορίζει μέγιστο αριθμό εντολών του
display-file:
Πλεγματική οθόνη
Σάρωση της οθόνης ανά γραμμή και σε συγκεκριμένο χρονικό ρυθμό
Γραμμή σάρωσης
Διανυσματικές οθόνες
Αρχικές οθόνες
Έλεγχος X,Y με κάθετε / οριζόντιες πλάκες
απόκλισης
Για την ένταση χρησιμοποιείται το Z (κοντύτερα
αντικείμενα φαίνονται φωτεινότερα)
Προβλήματα
Πολύπλοκες σκηνές προκαλούν οπτική
σύγχυση
Τεχνολογίες Απεικόνισης :
έγχρωμη CRTs
Έγχρωμη CRTs
Τρία πυροβόλα ηλεκτρονίων
Μεταλλική μάσκα σκίασης να διαφοροποιεί τις
ακτίνες
Υλικό για γραφικά
Γραφικά
Video
Controller
Οθόνη
Video RAM
Τεχνολογίες Απεικόνισης : LCDs
Οθόνες υγρών κρυστάλλων (LCDs)
LCDs: οργανικά μόρια, σε κρυσταλλική μορφή, τα
οποία υγροποιούνται από θέρμανση ή με
ηλεκτρομαγντητικό πεδίο
Οι κρύσταλλοι πολώνουν το φως στους 90º.
Μεταβιβάσιμη οθόνη
Εκτυπωτές
Διαχωρισμός σε διανυσματικούς &
πλεγματικούς.
Εγχρωμοι με χρήση αφαιρετικού χρωματικού
μοντέλου (π.χ. CMY):
Π.χ. θαλασσί μπογιά αφαιρεί κόκκινη συνιστώσα
προσπίπτοντος λευκού φωτός.
Αποτέλεσμα: (R+G+B) - R = G+B = θαλασσί
Συχνά CMY+B για οικονομία μελανιού και καλύτερα
αποτελέσματα.
Διανυσματικοί Εκτυπωτές
Σχεδιογράφος τυμπάνου:
Επιτραπέζιος σχεδιογράφος:
Πλεγματικοί Εκτυπωτές
Dot-Matrix: κεφαλή με ακίδες σε 1 ή
περισσότερες στήλες:
Πεταγόμενη ακίδα σχηματίζει κουκίδα (παρεμβάλλεται
μελανοταινία).
Κεφαλή σαρώνει κατά Χ, χαρτί κατά Υ.
Αύξηση ανάλυσης με πολλαπλές σαρώσεις (αργή) ή
πολλαπλές στήλες ακίδων, μετατοπισμένες κατά Υ.
Χρώμα με έγχρωμες μελανοταινίες.
Πλεγματικοί Εκτυπωτές
Laser: τύμπανο επιστρωμένο με σελένιο:
Ξεκινά κάθε στροφή με +ve ηλεκτρικό φορτίο.
Οριζόντια σάρωση με laser, ανάβει όπου δεν θέλουμε εκτύπωση.
Πέρασμα από μελάνι -ve φόρτισης.
Επαφή με χαρτί.
X 3 για έγχρωμη εκτύπωση:
Πλεγματικοί Εκτυπωτές
Ink-Jet: εκτοξεύει CMY μελάνι από 3 jets ταυτόχρονα κατά τη
σάρωση
Συσκευές Εισόδου
Μεμβράνη αφής: τοποθέτηση στην οθόνη
Επιστρέφει 2Δ συντεταγμένες δάκτυλου.
Εύχρηστη αλλά χαμηλής ανάλυσης.
Joystick: επιστρέφει κατεύθυνση (Ε,Π,Α,Δ) + ποσό
μετακίνησης
3Δ 3Δ 3Δ Απομάκρυνση
Μετασχ/σμοί Μετασχ/σμός Πίσω 3Δ
Μαθηματικά
Μοντέλου Παρατήρησης Επιφανειών Αποκοπή
Μοντέλα
Είσοδοι
(για κάθε καρέ)
Παράσταση
Στην Οθόνη:
Σάρωση Απόκρυψη
Αντιταύτιση Γραμμών/ Προβολή
Φωτισμός Επιφανειών 1
2 D ΣΣΟ
Υφή 2
(SCS)
Ερωτήσεις
1. Ποια η αρχιτεκτονική που επικρατεί στα γραφικά στους σύγχρονους υπολογιστές;
Στους σύγχρονους υπολογιστές, ο κεντρικός επεξεργαστής διαβάζει το μοντέλο από μία βάση
(π.χ. βάση πολυγώνων) και δέχεται εισόδους από τον χρήστη μέσω του ποντικιού και του
πληκτρολογίου. Σαν συσκευή εξόδου έχει επικρατήσει να χρησιμοποιείται η πλεγματική οθόνη
που περιλαμβάνει μια μνήμη για την απεξάρτηση της διαδικασίας δημιουργίας εικόνων από τη
διαδικασία ανανέωσης (refresh) της οθόνης.
Η παραπάνω αρχιτεκτονική χαρακτηρίζεται από την ύπαρξη καναλιού εξόδου (οθόνη) προς το
χρήστη πολύ μεγάλης χωρητικότητας αλλά και καναλιού εισόδου (ποντίκι, πληκτρολόγιο) πολύ
μικρής χωρητικότητας. Μελλοντικά, θα μπορούσαν να χρησιμοποιηθούν μέθοδοι τεχνητής
όρασης και αναγνώρισης ομιλίας σε συνδυασμό με συσκευές εισόδου που πρωτοεμφανίζονται
στην εικονική πραγματικότητα, όπως για παράδειγμα το γάντι εισόδου δεδομένων (data glove),
για να μεταβάλλουν τη διαδικασία εισόδου ώστε να μοιάζει με τη μετάδοση δεδομένων από
άνθρωπο σε άνθρωπο, αυξάνοντας έτσι τη χωρητικότητα του καναλιού εισόδου.
Ερωτήσεις
3. Ποιες οι διαφορές διανυσματικής και πλεγματικής οθόνης;
Η διανυσματική οθόνη ήταν το πρώτο είδος οθόνης που χρησιμοποιήθηκε στα γραφικά,
και χαρακτηρίζεται από το ότι η δέσμη ηλεκτρονίων μπορεί να κινηθεί ελεύθερα στην
οθόνη. Όταν πρόκειται να σχεδιαστούν σημεία η ευθύγραμμα τμήματα πάνω στην οθόνη,
τότε η δέσμη κατευθύνεται στο συγκεκριμένο σημείο και μετά ενεργοποιείται ή
αντίστοιχα μετακινείται σε ενεργοποιημένη κατάσταση από το αρχικό στο τελικό σημείο
του ευθύγραμμου τμήματος. Σε αντίθεση, η επιφάνεια της πλεγματικής οθόνης
αποτελείται από ένα 2Δ πλέγμα διακριτών pixels τα οποία μπορούν να πάρουν
ανεξάρτητα κάποιο χρώμα. Το φρεσκάρισμα γίνεται ανά γραμμές σάρωσης από πάνω
προς τα κάτω.
3Δ 3Δ 3Δ Απομάκρυνση
Μετασχ/σμοί Μετασχ/σμός Πίσω 3Δ
Μαθηματικά
Μοντέλου Παρατήρησης Επιφανειών Αποκοπή
Μοντέλα
Είσοδοι
(για κάθε καρέ)
Παράσταση
Στην Οθόνη:
Σάρωση Απόκρυψη
Αντιταύτιση Γραμμών/ Προβολή
Φωτισμός Επιφανειών 1
2 D ΣΣΟ
Υφή 2
(SCS)
Παράδειγμα:
Μια ευθεία που προσεγγίζεται με εικονοστοιχεία.
dy
(0,b)
dx
x
Ευθύγραμμο Τμήμα: Αλγόριθμος DDA
Κριτήρια καλού αλγόριθμου ευθύγραμμου τμήματος:
Σταθερό πάχος ανεξάρτητο κλίσης, όχι κενά (συνεκτική).
Pixels όσο το δυνατόν πλησιέστερα στη μαθηματική πορεία της.
Ταχύτητα.
Εστω ευθύγραμμο τμήμα μεταξύ P (x , y ) και P (x , y ) 1ου
1 1 1 n n n
οκταμορίου:
Για κάθε σημείο P(x, y) του ευθύγραμμου τμήματος ισχύει:
yn y1 Δy y x yn x1
y s x b με s και b 1 n
line1(x1,y1,xn,yn,colour) xn x1 Δx xn x1
int x1,y1,xn,yn,colour;
/*colour η τιμή του χρώματος του ευθύγραμμου τμήματος*/
{float s,b,y; int x;
s=(yn-y1)/(xn-x1);
b=(y1*xn-yn*x1)/(xn-x1);
for (x=x1;x<=xn;x++)
{y=s*x+b;
setpixel(x,round(y),colour);}
}
line2 (x1,y1,xn,yn,colour)
int x1,y1,xn,yn,colour;
{float s,y; int x;
s=(yn-y1)/(xn-x1);
y=y1;
for (x=x1;x<=xn;x++)
{setpixel(x,round(y),colour);
y=y+s;
}
}
Η ευθεία
Η ευθεία
Παράδειγμα:
Η ευθεία
Ο Αλγόριθμος DDA
(Digital Differential Analyser)
Ευθύγραμμο Τμήμα: Αλγόριθμος 3 (χωρίς στρόγγυλευση)
Στρογγύλευση (y) μέσα στο βρόχο μπορεί να αποφευχθεί:
Διαχωρισμός y σε ακέραιο (y) και δεκαδικό (error) μέρος.
error είναι η απόσταση του pixel (xi+1, yi) από ιδεατή ευθεία:
line3 (x1,y1,xn,yn,colour)
int x1,y1,xn,yn,colour;
{float s,error; int x,y;
s=(yn-y1)/(xn-x1);
y=y1;
error=0;
for (x=x1;x<=xn;x++)
{setpixel(x,y,colour);
error=error+s;
if (error>=0.5){y++; error--}
}
}
Η ευθεία
Λαμβάνουμε υπόψη την απόσταση λάθους από το κέντρο του
pixel.
Y Άξονας
Οκταμόριο ταχυτ. Κίνησης Άλλος άξονας
3 2
1 x Αυξάνεται
1 2 y »
4
3 y Μειώνεται
X 4 x »
5 8
5 x Αυξάνεται
7 6 y »
6
7 y Μειώνεται
8 x »
NE
P(xp, yp) E
Η ευθεία
F(x, y)= 0 = dy x - dx y + B dx
Αρχικά d= F(x1 + 1, y1 + ½)
dy αν διαλέξουμε Ε
dnew-dold=
dy - dx αν διαλέξουμε ΝΕ
Η ευθεία
final(x1, y1, x2, y2, color)
int x1, y1, x2, y2, color;
{ int d, x, y, dx, dy;
dx= x2-x1; dy= y2-y1; d= -2*dy-dx;
incrE= 2dy; incrNE= 2*(dy-dx);
for (x=x1; x<=x2; x++) {
setpixel(x, y, color);
if (d<=0) d+= incrE;
else d+= incrNE, y++;
}
}
Ο Αλγόριθμος του Bresenham για την
Ευθεία 1/2
Κύκλος
8-πλή συμμετρία, δημιουργούμε ένα
οκταμόριο (έστω 2ο)
circle_symmetry (x,y,colour)
int x,y,colour;
{setpixel(x,y,colour);
setpixel(y,x,colour);
setpixel(y,-x,colour);
setpixel(x,-y,colour);
setpixel(-x,-y,colour);
setpixel(-y,-x,colour);
setpixel(-y,x,colour);
setpixel(-x,y,colour);
}
Ο κύκλος
Aλγόριθμος του Bresenham:
Ο κύκλος
Πως επιλέγεται το επόμενο pixel που θα ανάψει;
Ο κύκλος
Έχουμε 2 επιλογές
Ο κύκλος
Ελέγχουμε αν το P(x,y) είναι
μέσα στον κύκλο: R
x2 y 2 R2
Μεταβλητή απόφασης:
e =d -d όπου
i 1 2
d1 yi2 y 2 και d 2 y 2 yi 12
διαφορετικά » » » (x +1, y )
i i
Αν ei 0 yi 1 yi ei 1 ei 4 xi 1 2
Αν ei 0 yi 1 yi 1
ei 1 ei 4 xi 6 2 yi 12 yi2 2 yi 1 yi
ή ei 1 ei 4 xi 1 2 4 yi 1
e1 2 r 2 r 12 2r 2 3 2r
Κύκλος: Αλγόριθμος Bresenham
circle (r,colour)
int r,colour;
{int x,y,e;
x=0; y=r;
e=3-2*r;
while (x<=y)
{circle_symmetry(x,y,colour);
x++;
if (e>=0) {y--; e=e-4*y}
e=e+4*x+2;}
}
Ο κύκλος
Αλγόριθμος ενδιάμεσου σημείου
11/12/07
Ο κύκλος
Εξίσωση κύκλου: F(x,y) = 0 = x2 + y2 - R2
Επιλογή E ή SE
d= F(M)= F(xp + 1, yp - ½)
E
P(xp, yp)
M
SE
Ο κύκλος
Δd= 2 xp + 3 αν διαλέξουμε το Ε,
(Δd=F(M1)-F(M) γιατί αν επιλέξω το Ε το επόμενο μέσο
μου θα είναι το Μ1)
Δd= 2 xp - 2 yp + 5 αν διαλέξουμε το SE
(Δd=F(M2)-F(M) γιατί αν επιλέξω το SΕ το επόμενο μέσο
μου θα είναι το Μ2)
Αφού κατασκευάσουμε ένα σημείο, μπορούμε να
κατασκευάσουμε και τα υπόλοιπα επτά συμμετρικά σημεία του
κύκλου.
symmetric_points(int x, int y, int color) {
setpixel(x, y, color); setpixel (y, x, color);
setpixel(x, -y, color); setpixel (-y, x, color);
setpixel(-x, y, color); setpixel (y, -x, color);
setpixel(-x, -y, color); setpixel (-y, -x, color);
}
Ο κύκλος (1η προσέγγιση)
circle(int color) {
int x, y, R; double d;
x= 0; y= R; d= 5.0/4.0-R;
symmetric_points(x, y, color);
while (y>x) {
if (d<=0) d+= 2.0*x + 3.0, x++;
else d+= 2.0*(x-y) + 5.0, x++, y--;
symmetric_points(x, y, color);
}
}
Ξεκινώ από το P(0,R) και κινούμαι μέχρι το (√R/2,√R/2) κατασκευάζοντας τον κύκλο
συμμετρικά. Το αρχικό Μ (xp+1,yp-1/2) = (1,R-1/2).
Άρα d=F(M)= 5.0/4.0-R
11/12/07
Ελλειψη
Πολλοί αλγόριθμοι για κωνικές τομές:
Εδώ αλγόριθμος Αγάθου-Θεοχάρη-Μπεμ (1998).
Γρήγορος, μικρή απαίτηση ακρίβειας ακεραίων, σωστή
μετάβασης περιοχής.
Εξίσωση έλλειψης με κέντρο (0,0): x /a + y /b = 1
2 2 2 2
Ορίζουμε:
d1 yi2 y 2
d 2 y 2 yi 12
και θέτουμε:
d d1 d 2 yi2 y 2 y 2 yi 12
Θέτουμε e = y -y οπότε: i
d ε 2ε 2 4 yi ε 1 2 yi
Ελλειψη
Τιμή απόφασης: d(1/2) = 1/2 δηλαδή για ε = 1/2
Αν d 1/2 επιλέγουμε pixel B
διαφορετικά επιλέγουμε pixel D
Διευκολύνουμε περαιτέρω αυξητικό υπολογισμό
παίρνοντας d = a (d1-d2) 2
οπότε:
Αν d a /2 επιλέγουμε pixel B
2
(2.4)
διαφορετικά επιλέγουμε pixel D
Ελλειψη
Αυξητικός υπολογισμός d
d1,i a 2 d1 d 2
(2.5)
a 2 yi2 a 2 yi 12 2a 2 y 2
(2.5)
Ομως από την εξίσωση της έλλειψης για το σημείο
(x +1, y) έχουμε a y =a b -b (x +1)
i
2 2 2 2 2
i
2
οπότε: d1,i 2a 2b2 2b2 xi 12 a 2 yi2 a 2 yi 12 (2.6)
2a b 2b xi 1 2b 4b xi 1 a y a 2 yi 1 1
2 2 2 2 2 2 2 2 2
i 1
Ελλειψη
Αλλά από την (2.6) έχουμε 2a 2b 2 2b 2 xi 12 d1,i a 2 yi2 a 2 yi 12 ,
οπότε:
d1,i 1 d1,i a 2 yi21 a 2 yi 1 12 a 2 yi2 a 2 yi 12 2b 2 4b 2 xi 1
d1,i 1 d1,i 2b 2 4b 2 xi 1 4a 2 yi 1
d1,i 1 d1,i 2b 2 4b 2 xi 1
2 2a 2 3 2 2 4a 2 yi 3 2 a 2 2a 2 yi 4a 2 yi 1 a 2 2
d 3
(2.7) προκύπτει:
d 2,i d1,i a 2 2 yi 1 b 2 2 xi 1
Ellipse (a,b,colour)
int a,b,colour;
Ελλειψη
{int a_sqr,b_sqr,a22,b22,a42,b42,x_slope,y_slope,d,mida,midb,x,y;
x=0; y=b;
a_sqr=a*a; b_sqr=b*b;
a22=a_sqr+a_sqr; b22=b_sqr+b_sqr;
a42=a22+a22; b42=b22+b22;
x_slope=b42; /*x_slope==(4*b^2)*(x+1) πάντα */
y_slope=a42*(y-1); /*y_slope==(4*a^2)*(y-1) πάντα */
mida=a_sqr>>1;
midb=b_sqr>>1;
d=b22-a_sqr-(y_slope>>1)-mida; /* αφαιρούμε a^2/2 για βελτιστοποίηση */
/* περιοχή 1 */
while (d<=y_slope)
{setpixel(x,y,colour);
if (d>0)
{d=d-y_slope;
y--;
y_slope=y_slope-a42;}
d=d+b22+x_slope;
x++;
x_slope=x_slope+b42;}
/*Αλλαγή περιοχής*/
d=d-(x_slope+y_slope)>>1+(b_sqr-a_sqr)+(mida-midb);
/* περιοχή 2 */
while (y>=0)
{setpixel (x,y,colour);
if (d<=0)
{d=d+x_slope;
x++;
x_slope=x_slope+b42;}
d=d+a22-y_slope; y--;
y_slope=y_slope-a42;}
}
Η έλλειψη Φ(x, y)
b2x a2y 2
Δύο ειδών κλίσεις
< 45o 1 45o
> 45o
Έλλειψη
Απλός υπολογισμός
11/12/07
Η έλλειψη
Κλίση > 45ο
Εξίσωση έλλειψης: F(x,y) = 0 = b2 x2 + a2 y2 - a2 b2
Επιλογή E ή SE - Μέσο Μ
d= F(M)= F(xp + 1, yp - ½)
Νέα μέσα ΜE και MSE
E
P(xp, yp)
M ME
SE
MSE
Η έλλειψη
Κλίση < 45ο
Εξίσωση έλλειψης: F(x,y) = 0 = b2 x2 + a2 y2 - a2 b2
Επιλογή S ή SE - Μέσο Μ
d= F(M)= F(xp + ½, yp - 1)
Νέα μέσα ΜS και MSE
P(xp, yp)
S SE
M
MSE
MS
Η έλλειψη (απλός)
ellipse(int color) {
int x, y, a, b;
double d1, d2;
x=0; y=b;
d1= b^2- a^2*b + 0.25*a^2;
4_symmetric_points(x, y, color);
while (a^2*(y-0.5)> b^2*(x+1)) {
if (d1<0) d1+= b^2*(2*x+3), x++;
else d1+= b^2*(2*x+3) + a^2*(-2*y+2), x++; y--;
4_symmetric_points(x, y, color);
}
}
Η έλλειψη (απλός-συνέχεια)
d2= b^2*(x+0.5)^2- a^2*(y-1)^2- a^2*b^2;
while (y>0) {
if (d2<0) d2+= b^2*(2*x+2)+a^2*(-2*y+3), x++, y--;
else d2+= a^2*(-2*y+3), y--;
4_symmetric_points(x, y, color);
}
}
Παρόμοιες μετατροπές για ακέραια αριθμητική
Ερωτήσεις & Απαντήσεις
Περιγράψτε τα κύρια χαρακτηριστικά που πρέπει να έχει ένας
αλγόριθμος σχεδίασης ευθειών.
Ερωτήσεις
Ποιο το κύριο χαρακτηριστικό του αλγορίθμου DDA για τη σχεδίαση
ευθειών;
Ελέγχουμε αν το σημείο που χαρακτηρίζει το τρέχον pixel (συνήθως η κάτω δεξιά γωνία του)
βρίσκεται εντός ή εκτός του κύκλου. Έτσι, αν P(x,y) το τρέχον pixel ελέγχουμε:
2 2 2
i. αν x +y <R , οπότε το P βρίσκεται μέσα στον κύκλο και άρα θα πρέπει να
επιλέξουμε το πάνω pixel.
2 2 2
ii. αν x +y >R , οπότε το P βρίσκεται έξω από τον κύκλο και άρα θα πρέπει να
επιλέξουμε το κάτω pixel.
Αν ένα σημείο ανήκει στον κύκλο, θα ανήκουν και τα επτά συμμετρικά του σημεία;
2 2 2
Από την εξίσωση του κύκλου x +y =R(1) προκύπτει πως αν το σημείο (x,y) ανήκει στον
κύκλο, τότε θα ανήκουν και τα επτά συμμετρικά του. Και αυτό γιατί αφού το (x,y) ανήκει
στον κύκλο, θα επαληθεύει την εξίσωση (1). Την εξίσωση (1) όμως θα την επαληθεύουν και
τα επτά συμμετρικά του σημεία, καθώς για καθένα από αυτά, υψώνουμε τις συντεταγμένες του
στο τετράγωνο, οπότε παίρνουμε το ίδιο αποτέλεσμα. Έτσι, θα ανήκουν στον κύκλο και τα
επτά συμμετρικά του αρχικού σημείου.
Ερωτήσεις
Στον αλγόριθμο του Bresenham για την κατασκευή ενός κύκλου, η
σχεδίαση του σε ένα μόνο οκταμόριο είναι αρκετή για την κατασκευή
ολόκληρου του κύκλου; Αν ναι, γιατί;
Για κάθε pixel του κύκλου που ανάβουμε στο οκταμόριο, ανάβουμε παράλληλα
και τα επτά συμμετρικά του, καθώς θα ανήκουν και αυτά στον κύκλο, λόγω της
συμμετρίας του κύκλου. Έτσι, έχοντας ανάψει όλα τα pixels του κύκλου σε αυτό
το οκταμόριο, έχουμε ανάψει τελικά όλα τα pixels του κύκλου, που είναι και το
ζητούμενο του αλγορίθμου.
Θα πρέπει να λάβουμε υπ’ όψη ότι η έλλειψη έχει δύο κλίσεις. Όσο ισχύει πως
b2x a2y, η γωνία είναι μεγαλύτερη από 45ο διαφορετικά είναι μικρότερη από
45ο.
Ερωτήσεις
Αν ένα σημείο ανήκει στην έλλειψη, ποια θα είναι τα συμμετρικά του
σημεία που θα ανήκουν και αυτά στην έλλειψη;
Από την εξίσωση της έλλειψης, x2 /a2+y2 /b2 =1 συμπεραίνουμε πως αν ένα
σημείο (x,y) την επαληθεύει, τότε θα την επαληθεύουν και τα σημεία (-x,y), (x,-y)
και (-x,-y). Όμως αν το (x,y) ανήκει στην έλλειψη, δεν ξέρουμε αν και το (y,x) θα
2 2 2 2
ανήκει καθώς x2 / a2 +y2 / b2 όχι κατ’ ανάγκη ίσο με y /a +x /b .
Η σχεδίαση σε ένα μόνο οκταμόριο δεν είναι αρκετή. Απαιτείται σχεδίαση σε ένα
τεταρτημόριο. Και αυτό γιατί θα πρέπει να ληφθούν υπ’ όψη και οι δύο κλίσεις της
έλλειψης. Σε καθένα από τα δύο οκταμόρια, ανάβοντας ένα pixel, ανάβουν και τα 3
συμμετρικά του. Έτσι, μόνο όταν έχουμε ολοκληρώσει το σχεδιασμό και στα δύο
οκταμόρια, θα έχουμε ολοκληρώσει το σχεδιασμό ολόκληρης της έλλειψης.
Μετασχηματισμοί 2Δ
Μετασχηματισμοί Μοντελοποίησης
(modeling transformations)
Καθορισμός μετασχηματισμών των
αντικειμένων
Τα αντικείμενα περιγράφονται στο δικό τους
σύστημα συντεταγμένων
Επιτρέπει την χρήση του ορισμού ενός
αντικειμένου πολλές φορές σε μια σκηνή
Συνοπτικά
2D Μετασχηματισμοί
Βασικοί 2D μετασχηματισμοί
Αναπαράσταση Πινάκων
Σύνθεση πινάκων
2D Μετασχηματισμοί Μοντέλων
Συντεταγμένες
Μοντέλου
Αλλαγή Κλίμακας
y
Αλλαγή Κλίμακας
Περιστροφή
Μετατόπιση
Γενικές Συντεταγμένες
2D Μετασχηματισμοί Μοντέλων
Συντεταγμένες
Μοντέλου
Ας το δούμε
Σε
λεπτομέρεια
Γενικές Συντεταγμένες
2D Μετασχηματισμοί Μοντέλων
Συντεταγμένες
Μοντέλου
Αρχική θέση σε
at (0, 0) με βάση
Τους x- και y-
άξονες
2D Μετασχηματισμοί Μοντέλων
Συντεταγμένες
Μοντέλου
Κλίμακα .3, .3
Rotate -90
Translate 5, 3
2D Μετασχηματισμοί Μοντέλων
Συντεταγμένες
Μοντέλου
Κλίμακα .3, .3
Περιστροφή -90
Translate 5, 3
2D Μετασχηματισμοί Μοντέλων
Συντεταγμένες
Μοντέλου
Κλίμακα .3, .3
Περιστροφή -90
Μετατόπιση 5, 3
Γενικές Συντεταγμένες
Αλλαγή Κλίμακας (Κλιμάκωση)
Αλλαγή Κλίμακας μιας συντεταγμένης σημαίνει
πολλαπλασιασμό κάθε στοιχείου της με τον ίδιο
αριθμό
Ομοιόμορφη Αλλαγή Κλίμακας σημαίνει ότι η αλλαγή
κλίμακας είναι ίδια για όλα τα στοιχεία της
2
X 2,
Y 0.5
Κλιμάκωση :
x ' ax
y ' by
Σε μορφή πίνακα:
x ' a 0 x
y ' 0 b y
Πίνακας κλίμακας
2-D Περιστροφή
(x’, y’)
(x, y)
x’ = x cos() - y sin()
y’ = x sin() + y cos()
2-D Περιστροφή
x = r cos ()
y = r sin ()
x’ = r cos ( + )
(x’, y’) y’ = r sin ( + )
Τριγωνομετρικές συναρτήσεις…
Αντικατάσταση…
x’ = x cos() - y sin()
y’ = y sin() + x cos()
2-D Περιστροφή
Μετατόπιση:
x’ = x + tx
y’ = y + ty
Αλλαγή Κλίμακας:
x’ = x * sx
y’ = y * sy
Στρέβλωση:
x’ = x + hx*y
y’ = y + hy*x Οι μετασχηματισμοί
Περιστροφή: Μπορούν να συνδυάζονται
x’ = x*cos - y*sin (με απλή άλγεβρα)
y’ = x*sin + y*cos
Βασικοί 2D Μετασχηματισμοί
Μετατόπιση:
x’ = x + tx
y’ = y + ty
Κλιμάκωση :
x’ = x * sx
y’ = y * sy
Στρέβλωση :
x’ = x + hx*y
y’ = y + hy*x
Περιστροφή:
x’ = x*cos - y*sin
y’ = x*sin + y*cos
Βασικοί 2D Μετασχηματισμοί
Μετατόπιση:
x’ = x + tx
y’ = y + ty
Κλιμάκωση:
x’ = x * sx (x,y)
y’ = y * sy (x’,y’)
Στρέβλωση :
x’ = x + hx*y
y’ = y + hy*x
x’ = x*sx
Περιστροφή: y’ = y*sy
x’ = x*cos - y*sin
y’ = x*sin + y*cos
Βασικοί 2D Μετασχηματισμοί
Μετατόπιση:
x’ = x + tx
y’ = y + ty
Κλιμάκωση :
x’ = x * sx
y’ = y * sy
Στρέβλωση :
x’ = x + hx*y
y’ = y + hy*x
(x’,y’)
Περιστροφή:
x’ = (x*sx)*cos - (y*sy)*sin
x’ = x*cos - y*sin
y’ = (x*sx)*sin + (y*sy)*cos
y’ = x*sin + y*cos
Βασικοί 2D Μετασχηματισμοί
Μετατόπιση:
x’ = x + tx
y’ = y + ty
Κλιμάκωση:
x’ = x * sx (x’,y’)
y’ = y * sy
Στρέβλωση :
x’ = x + hx*y
y’ = y + hy*x
x’ = ((x*sx)*cos - (y*sy)*sin) + tx
Περιστροφή: y’ = ((x*sx)*sin + (y*sy)*cos) + ty
x’ = x*cos - y*sin
y’ = x*sin + y*cos
Βασικοί 2D Μετασχηματισμοί
Μετατόπιση:
x’ = x + tx
y’ = y + ty
Αλλαγή Κλίμακας:
x’ = x * sx
y’ = y * sy
Στρέβλωση :
x’ = x + hx*y
y’ = y + hy*x
x’ = ((x*sx)*cos - (y*sy)*sin) + tx
Περιστροφήn: y’ = ((x*sx)*sin + (y*sy)*cos) + ty
x’ = x*cos - y*sin
y’ = x*sin + y*cos
Μετασχηματισμοί 2Δ και 3Δ
Υπάρχουν 4 βασικοί γεωμετρικοί μετασχηματισμοί που χρησιμοποιούνται στα
γραφικά:
μετατόπιση, αλλαγή κλίμακας (κλιμάκωση), περιστροφή, στρέβλωση.
παραπάνω μετασχηματισμών.
Θέσεις αντικειμένων Θέση
και φωτεινών πηγών παρατηρητή
3Δ 3Δ 3Δ Διαγραφή
Μετασχ/σμοί Μετασχ/σμός Πίσω 3Δ
Μαθηματικά
Μοντέλου Παρατήρησης Επιφανειών Αποκοπή
Μοντέλα
Παράσταση
Είσοδοι Στην Οθόνη:
(για κάθε καρέ)
Σάρωση
Αντιταύτιση
Απόκρυψη
Φωτισμός Γραμμών/ Προβολή
Επιφανειών
Υφή
3. P , Q , R E 3 τέτοιο ώστε P R u w ( v ) w v ( P Q ) ( Q R ) P R
P
•
PQ w
PR u
Q • •R
Q R v
Αρχές διανυσματικών χώρων
Σε ένα διανυσματικό χώρο Δ (π.χ. R3) ορίζονται 2 πράξεις
Διανυσματική πρόσθεση α + b
Βαθμωτός πολλαπλασιασμός λα, λ R
Ιδιότητες διανυσματικής πρόσθεσης (α , b, c Δ) :
Αντιμεταθετικότητα :
α +b = b +α
Προσεταιρισμός : a ( b c ) ( a b ) c
Ύπαρξη μηδενικού στοιχείου 0 Δ : 0 a a 0 a
Ύπαρξη αντιθέτου: a ( a ) 0
Ιδιότητες βαθμωτού πολλαπλασιασμού ( a , b Δ, , , 1 R )
Επιμερισμός βαθμωτού πολλαπλασιασμού ως προς πρόσθεση:
( b ) b
Επιμερισμός πρόσθεσης ως προς βαθμωτό πολλαπλασιασμού :
( )
Προσεταιρισμός: ( ) ( )
Τέλος, 1 a a
Διανυσματικοί Χώροι
Παραδείγματα
2Δ & 3Δ Ευκλείδιοι διανυσματικοί χώροι
π.χ. για a, b R3 , a b (a1, a2 , 3 ) (b1, b2 , b3 ) (a1 b1, a2 b2 , a3 b3 )
πολυώνυμα βαθμού κ
Γραμμικός συνδυασμός x1xm Δ: y 1 x1 m xm
x1xm Δ:
Γραμμική ανεξαρτησία
υπάρχει μόνο αν η 1 x1 m xm 0 έχει μόνη λύση την
μηδενική 1 2 m 0
π.χ. τα i (1,0,0), j (0,1,0), k (0,0,1) του Ε3 είναι γραμμικά
ανεξάρτητα
Αν y 1 x1 m xm x1 xm είναι γραμμικά ανεξάρτητα
τότε η έκφραση του y είναι μοναδική
Διανυσματικοί Χώροι
Βάση: σύνολο γραμμικώς ανεξαρτήτων διανυσμάτων
Μπορούν να να παράγουν τον R3, δηλαδή κάθε διάνυσμα του R3 μπορεί να
γραφτεί σαν γραμμικός συνδυασμός των διανυσμάτων της βάσης.
Το πλήθος τους καλείται διάσταση του διανυσματικού χώρου. Έστω Ε3 ,R3.
Ύπαρξη πολλαπλών βάσεων π.χ. (1,0,0), (1,1,0), (1,1,1) είναι επίσης βάση του Ε3.
Αν v = xi + yj + zk όπου (i , j , k ) είναι βάση(δηλ. είναι 3 διανύσματα του R3 )
τότε (x, y, z) ονομάζονται συντεταγμένες
(O , i , j , k ) ονομάζεται σύστημα συντεταγμένων όπου O σταθερή αρχή και
(i , j , k ) βάση. Δεξιόστροφα, αριστερόστροφα.
(i , j , k ) ορίζουν άξονες συντεταγμένων.
Μήκος διανύσματος v ( x, y, z ) ορίζεται ως v x 2 y 2 z 2
Απόσταση μεταξύ P και P ορίζεται P P ( x x ) 2 ( y y ) 2 ( z z ) 2
1 2 2 1 2 1 2 1 2 1
y
z
• Συνήθως τα i,j,k είναι τα μοναδιαία j k
διανύσματα(μέτρο 1) σε κάθε διάσταση:
i x
Εσωτερικό Γινόμενο
n
v w v w
i 1
i i
3Δ Ευκλείδιος χώρος: v w v x wx v y w y v z wz
Ιδιότητες
Συμμετρική: v w w v
v v 0 v 0
Διγραμμική: v (u w) v u a ( v w)
Κανονικοποίηση: v v .
v είναι μοναδιαίο.
v
Υπολογισμός γωνίας θ μεταξύ v και w
Ισχύει v w v w cos cos
vw
v w
1 v w
Άρα cos ( ) ή cos 1 (v w) αν v , w μοναδιαία, δηλαδή έχουν
vw
μέτρο ίσο με 1, v w 1
Εξωτερικό Γινόμενο
Συσχετισμένοι(Affine) Μετασχηματισμοί
Συσχετισμένος (ή βαρυκεντρικός) συνδυασμός σημείων P P E3
n n 0 n
P a P
j 0
j j όπου 0 n R και a
j 0
j 1
Απόδειξη n
n
a j Pj A a j Pj t
j 0 j 0
n n
a j APj a j t
j 0 j 0
n n
a j ( APj t ) a j ( Pj )
j 0 j 0
Συσχετισμένοι Μετασχηματισμοί
Γραφικά: συσχετισμένοι μετασχηματισμοί d
x
Μετατόπιση T P IP d όπου I μοναδιαίος 3 3 και d d y
το διάνυσμα μετατόπισης
d z
Στροφή (έστω γύρω από z-άξονα κατά γωνία φ) R P Rz , P
cos sin 0
όπου Rz , sin cos 0
0 0 1
sx 0 0
Αλλαγή κλίμακας S P DP όπου D 0 s y 0
0 0 s z
dy (x+dx,y+dy)
(x,y)
X
dx
s 0
x x s 0 s x
Αλλαγή κλίμακας: P S(s x , s y ) P όπου S(s x , s y ) x x
, ά P
0 sy 0 s y y s y y
ομοιόμορφη αν s s
x y
Y Y
Π.χ διπλασιασμός στον άξονα x και
υποδιπλασιασμός στον άξονα y
(3, 7)
• καθώς sx=2 και sy=0.5
(2, 5)
• • (4, 5)
(6, 3.5)
(4, 2.5)
• (8, 2.5)
• •
(2, 2) • •(4, 2)
(4, 1) • • (8, 1)
X X
Συσχετισμένοι Μετασχηματισμοί 2Δ
Στροφή κατά γωνία θ ( αντίθετα από φορά δεικτών ρολογιού)
Y
P x,y
m
P x, y
m
X
x m cos mcos cos sin sin x cos y sin
y m sin mcos sin sin cos x sin y cos
Ισχύει x m cos θ και y m sin θ
Συσχετισμένοι Μετασχηματισμοί 2Δ
Στρέβλωση κατά Χ άξονα με παράγοντα a P SH P με SH 1 a
x x 0 1
1 x x y
δηλ. P SH x P x x ay y y
0 1 y y
1 0
Στρέβλωση κατά Υ άξονα με παράγοντα b SH y
Y b 1
Y
Y
• (4, 12)
• (4, 10)
(2, 8) C
(2, 4) (4, 4) •
• • (10, 4) (12, 4)
A • • •
•
(2, 2)
•(4, 2) B (2, 6)
• • (8, 2)
(6, 2)
X
X
Αρχικό τετράγωνο
Στρέβλωση κατά μήκος του άξονα Χ X
Στρέβλωση κατά μήκος του άξονα Υ
Αναπαράσταση Πινάκων
a b
c d
Πολλαπλασιαμός πίνακα με στήλη πίνακα
εφαρμογή μετασχηματισμού στο σημείο
x' a b x x' ax by
y ' c d y y ' cx dy
Αναπαράσταση Πινάκων
Μετασχηματισμοί συνδυασμένου με
πολλαπλασιασμό
x ' a b e f i j x
y ' c d g h k l y
2x2 Πίνακες
2D Στρέβλωση?
x ' x shx * y x ' 1 shx x
y ' shy * x y y ' sh 1 y
y
2x2 Πίνακες
2x2 Πίνακες
Ομογενείς Συντεταγμένες
x' x tx
y' y t y
Ομογενείς Συντεταγμένες
Ομογενείς
συντεταγμένες x
Αναπαραστούν x Ομογενείς Συντετ
y y
συντεταγμένες 2
διαστάσεων με ένα 1
διάνυσμα τριών
διαστάσεων
Οι ομογενείς συντεταγμένες διευκολύνουν
τις πράξεις στα γραφικά
Ομογενείς Συντεταγμένες
P x, y , w
W
•
1•
• P x / w, y / w, 1
Επίπεδο
•
w=1
X
Ομογενείς Συντεταγμένες
Συσχετισμένοι Μετασχηματισμοί: πίνακες 3x3
1 0 d x
Μεταφορά P T d P με T d
0 1 d y
T 1 d T d
0 0 1
1 0 d x1 1 0 d x 2 1 0 d x1 d x 2
1
Σύνθεση: T d T d P 0
2 1 d y1 0 1 d y 2 P 0 1 d y1 d y 2 P
0 0 1 0 0 1 0 0 1
s x 0 0
Αλλαγή κλίμακας P S s x , s y P με S s x , s y 0 s y 0
S 1 s x , s y S 1 / s x ,1 / s y 0 0 1
s x1 s x 2 0 0
Σύνθεση: S s x1 , s y1 S s x 2 , s y 2 P 0 s y1 s y 2 0 P
0 0 1
Αν s 1 έχουμε σμίκρυνση και πλησίασμα στο O , παρομοίως για s
x y
Ομογενείς Συντεταγμένες
cos sin 0
Στροφή P R P με R sin cos 0
0 0 1
R 1 R R T
1 a 0 1 0 0
Στρέβλωση SH x 0 1 0 SH y b 1 0
0 0 1 0 0 1
Σύνθεση Μετασχηματισμών
Μεταφορά κατά c c C O
S T c S sx , s y T c
12
Α 11 είναι ορθογώνιος αν
21 22
1 1 2 1
1 2 0
Ορίζουσα Α 1
Γεωμετρικές Ιδιότητες
a11 a12 tx
a11 a12
M a21 a22 t y είναι μετασχηματισμός ομοιότητας αν
a21 a22
0 0 1
είναι ορθογώνιος
Ένας μετασχηματισμός ομοιότητας διατηρεί αναλοίωτα μήκη &
γωνίες
π.χ. μοναδιαίο τετράγωνο μοναδιαίο τετράγωνο
Οποιαδήποτε σύνθεση Τ & R είναι μετασχηματισμός ομοιότητας
Αν στη σύνθεση υπάρχουν S & SH έχουμε μετασχηματισμό
συσχετισμένο αλλά όχι ομοιότητας
Διατηρείται παραλληλία ευθειών όχι όμως μήκη & γωνίες
Μετατόπιση
Ομογενείς Συντεταγμένες
Παράδειγμα
μετατόπισης
x' 1 0 t x x x t x
y' 0 1 t y y t
y y
1 0 0 1 1 1
tx = 2
ty = 1
Ομογενείς Συντεταγμένες
Προσθέτουμε μια τρίτη συντεταγμένη σε κάθε
διδιάστατο σημείο 2D
(x, y, w) αναπαραστά ένα σημείο στη θέση (x/w, y/w)
(x, y, 0) αναπαραστά εάν σημείο στο άπειρο
(0, 0, 0) δεν επιτρέπεται
y
2
(2,1,1) or (4,2,2) or (6,3,3)
1
Ένα νέο σύστημα x
συντεταγμένος κατάλληλο 1 2
να αναπαραστά πολλούς
χρήσιμους
μετασχηματισμούς
Βασικοί 2D Μετασχηματισμοί
Ομογενείς μετασχηματισμοί
2D Μετασχηματισμοί
Βασικοί 2D μετασχηματισμοί
Αναπαράσταση Πινάκων
Σύνθεση πινάκων
3D Μετασχηματισμοί
Βασικοί 3D μετασχηματισμοί
Αντίστοιχοι με τους 2D
Σύνθεση Πινάκων
Σύνθεση Πινάκων
p’ = T * R * S * p
“Global” “Local”
Σύνθεση Πινάκων
a a
a
a a
Λάθος Σωστό
R(45) T(-3) R(45) T(3)
Σειρά Πολλαπλασιασμού - Σωστό
Σύνθεση Πινάκων
Κατηγοριοποίηση Μετασχηματισμών
Ασκήσεις
1. Εξηγήστε πως μπορούμε να μετατρέψουμε τις τυπικές καρτεσιανές
συντεταγμένες (x,y,z) σε ομογενείς και το αντίστροφο.
i. Μετατροπή από καρτεσιανές συντεταγμένες σε ομογενείς:
( x , y, z) ( x, y, z,1) ή ( x , y, z ) ( xw , yw , zw , w )
ii. Μετατροπή από ομογενείς συντεταγμένες σε καρτεσιανές:
( x , y , z , w ) ( x w , y w , z w ,1 )
Ασκήσεις
2. Δείξτε πως μπορούμε να υλοποιήσουμε μία 2Δ περιστροφή γύρω από ένα
αυθαίρετο σημείο. Περιγράψτε και έναν πίνακα στις ομογενείς
συντεταγμένες για κάθε βήμα της παραπάνω διαδικασίας.
Περιστροφή κατά γωνία φ γύρω από το σημείο p=(x,y).
ii. Περιστροφή κατά γωνία φ γύρω από την αρχή των αξόνων: Βασικός πίνακας
μετασχηματισμού: cos sin 0
sin cos 0
0 0 1
iii. Μεταφορά του p στην αρχική του θέση: Βασικός πίνακας μετασχηματισμού:
1 0 x
0 1 y
0 0 1
Ασκήσεις
3. Υπολογισμός του πίνακα μετασχηματισμού του συμμετρικού ενός σημείου
ως προς έναν άξονα W που σχηματίζει γωνία θ με τον άξονα Χ.
Υ A(x,y)
W
θ
X
Οι βασικοί μετασχηματισμοί είναι γνωστοί μόνο ως προς συγκεκριμένο σταθερό σημείο Ο.
Οποιοσδήποτε μετασχηματισμός μπορεί να προκύψει ως σύνθεση των τεσσάρων βασικών μετασχηματισμών.
Διαδοχικά βήματα:
Ασκήσεις
Υ
Q’’'(x’’',y’’')
• • Q(x,y)
Q’’(x’’,y’’)
• •Q’(x’,y’)
• P(h,k)
θ V
Χ
O(0,0)
Διαδοχικά βήματα:
Μεταφορά του κέντρου περιστροφής P στην αρχή των αξόνων Ο. Η μεταφορά θα γίνει κατά ένα
διάνυσμα V (h,k). Βασικός μετασχηματισμός T ( v )
Περιστροφή κατά γωνία θ ως προς την αρχή των αξόνων, εφαρμόζοντας το μετασχηματισμό R(θ)
Μεταφορά του P στην αρχική του θέση. Η μεταφορά θα γίνει κατά ένα διάνυσμα v ( h , k )
Βασικός μετασχηματισμός T(v)
Άρα, Q ' ' ' (x ' ' ', y' ' ' ) T ( v ) R ( ) T ( v ) Q ( x , y ) R ( , P ) Q ( x , y )
Ασκήσεις
5. Εκτελέστε περιστροφή κατά 45o του τριγώνου A(0,0), B(1,1), C(5,2)
α)ως προς την αρχή των αξόνων και β)ως προς το σημείο P(-1,-1).
A BC
α) To τρίγωνο ABC περιγράφεται υπό μορφή πίνακα ως εξής: ΑΒC= 0 1 5
0 1 2
1 1 1
Αρκεί μια απλή περιστροφή κατά 45 o , άρα
β)Η περιστροφή δεν γίνεται ως προς το Ο(0,0) αλλά ως προς το P(-1,-1). Άρα, κάνουμε εφαρμογή
του προηγούμενου παραδείγματος 2 στον τύπο R(θ,P) για θ=45 o και P(-1,-11).
Ασκήσεις
5. Εκτελέστε περιστροφή κατά 45o του τριγώνου A(0,0), B(1,1), C(5,2)
α) ως προς την αρχή των αξόνων και β) ως προς το σημείο P(-1,-1).
1 0 1 cos45 sin45 0 1 0 1 0 1 5
o o
ABC T (v ) R(45o ) T (v ) ABC 0 1 1 sin45o cos45o 0 0 1 1 0 1 2
0 0 1 0 0 1 0 0 1 1 1 1
6.
Ασκήσεις
Υπολογισμός του μετασχηματισμού που κάνει scaling(αλλαγή κλίμακας) ενός
αντικειμένου ως προς ένα δοσμένο σημείο P(h,k). Το scaling θα πρέπει να
γίνεται κατά a μονάδες στον άξονα Χ και κατά b στον άξονα Υ.
Υ
Διαδοχικά βήματα:
Βήμα 1:Μεταφορά του P στην αρχή των αξόνων, κατά ένα
διάνυσμα v ( h , k )
θ
Βασικός πίνακας μετασχηματισμού T( v)
1 0 5 2 0 0 1 0 5
S(a, b, P) T(v) S(a, b) T(v) 0 1 2 0 2 0 0 1 2
0 0 1 0 0 1 0 0 1
Ασκήσεις
7. Να διπλασιαστεί το μήκος των πλευρών ενός τριγώνου με κορυφές Α(0,0),
Β(1,1) και C(5,2), διατηρώντας σταθερή την κορυφή C(5,2).
Υ
Υ
C
C 2
2
Β -5
1 Β’
Χ
Α Χ 5
1 5
Αρχικό τρίγωνο Α’
Τελικό τρίγωνο
1 0 5 2 0 0 1 0 50 1 5 5 3 5
S(2,2,C) T(v) S(2,2) T(v) ABC 0 1 2 0 2 0 0 1 20 1 2 2 0 2
ABC
0 0 1 0 0 1 0 0 1
1 1 1 1 1 1
Ασκήσεις
8. Να περιγραφεί ο μετασχηματισμός που βρίσκει το συμμετρικό ενός αντικειμένου
ως προς μια ευθεία L, που τέμνει τον άξονα Υ στο (0,b) και σχηματίζει γωνία θ με
τον Χ. Υ
Υ
P’
P
(0,b)
θ
v
Χ
Ασκήσεις
Βήμα 2:Στροφή της ευθείας L κατά γωνία –θ για να ευθυγραμμιστεί με τον Χ. Βασικός
πίνακας μετασχηματισμού R(-θ).
Βήμα 3: Υπολογισμός του συμμετρικού του σημείου P ως προς τον άξονα Χ. Β.
Βασικός πίνακας μετασχηματισμού S(1,-1).
Βήμα 4:Στροφή της ευθείας L κατά γωνία θ. Βασικός πίνακας μετασχηματισμού R(θ).
Βήμα 5: Επαναφορά του (0,b) στην αρχική του θέση. Βασικός πίνακας
μετασχηματισμού T ( v )
Θέλουμε να βρούμε το συμμετρικό ως προς την ευθεία, y=2 η οποία έχει σημείο τομής με
τον άξονα Υ το (0,2) και είναι παράλληλη ως προς τον άξονα x.
Υ
L
(0,2)
' T (v) S(1,1) T (v)
Χ
ABCD T(v) S(1,1) T(v) ABCD
Ασκήσεις
b)Η x=2 είναι ευθεία παράλληλη με τον άξονα Υ, άρα δεν έχει σημείο τομής με αυτόν. Έχει
δηλαδή άπειρη κλίση. Επομένως θα πρέπει να ακολουθήσουμε τα εξής βήματα:
Υ x=2
v
(2,0) Χ
Βήμα 3:Μεταφορά κατά το διάνυσμα v (2,0) για να επαναφέρουμε την ευθεία στην αρχική της θέση.
Ασκήσεις
Βρείτε το συμμετρικό του πολυγώνου Π με κορυφές Α(-1,0), Β(0,-2),C(1,0) και
D(0,2) ως προς y=x+2 45
H ευθεία y=x+2 έχει κλίση 1, άρα εφθ=1, δηλαδή 45 . Το σημείο τομής με τον
άξονα Υ είναι το (0,2), δηλαδή b=2.
Υ
y=x+2
(0,2)
45 Χ
R(θ)= R(45).
Βήμα 5: Επαναφορά του (0,b)= (0,2) στην αρχική του θέση. Βασικός πίνακας
μετασχηματισμού T ( v )
' T ( v ) R ( ) S (1,1) R( ) T ( v ) M L
Ασκήσεις 1 0 1 0
0 2 0 2
1 1 1 1
P ' T (v ) R ( ) S (1,1) R ( ) T ( v ) P M L P
2 2 0 2 2 0
1 0 0 2 2 1 0 0 2 2 1 0 0 1 0 1 0
0 1 2 2 2
0 0 1 0 2 2 0 0 1 2 0 2 0 2
2 2 2 2
0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 1
0 1 2 1 0 1 0 2 4 2 0
1 0 2 0 2 0 2 1 2 3 2
0 0 1 1 1 1 1 1 1 1 1
Συνοπτικά
2D Μετασχηματισμοί
Βασικοί 2D μετασχηματισμοί
Αναπαράσταση πινάκων
Σύνθεση Πινάκων
2Δ Μετασχηματισμός
Παρατήρησης
Μετασχηματισμοί Μοντελοποίησης
(modeling transformations)
Καθορισμός μετασχηματισμών των
αντικειμένων
Τα αντικείμενα περιγράφονται στο δικό τους
σύστημα συντεταγμένων
Επιτρέπει την χρήση του ορισμού ενός
αντικειμένου πολλές φορές σε μια σκηνή
2Δ Μετασχηματισμός Παρατήρησης
Δημιουργία εικόνας στο ΠΣΣ (WCS), απεικόνιση στο ΣΣΟ (PDC)
Χρήστης ορίζει παράθυρο WCS και πεδίο παρατήρησης PDC
Y V
Παράθυρο πεδίο παράστασης
window viewpoint
1 0 umin sx 0 0 1 0 xmin
Αλλά :
M WV 0 1 vmin 0 sy 0 0 1 ymin
0 0 1 0 0 1 0 0 1 umax umin v v
sx s y max min
xmax xmin ymax ymin
2Δ Μετασχηματισμός Παρατήρησης
umax umin umax umin
x x 0 umin xmin
max min xmax xmin
vmax vmin vmax vmin
M WV 0 vmin ymin
ymax ymin ymax ymin
0 0 1
Αλλοιώσεις σχημάτων αν sx s y ή aw av
Λόγος διαστάσεων με aw
wdx v
, av dx όπου wdx xmax xmin και wdy ymax ymin
wdy vdy
vdx umax umin και vdy vmax vmin
Συνδυασμός με αποκοπή
Y V
2Δ Μετασχηματισμός Παρατήρησης
Πολλαπλές συσκευές εξόδου: χρήση κανονικοποιημένων συντεταγμένων
συσκευής (NDC) [0,1] x [0,1]
WCS NDC & NDC {PDC1, PDC2 … } (οδηγοί συσκευών)
NDC PDC είναι ομοιόμορφος μετασχηματισμός
Άσκηση
Προσδιορίστε το μετασχηματισμό που απεικονίζει ένα παράθυρο με κάτω αριστερή γωνία (1, 1) και
πάνω δεξιά γωνία (3, 5) α) σε ένα κανονικοποιημένο viewport και β) σε ένα viewport με κάτω αριστερή
γωνία (0, 0) και πάνω δεξιά γωνία (1/2, 1/2 ).
Άσκηση 3.9
Μετασχηματισμοί Μοντελοποίησης
(modeling transformations)
Καθορισμός μετασχηματισμών των
αντικειμένων
Τα αντικείμενα περιγράφονται στο δικό τους
σύστημα συντεταγμένων
Επιτρέπει την χρήση του ορισμού ενός
αντικειμένου πολλές φορές σε μια σκηνή
Συνοπτικά
3D Μετασχηματισμοί
Βασικοί 3D μετασχηματισμοί
Αντίστοιχοι με τους 2D
3D Μετασχηματισμοί
x' a b c d x
y' e f g h y
z' i j k l z
w' m p w
n o
Βασικοί 3D μετασχηματισμοί
x ' s x 0 0 0 x
x' 1 0 0 0 x y ' 0
y ' 0 1 0 0 y sy 0 0 y
z ' 0 0 1 0 z z' 0 0 sz 0 z
w 0 0 0 1 w
w 0 0 0 1 w
Μοναδιαίος Αλλαγή κλίμακας
x ' 1 0 0 t x x
y ' 0 x' 1 0 0 0 x
1 0 t y y y ' 0 1 0 0 y
z ' 0 0 1 tz z z ' 0 0 1 0 z
w 0 0 0 1 w
w 0 0 0 1 w
Μετατόπιση Συμμετρικός ως προς Y/Z επίπεδο
Βασικοί 3D Μετασχηματισμοί
x' cos sin 0 0 x
Περιστροφή γύρω από τον άξονα Z: y ' sin cos 0 0 y
z' 0 0 1 0 z
w 0 0 0 1 w
x' 1 0 0 0 x
Περιστροφή γύρω από τον y ' 0 cos sin 0 y
άξονα X : z ' 0 sin cos 0 z
w 0 0 0 1 w
Αντίστροφή Περιστροφή
Συσχετισμένοι Μετασχηματισμοί 3Δ
Ομογενείς συντεταγμένες σημείων Ε3: (x,y,z,w)
Bασική παράσταση (x,y,z,1)
Υ Υ
Ζ
Ζ (β)
(α) Χ
Συσχετισμένοι Μετασχηματισμοί 3Δ
Μεταφορά 1 0 0 dx
0 1 0 dy
T d
0 0
1 dz
0 0 0 1
Αλλαγή κλίμακας 0 0 0
sx
0 0 0
S sx , s y , sz
sy
0 0 sz 0
0 0 0 1
Συσχετισμένοι Μετασχηματισμοί 3Δ
Στροφή: ανάγκη ορισμού θετικής στροφής σε δεξιόστροφο σύστημα
αντίθετη φοράς δεικτών ρολογιού όταν παρατηρητής στον +ve άξονα
κοιτάει προς
1 0 0 0 cos 0 sin 0
0 cos sin 0 0 1 0 0
Rx Ry
0 sin cos 0 sin 0 cos 0
0 0 0 1 0 0 0 1
cos sin 0 0
sin cos 0 0
Rz
0 0 1 0
0 0 0 1
Αντίστροφοι
T 1 d T d
1 1 1
S 1 sx , s y , sz S , ,
sx s y sz
Rx1 Rx , Ry-1 Ry , Rz1 Rz
Συσχετισμένοι Μετασχηματισμοί 3Δ
Στρέβλωση στο XY επίπεδο
α, b παράγοντες στρέβλωσης κατά X και Y άξονα
z συντεταγμένη αμετάβλητη 1 0 a 0
0 1 b 0
SH xy a, b
0 0 1 0
0 0 0 1
Συσχετισμένοι Μετασχηματισμοί 3Δ
Στρέβλωση στο XY επίπεδο
α, b παράγοντες στρέβλωσης κατά X και Y άξονα
z συντεταγμένη αμετάβλητη 1 0 a 0
0 1 b 0
SH xy a, b
0 0 1 0
0 0 0 1
1 0 0 0
a 0
Στρέβλωση στο YZ επίπεδο 1 0
SH yz a, b
b 0 1 0
0 0 0 1
0 a 0 0
0 1 0 0
Στρέβλωση στο XZ επίπεδο SH xz a, b
0 b 1 0
0 0 0 1
Παράδειγμα 3.11
Ορίζουμε ως καμπή την περιστροφή γύρω από τον άξονα X και στη συνέχεια γύρω από τον άξονα Y. (α)
Βρείτε τον πίνακα καμπής Tk και (β) εξετάστε εάν παίζει ρόλο η σειρά με την οποία εκτελούνται οι
περιστροφές.
Βήμα 1: Στροφή κατά γωνία θx ως προς άξονα X. Βασικός πίνακας μετασχηματισμού: R x (θx ) .
Παρατηρούμε ότι ο νέος πίνακας διαφέρει από αυτόν του ερωτήματος (α) επομένως παίζει
ρόλο η σειρά με την οποία εκτελούνται οι περιστροφές.
Παράδειγμα 3.12
Παράδειγμα 3.13
Ο πίνακας περιστροφής Rx(θ1) ισούται με:
Παρατηρήσεις: 1) Εάν b και c ισούνται με μηδέν τότε λ = 0. Σε αυτή την περίπτωση απαιτείται μόνο μία
περιστροφή 90° ως προς τον άξονα των Υ. Δηλαδή:
Παράδειγμα 3.14
Παράδειγμα 3.15
Από το παράδειγμα 3.14 ο πίνακας μετασχηματισμού που θα προσδιορίζει τις συντεταγμένες των νέων
κορυφών δίνεται από:
Για να προσδιοριστούν οι συντεταγμένες της στραμμένης φιγούρας εφαρμόζουμε τον πίνακα RL (θ)
πάνω στον πίνακα Π που εκφράζει τη δοσμένη πυραμίδα. Πιο συγκεκριμένα:
Οι καινούριες συντεταγμένες θα δίνονται από τις σχέσεις:
Αλγόριθμοι Αποκοπής
Τι είναι Αποκοπή (clip)?
• Η διαδικασία απεικόνισης μόνο των
τμημάτων των αντικειμένων που
βρίσκονται μέσα σε μια περιοχή
• Από μεγαλύτερη 2Δ σκηνή στην οποία
έχουμε ήδη τιμές για τα pixels
• Κατά την διάρκεια της μετατροπής των
αντικειμένων σε pixel
Τι είναι
Η διαδικασία απεικόνισης μόνο των τμημάτων των αντικειμένων
που βρίσκονται μέσα σε μια περιοχή.
Παράθυρο
θέασης
Up
Right
Κώνος θέασης
Η αποκοπή στις 3Δ
Γίνεται για:
αποφυγή αντεστραμμένης εμφάνισης αντικειμένων που βρίσκονται πίσω από τον
παρατηρητή.
σημαντική μείωση όγκου δεδομένων που προωθούνται προς την παράσταση στην
οθόνη(φίλτρο).
Θέσεις αντικειμένων Θέση
και φωτεινών πηγών παρατηρητή
3Δ 3Δ 3Δ Διαγραφή
Μετασχ/σμοί Μετασχ/σμός Πίσω 3Δ
Μαθηματικά
Μοντέλου Παρατήρησης Επιφανειών Αποκοπή
Μοντέλα
Παράσταση
Είσοδοι Στην Οθόνη:
(για κάθε καρέ)
Σάρωση
Αντιταύτιση
Απόκρυψη
Φωτισμός Γραμμών/ Προβολή
Επιφανειών
Υφή
(xmax, ymax)
ymin y ymax
(x', y')
(x, y)
(xmin, ymin) xmin x xmax
Γρήγορη αποκοπή
ymin
ΙΧ=-1 ΙΧ=0 ΙΧ=+1
ΙΥ=-1 xmin ΙΥ=-1 xmax ΙΥ=-1
ymax
ΙΧ=0
ΙΧ=-1 P2(x2, y2)
ΙΥ=0 ΙΧ=+1
ΙΥ=0
ΙΥ=0
P1(x1, y1)
M((P1.x+P2.x)/2, (P1.y+P2.y)/2))
ymin
ΙΧ=-1 ΙΧ=0 ΙΧ=+1
ΙΥ=-1 xmin ΙΥ=-1 xmax ΙΥ=-1
Αποκοπή ευθείας (αλγόριθμος μέσου)
midpoint(P1,P2,xmin,xmax,ymin,ymax)
Point P1,P2; float xmin,xmax,ymin,ymax;
{point M;
/*Υπολογισμός IX1,IY1,IX2,IY2*/
if((IX1==0)&&(IY1==0)&&(Ix2==0)&&(IY2==0))
/*Το P1P2 είναι εντός παραθύρου*/
else if ((IX1==IX2)&&IX1!=0))||(IY1==IY2)&&(IY1!=0))
/*To P1P2 είναι εκτός παραθύρου*/
else {/*Υπολογισμός του μέσου Μ*/
M.x=(P1.x+P2.x)/2;
M.y =(P1.y+P2.y)/2;
/*Αναδρομική εφαρμογή στα δύο ευθύγραμμα τμήματα που προκύπτουν*/
midpoint( P1,M,xmin,xmax,ymin,ymax);
midpoint( M,P2,xmin,xmax,ymin,ymax);
}
}
• xmin E •x
max
B
1xxx
xxxx
1001 xxxx
1xxx
1000 xxxx
1xxx
1010
ymax
Pο(x,y)
xxxx
0xxx
0001 0000
xxxx
0xxx xxxx
0010
0xxx
ymin
0xxx
xxxx
0101 0100
xxxx
0xxx xxxx
0110
0xxx
xmin xmax
Αποκοπή ευθείας (Cohen-Sutherland)
Αλγόριθμος Cohen-Sutherland:
Για κάθε άκρο (x,y) ενός ευθύγραμμου τμήματος υπολογίζουμε των κώδικα της
περιοχής στην οποία βρίσκεται.
Το 1ο bit του κώδικα αντιστοιχεί στο πρόσημο της παράστασης (ymax-y)
Αν είναι αρνητικό σημαίνει πως το 1ο bit στον κώδικα θα είναι το 1 και άρα το άκρο (x,y)
θα βρίσκεται πάνω από την y=ymax
Το 2ο bit αντιστοιχεί στο πρόσημο της παράστασης (y-ymin)
Το 3ο bit αντιστοιχεί στο πρόσημο της παράστασης (xmax-x)
Το 4ο bit αντιστοιχεί στο πρόσημο της παράστασης (x-xmin)
1ο bit =1
P0(x,y)
1001 1000 1010
ymax
ymin
0101 0100 0110
xmin xmax
P1
• xmin E •x
max
B
Αποκοπή ευθείας (Cohen-Sutherland)
Βρίσκουμε την ευθεία που αντιστοιχεί σε αυτό το bit και υπολογίζουμε το σημείο τομής
του ευθύγραμμου τμήματος με την ευθεία αυτή.
Το αρχικό ευθύγραμμο τμήμα χωρίζεται σε δύο και επιλέγουμε εκείνο το ευθύγραμμο
τμήμα με ένα άκρο το σημείο τομής και το άλλο άκρο να είναι εκείνο το άκρο του
αρχικού ευθύγραμμου τμήματος που είχε τιμή 0 στο bit του κωδικού που διέφεραν τα
δύο αρχικά άκρα.
Εφαρμογή του αλγορίθμου αναδρομικά σε εκείνο το ευθύγραμμο τμήμα που επιλέχθηκε
CS (P1,P2,xmin,xmax,ymin,ymax)
Point P1,P2; float xmin,xmax,ymin,ymax;
{ int c1,c2; point I;
c1= code (P1); /*Υπολογισμός του κώδικα του P1*/
c2= code (P2);
if ( (c1|c2)==0) /* To P1P2 είναι εντός του παραθύρου*/
else if ( (c1&c2)!=0) /* To P1P2 είναι εκτός του παραθύρου*/
else
{ intersect ( P1,P2,I,xmin,xmax,ymin,ymax);
if exoteriko (P1) CS (I,P2,xmin,xmax,ymin,ymax);
else CS (P1,I,xmin,xmax,ymin,ymax);
}
}
Η ρουτίνα intersect υπολογίζει το Ι, ένα σημείο τομής μεταξύ του P1, P2 και ευθείας παραθύρου.
Η ρουτίνα exoteriko υπολογίζει εάν P1 βρίσκεται στο ημιεπίπεδο της ευθείας τομής όπου και το παράθυρο
P P1 t P2 P1 , t 0, 1
ή x x1 t x, y y1 t y
με x x2 x1 και y y2 y1
Για σημεία εντός παραθύρου ισχύει:
xmin x1 t x xmax
ymin y1 t y ymax
t pi qi , i 114
ή με p1 x, q1 x1 xmin
p2 x, q2 xmax x1
p3 y, q3 y1 ymin
p4 y, q4 ymax y1
2Δ Αποκοπή Ευθυγράμμων Τμημάτων: Αλγόριθμος
Liang - Barsky
Αρίθμηση ακμών παραθύρου. Παράθυρο: τομή 4 ορατών ημιεπιπέδων.
ορατό ημιεπίπεδο
πλευράς 1
4 ymax
t2 •B
t1 •
1 • 2
A
ymin
μη ορατό ημιεπίπεδο 3
πλευράς 1
xmin xmax
q
Τομή με ευθεία ακμής i : t i , i 114
pi
Αν pi 0, P1 P2 παράλληλη ακμής i
pi 0, P1 P2 “μπαίνει” στο ορατό ημιεπίπεδο ακμής i
Αν
i
Αν pi 0, P1P2 “βγαίνει” από ορατό ημιεπίπεδο ακμής
i
Αν qi 0, P1 στο ορατό ημιεπίπεδο ακμής
Αν qi 0, P1 στο μη ορατό ημιεπίπεδο ακμής i
Αποκοπή Πολυγώνου
Στην 2Δ αποκοπή πολυγώνων το αποκοπτόμενο αντικείμενο και το
αντικείμενο αποκοπής είναι πολύγωνα (αποκοπτόμενο πολύγωνο,
πολύγωνο αποκοπής)
Γιατί είναι σημαντική η αποκοπή πολυγώνου?
πλευρά 3 πλευρά 1
Αρχικό
πολύγωνο
Τελικό
πολύγωνο
Αποκοπή Πολυγώνου
Αλγόριθμος Sutherland – Hodgman (SH):
Αποκόπτει ένα τυχαίο πολύγωνο ως προς ένα κυρτό πολύγωνο αποκοπής
Περιλαμβάνει m στάδια σωλήνωσης που αντιστοιχούν στις m ακμές του
πολυγώνου αποκοπής
Το στάδιο i | i: 0…m-1 αποκόπτει το αποκοπτόμενο πολύγωνο ως προς το
ευθύγραμμο τμήμα που ορίζεται από την ακμή i του πολυγώνου αποκοπής
Η είσοδος του σταδίου i | i: 1…m-1 είναι η έξοδος του σταδίου i-1
Το πολύγωνο αποκοπής πρέπει να είναι κυρτό
2Δ Αποκοπή Πολυγώνων: Αλγόριθμος
Sutherland - Hodgman
Ένα πολύγωνο ορίζεται από κορυφές του P1 , P2 , , Pn με φορά αντίθετη από αυτή
των δεικτών του ρολογιού.
Πλευρές P1 P2 , P2 P3 , , Pn 1 Pn , Pn P1
Βήμα i εξετάζει τη σχέση κάθε πλευράς S P με ακμή παραθύρου i .
Πλευρά
Εσωτερικό Εξωτερικό
παραθύρου
P S
S
•
P •
P • • P S
S
Ευθεία
αποκοπής
Για κάθε πλευρά S P του πολυγώνου που προέκυψε από το προηγούμενο βήμα της αποκοπής,
προστίθενται στη λίστα κορυφών του νέου πολυγώνου 0,1 ή 2 κορυφές ανάλογα με τη θέση της
πλευράς σε σχέση με την ευθεία αποκοπής.
S P Περίπτωση Αποτελέσματα •
Πλευρά
P1 P2 1 P2 παραθύρου
P2 P3 1 P3
P3 P4 1 P4 •
P4 P5 2 I1
•
P5 P6 4 I 2 P6
P6 P1 1 P1 • • • •
34
με
y2 y1 yx y2 x1
s= c= 1 2
x2 x1 x2 x1
P εσωτερική αν t sr c 0
P εξωτερική αν t sr c 0
Αποκοπή Πολυγώνου – Αλγόριθμος SH
Αλγόριθμος:
polygon SH_Clip ( polygon C, S ) { /*C κυρτό */
int i, m;
edge e;
polygon InPoly, OutPoly;
m = getedgenumber(C);
InPoly = S;
for (i=0; i<m; i++) {
e = getedge(C,i);
SH_Clip_Edge(e,InPoly,OutPoly);
InPoly = OutPoly
}
return OutPoly
}
•
A
2Δ Αποκοπή Πολυγώνων: Αλγόριθμος Greiner - Hormann
Για τον δείκτη περιστροφών ισχύουν:
Ο δείκτης περιστροφών δεν αλλάζει εφόσον δεν μεταβάλλεται η
τοπολογική σχέση του A με τη γ.
Αν το A είναι εκτός της καμπύλης τότε , A 0 .
Αν το A μετακινηθεί και διασταυρώσει 1 φορά τη γ, τότε το , A
αυξάνεται ή μειώνεται κατά 1.
Αν το A βρίσκεται εντός της γ, τότε το , A είναι περιττός
αριθμός , διαφορετικά είναι άρτιος.
C C C
(α) (β) (γ) (δ)
2Δ Αποκοπή Πολυγώνων: Αλγόριθμος
Greiner - Hormann
Αποτέλεσμα μπορεί να μην είναι συνεκτικό πολύγωνο.
Δομή (διπλά συνδεδεμένη λίστα) προβλέπει ειδικούς δείκτες για
ένωση τμημάτων.
3Δ Αποκοπή
x1 t x, Y , z1 t z
x1
x
Y y1 , Y , z1 z Y y1
y y
3Δ Αποκοπή: Αλγόριθμος Sutherland -
Hodgman 3Δ
6 στάδια αποκοπής για τα 6 επίπεδα (αντί για 4 που είχαμε στις 2Δ).
Αποκομμένο
πολύγωνο
πολύγωνο
Αρχικό
Ερωτήσεις
1. Πότε ένα σημείο βρίσκεται μέσα στο παράθυρο αποκοπής σύμφωνα με
i. τον αλγόριθμο σημειακής αποκοπής και ii. τον αλγόριθμο του μέσου;
i. Σύμφωνα με τον αλγόριθμο σημειακής αποκοπής ένα σημείο (x,y) βρίσκεται μέσα στο
παράθυρο αποκοπής όταν xminxxmax και yminyymax
ii. Σύμφωνα με τον αλγόριθμο του μέσου ένα σημείο (x,y) βρίσκεται μέσα στο παράθυρο
αποκοπής όταν οι μεταβλητές ΙΧ και ΙΥ που κρατώνται για αυτό έχουν και οι δύο την τιμή 0.
2. Στον αλγόριθμο του μέσου ποια είναι η ικανή και αναγκαία συνθήκη ώστε ένα ευθύγραμμο
τμήμα να βρίσκεται ολόκληρο μέσα στο παράθυρο αποκοπής;
a. (IX1==0)&&(IΧ2==0)
b. (IY1==0)&&(IY2==0))
c. (IX1==0)&&(IY1==0)&&(IX2==0)&&(IY2==0)
d. (IX1==0)&&(IY1==0)
Σωστή απάντηση c.
3. Στον αλγόριθμο του μέσου ποια από τις παρακάτω συνθήκες αρκεί να ισχύει ώστε ένα
ευθύγραμμο τμήμα να βρίσκεται ολόκληρο εκτός του παραθύρου αποκοπής;
a. (IX1==IX2)&&(IΥ1!=0)
b. (IX1==IX2)&&(IX1!=0)
c. (IY1==IY2)&&(IΧ2!=0)
d. (IY1==IY2)&&(IΧ1!=0) Σωστή απάντηση b.
Ερωτήσεις
4. Στον αλγόριθμο του Cohen-Sutherland ποια είναι η ικανή και αναγκαία συνθήκη ώστε ένα
ευθύγραμμο τμήμα να βρίσκεται ολόκληρο μέσα στο παράθυρο αποκοπής; Να δικαιολογήσετε
την απάντηση σας.
a. c1 c2=0000 b. c1 c2 0000 c. c1 c2=0000 d. c1 c2 0000
Σωστή απάντηση a.
Και αυτό γιατί από τις ιδιότητες της ένωσης, γνωρίζουμε πως για να είναι το αποτέλεσμα της ένωσης
δύο bits (δυνατές τιμές 0 και 1) ίσο με το 0, θα πρέπει και τα δύο bits να είναι ίσα με 1. Με την ίδια
λογική, αν η ένωση των δύο τετράμπιτων κωδικών είναι 0000, σημαίνει πως και οι δύο κωδικοί
αποτελούνται μόνο από μηδενικά .Επομένως, και τα δύο άκρα του ευθύγραμμου τμήματος βρίσκονται
στην περιοχή 0000, και άρα ολόκληρο το ευθύγραμμο τμήμα θα βρίσκεται μέσα στο παράθυρο
αποκοπής.
5. Στον αλγόριθμο του Cohen-Sutherland ποια είναι η ικανή και αναγκαία συνθήκη ώστε ένα
ευθύγραμμο τμήμα να βρίσκεται ολόκληρο έξω από το παράθυρο αποκοπής; Να δικαιολογήσετε
την απάντηση σας.
a. c1c2=0000 b. c1 c2 0000 c. c1 c2=0000 d. c1 c2 0000
Σωστή απάντηση d.
Και αυτό γιατί από τις ιδιότητες της τομής γνωρίζουμε πως για να είναι το αποτέλεσμα της τομής δύο
bits (δυνατές τιμές 0 και 1) διαφορετικό το μηδενός και άρα ίσο με το 1, θα πρέπει και τα δύο bits να
είναι ίσα με 1. Με την ίδια λογική, αν η τομή των δύο τετράμπιτων κωδικών είναι διαφορετική του
0000, σημαίνει πως θα υπάρχει τουλάχιστον ένας άσσος στο ίδιο bit των δύο κωδικών, άρα και τα δύο
άκρα θα βρίσκονται στην ίδια περιοχή ( πάνω από την y=ymax ή κάτω από την y=ymin ή δεξιά από
την x=xmax ή αριστερά από την x=xmin), και άρα το ευθύγραμμο τμήμα θα βρίσκεται ολόκληρο εκτός
του παραθύρου)
6. Μπορούμε να χρησιμοποιήσουμε
Ερωτήσεις
6. Μπορούμε να θεωρήσουμε ότι ένα πολύγωνο είναι ένα σύνολο ευθυγράμμων τμημάτων, οπότε να
χρησιμοποιήσουμε έναν αλγόριθμο αποκοπής ευθυγράμμων τμημάτων για την αποκοπή του
πολυγόνου?
8.
Ασκήσεις
1. Εφαρμόστε στο παρακάτω πολύγωνο τον αλγόριθμο αποκοπής Sutherland-
Hodgman. Η αποκοπή να γίνει ως προς τις πλευρές T, L ,B ,R.
Προβολές
Προβολές
Απαραίτητες αφού 3Δ αντικείμενα απεικονίζονται σε 2Δ συσκευές.
3Δ 3Δ 3Δ Διαγραφή
Μετασχ/σμοί Μετασχ/σμός Πίσω 3Δ
Μαθηματικά
Μοντέλου Παρατήρησης Επιφανειών Αποκοπή
Μοντέλα
Είσοδοι
(για κάθε καρέ) Παράσταση
Στην Οθόνη:
Σάρωση
Απόκρυψη
Αντιταύτιση Γραμμών/ Προβολή
Επιφανειών
Φωτισμός
Υφή
Προβολές (projection)
Δύο κατηγορίες προβολών:
Προοπτική (perspective): πεπερασμένη απόσταση κέντρου προβολής
από επίπεδο προβολής.
Παράλληλη: άπειρη απόσταση κέντρου προβολής από επίπεδο
προβολής.
Ιδιότητες προβολών:
Ευθείες προβάλλονται σε ευθείες.
Αποστάσεις αλλάζουν (γενικά).
3Δ παράλληλες ευθείες, που είναι μη παράλληλες με επίπεδο προβολής,
δεν προβάλλονται σε παράλληλες ευθείες, αλλά τέμνονται σε κάποιο
σημείο φυγής.
Γωνία μεταξύ ευθειών αλλάζει, εκτός αν επίπεδο γωνίας παράλληλο με
επίπεδο προβολής.
Προοπτική Προβολής
Στον πραγματικό κόσμο, τα αντικείμενα
παρουσιάζουν μια προοπτική να
μικραίνουν: τα μακρινά αντικείμενα
φαίνονται μικρότερα
Απλή περίπτωση:
Προοπτική Προβολής
Όταν φτιάχνουμε 3-D γραφικά, θεωρούμε την οθόνη ως
ένα 2-D παράθυρο μέσα στον 3-D κόσμο:
View
X plane P (x, y, z)
(0,0,0) x’ = ?
Z
d
Πόσο είναι το x’ ?
Προοπτική Προβολής
Το επιθυμητό αποτέλεσμα για ένα σημείο [x, y, z, 1]T
προβάλλεται μέσα στο πλάνο απεικόνισης:
x' x y' y
,
d z d z
dx x dy y
x' , y' , z' d
z z d z z d
Ποιος θα μπορούσε να είναι ο πίνακας?
Προοπτική Προβολή
Έστω προβολή στο επίπεδο ΧΥ με κέντρο προβολής K 0,0, d
Y Επίπεδο
προβολής
• P3
Κέντρο
προβολής
P3
•
K 0,0, d P2 P2
• • •
• Z
P x , y,0
• • P x, y , z
P1
X
x d xd
x •
x dz dz P1
Ισχύει y d yd
y
y dz dz
Προοπτική Προβολή
Δεν είναι γραμμικός μετασχηματισμός (διαίρεση με z).
Δεν μπορεί να δοθεί με μορφή πίνακα.
d 0 0 0 x x x d
0 d 0 0 y y y d
Ppers
Οπότε
Ppers
0 0 0 0 z z 0
0 0 1 d w 1 z d
Ακολουθεί διαίρεση με την τιμή της ομογενούς συντεταγμένης w
(αφού πρέπει w=1) xd
z d
x yd
y
Οπότε το τελικό σημείο: P / w z d
z 0
w
1
Προοπτική Προβολή
Χαρακτηριστικό: κεντρική σμίκρυνση (όπως το ανθρώπινο μάτι
αντιλαμβάνεται το βάθος).
•
K Z
Μετασχηματισμός Προοπτικής
Τα αντικείμενα που βρίσκονται πιο κοντά στον
παρατηρητή φαίνονται μεγαλύτερα
Οι παράλληλες γραμμές συγκλίνουν σε ένα σημείο
Προβολή Προοπτικής
Πόσα σημεία?
Πίνακες προβολής
Προβολή
Κατεύθυνση προβολής
Παράλληλη Προβολή
Κέντρο προβολής στο άπειρο, δίνεται κατεύθυνση προβολής.
Διατηρεί αποστάσεις, χρήσιμο στοιχείο π.χ. στην αρχιτεκτονική.
Ορθογώνια παράλληλη προβολή: πάνω σε ένα από τα βασικά επίπεδα με
κάθετες ακτίνες προβολής.
P x, y , z B
Z
Διεύθυνση
Προβολής
•
A
B Y
• P x, y,0
X A
Πίνακας μετασχηματισμού για ορθογώνια π.χ. στο ΧΥ. Το επίπεδο προβολής το z=0
1 0 0 0
0 1 0 0
0 0 0 0
0 0 0 1
Ορθογραφικές Προβολές
Κατεύθυνση προβολής για να προβληθεί το σχέδιο
Μπροστά
Πάνω Πλάγια
Ορθογραφικές Προβολές
Απλός Ορθογραφικός
Μετασχηματισμός
top=20 m
(height in pixels)
(0, 0)
bottom=10 m
(width in pixels)
I1 I 2 I 3
I3
I1
I2 Y
1
Αλλά tan a L z c όπου c
z
L tan a
1 0 c cos 0
0 1 c sin 0
Πίνακας πλάγιας παράλληλης προβολής
0 0 0 0
0 0 0 1
Πλάγια Παράλληλη Προβολή
Ειδικές περιπτώσεις.
Cavalier ( a 45 c 1)
2
1 0
2
0
2
PCav 0 1 0
2
0 0 0 0
0 0 0 1
1 1
X
1
Y a 45
3
1 0
4
0
1
PCab 0 1 0
4
0 0 0 0
0 0 0 1
1
X
1
Y a 63
Πλάγια Παράλληλη Προβολή
63 .4
45
Cavalier Cabinet
o o
(Προβολή = 45 ) (Προβολή = 63.4 )
tan() = 1 tan() = 2
Παράδειγμα
1. Σχεδιάστε στο επίπεδο XY την Cavalier προβολή του μοναδιαίου κύβου.
Y
D C
H
E
A B
1 X
F1
G
Z
2 0 1 1 0 0 0 1 1
1 0
2
0 0 0 1 1 1 0 0 1
2
V ABCDEFGH
PCav 0 1 0 0 0 0 0 1 1 1 1
2
0 0 0 0
1 1 1 1 1 1 1 1
0 0 0 1
2 2 2 2 2
1 0 0 0 1 1 0 0 0 1 1 0 1 1 0 1 1
2 0 2 2 2 2
2 0 1 1 1 0 0 1 2 2 2 2
V PCavV 0 1 0 0 0 1 1 1 1
2 0 0 0 0 1 1 1 1 2 2 2 2
0 0 0 0 1 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1
0 0 0 1 1 1 1 1 1 1 1 1
Παράδειγμα
Αναπαράσταση μοναδιαίου κύβου μετά την Cavalier προβολή του
2 2 2 2
0 1 1 0 1 1
2 2 2 2
2 2 2 2
V PCav V 0 0 1 1 1 1
2 2 2 2
0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
Y
V ' A' B' C ' D ' E ' F ' G ' H ' E H
D C
1 F G
A B
1 X
Παράδειγμα
Σχεδιάστε στο επίπεδο XY την Cabinet προβολή του μοναδιαίου κύβου.
3
1 0
4
0
V ' A' B' C ' D ' E ' F ' G ' H '
1
PCab 0 1 0
4
0 0 0 0
3 3 3 3 0
0 1 1 0 1 1 0 0 1
4 4 4 4
1 1 1 1
V PCab V 0 0 1 1 1 1
4 4 4 4
0 0 0 0 0 0 0 0
1 1 1 Y 1 1 1 1 1
E H
D C
1
F G
A B
1 X
Παράλληλη προβολή
+ Κατάλληλη για ακριβής μετρήσεις
+ Οι παράλληλες γραμμές παραμένουν παράλληλες
– Οι γωνίες δεν διατηρούνται (γενικά)
– Λιγότερο ρεαλιστική απεικόνιση
Κλασσικές προβολές
Ταξινόμηση Προβολών
Παράδειγμα 5.1
Σχεδιάστε στο επίπεδο XY την Προοπτική Προβολή του μοναδιαίου κύβου.
Y
D C
H
E
A B
1 X
F1
G
Z
V Ppers V
Αναπαράσταση μοναδιαίου κύβου με χρήση πίνακα
0 1 1 0 0 0 1 1 d 0 0 0
0 0 1 1 1 0 0 1 0 d 0 0
V ABCDEFGH Ppers
0 0 0 0 1 1 1 1 0 0 0 0
1 1 1 1 1 1 1 1 0 0 1 d
Παράδειγμα 5.2
Παράδειγμα 5.3
Παράδειγμα 5.4
Παράδειγμα 5.5
Προσδιορίστε την προοπτική προβολή σχήματος (κάθε σημείου του) πάνω στο
επίπεδο προβολής z = d χρησιμοποιώντας ως κέντρο προβολής την αρχή των
αξόνων, σχήμα 5.17 .
Λύση:
Ερωτήσεις
1. Ποια από τα παρακάτω αποτελούν χαρακτηριστικά της προοπτικής προβολής;
Δώστε μια σύντομη περιγραφή τους.
Ερωτήσεις
2. Ποιο είναι το μειονέκτημα της προοπτικής προβολής που μας οδηγεί στη
χρήση της παράλληλης προβολής;
Ερωτήσεις
1 0 0 0
0 1 0 0
0 0 0 0
0 0 0 1
3Δ Μετασχηματισμός
Παρατήρησης
Μετασχηματισμός Παρατήρησης
Παγκόσμιο Σύστημα Συντεταγμένων Σύστημα
Συντεταγμένων Παρατηρητή.
Σύνθεση βασικών μετασχηματισμών.
Καθορίζει όρια αποκοπής & παραμέτρους προβολής
Θα εξετάσουμε ΜΠ Ι και ΜΠ ΙΙ
Θέσεις αντικειμένων Θέση
και φωτεινών πηγών παρατηρητή
3Δ 3Δ 3Δ Απομάκρυνση
Μετασχ/σμοί Μετασχ/σμός Πίσω 3Δ
Μαθηματικά
Μοντέλου Παρατήρησης Επιφανειών Αποκοπή
Μοντέλα
Είσοδοι
(για κάθε καρέ)
Παράσταση
Στην Οθόνη:
Σάρωση Απόκρυψη
Αντιταύτιση Ακμών/ Προβολή
Επιφανειών 1
Φωτισμός 2 D ΣΣΟ
2
Υφή (SCS)
Μετασχηματισμός Παρατήρησης Ι
ΜΠ Ι χρησιμοποιεί προοπτική προβολή και καθορίζεται από:
α. Σημείο παρατήρησης O
β. 2 ανύσματα για ΥΠ και ΖΠ (αριστερόστροφο).
• ΠΣΣ ΣΣΠ βήματα:
1. Μεταφορά O στην αρχή ΠΣΣ.
2. Στροφές γύρω από Χ, Υ και Ζ του ΠΣΣ ώστε να ταυτισθούν
με αντίστοιχους ΣΣΠ.
3. Αποκοπή.
4. Προοπτική Προβολή.
• Χρησιμοποιούνται 3 ακόμα παράμετροι για καθορισμό ορίων αποκοπής:
γ. Μέγεθος παραθύρου προβολής 2h.
δ. Απόσταση d έμπροσθεν επιπέδου αποκοπής από O (κάθετο στον
ΖΠ).
ε. Απόσταση f όπισθεν επιπέδου αποκοπής από O (κάθετο στον ΖΠ).
Μετασχηματισμός Παρατήρησης Ι
Y
y h z / d
x h z / d
O • •
h Z
z d
X
x h z / d z f
• Ορια αποκοπής:
x h z / d y h z / d
y h z / d
z d
z f
Μετασχηματισμός Παρατήρησης Ι
Χαρακτηριστικά ΜΠ Ι:
Επίπεδο προβολής ταυτόσημο με έμπροσθεν επίπεδο
αποκοπής zΠ=d.
Κέντρο προβολής ταυτόσημο με σημείο παρατήρησης.
Προοπτική προβολή.
Τετράγωνο παράθυρο, συμμετρικό ως προς ΖΠ .
Προβολή στον ΜΠ Ι
d x
xO 1 xO 1
h z
d y
yO 1 yO 1
h z
Μετασχηματισμός Z πρέπει να πληρεί:
Ευθείες ΣΣΠ ευθείες ΣΣΟ.
Επίπεδα ΣΣΠ επίπεδα ΣΣΟ.
Κανονικοποιημένες τιμές zO .
zO=A+B/zΠ είναι ΟΚ, με περιορισμούς:
1. Β<0, ώστε αύξηση zΠ αύξηση zO.
2. z d , f zO 0, 1
2 εξισώσεις με 2 αγνώστους:
0=Α+B/d 1=A+B/f
Επίλυση με περιορισμό 1. δίνει: Α=f/(f-d) B= -fd/(f-
d) f 1 d / z
zO 0 z 1
Τελικά: f d
Προβολή στον ΜΠ Ι
Παραπάνω μετασχηματισμός μπορεί να χωρισθεί σε:
Γραμμικό μέρος (πίνακας).
x x
y y
P
z z
w 1
d
h 0 0 0
Με 0
d
0 0
P h
0 0
f
fd
f d f d
0 0 1 0
Προβολή στον ΜΠ Ι
P πιο κατανοητός αν γραφεί:
d
1 0 0 0 0 0 0
0 1 0 0
h
d
P
P P f fd 0 0 0
0 0
f d 0
h
f d 0 1 0
0 0 1 0
0 0 0 1
P είναι αλλαγή κλίμακας κατά d/h :
Πυραμίδα αποκοπής γίνεται κανονική πυραμίδα.
π.χ. 0, h, d ,1 0, d , d ,1
μετατρέπει κανονική πυραμίδα σε ορθογώνιο
P
παραλληλεπίπεδο:
Εμπροσθεν επίπεδο αποκοπής zΠ=d γίνεται XY .
Οπισθεν επίπεδο αποκοπής zΠ=f γίνεται z=1 .
π.χ. 0, d , d ,1 0, d ,0, d δηλ. 0,1,0,1
Προβολή στον ΜΠ Ι
Y 0, h, d
•
h
Z
d
f
P
Y
0, d, d
• YO
P
1
d και κανονικοποίηση / w
1
Z ZO
1
Αποκοπή στο ΜΠ Ι
Ορισμός ΣΣΠ
(view orientation)
Μετασχηματισμός Παρατήρησης ΙΙ
Oρισμός ΣΣΠ (view orienation) με 3 παραμέτρους (δεξιόστροφο):
α. Κέντρο ΣΣΠ VRP
β. Κάθετο άνυσμα στο επίπεδο προβολής VPN
γ. “Ανω” άνυσμα VUV (προβολή VUV στο κάθετο επίπεδο στο VPN που
περνά από VRP ορίζει Y(V) ).
U
V
VUV
•
VRP
N
VPN
U VUV VPN
V VPN U
• •
VRP
U N
V
• VPN
VPN
Αν PRPδεν είναι πάνω στην ευθεία που περνάει από το κέντρο του
παραθύρου και είναι παράλληλη του VPN τότε έχουμε πλάγια προβολή.
Προοπτική Προβολή στο ΜΠ ΙΙ
Ταύτιση δεδομένων με ΜΠ Ι και χρήση αντίστοιχου
μετασχηματισμού ΜΠ Ι:
Ταύτιση PRP με VRP :
1 0 0 PRPu
0 1 0 PRPv
T
0 0 1 PRPn
0 0 0 1
κεντρική ευθεία
επιπέδου προβολής
•
PRP •
Z
n
•
0, ymin ,d
d
f
Διαφορές από ΜΠ Ι:
Δ1. Πυραμίδα δεν είναι συμμετρική ως προς ΖΠ .
Δ2. Επίπεδο προβολής δεν ταυτίζεται με έμπροσθεν επίπεδο
αποκοπής.
Δ3. ΖΠ έχει αντίθετη φορά.
Η Δ3 δεν επηρεάζει τους μετασχηματισμούς.
Προοπτική Προβολή στο ΜΠ ΙΙ
Η Δ1 αντιμετωπίζεται με μια αρχική στρέβλωση των x και y.
xmax xmin
1 0
2d
0
ymax ymin
O
PΜΠ ΙΙ 0 1 0
2d
0 0 1 0
0 0 0 1
Z
•
xmax xmin ymax ymin
, ,d
2 2
2d
x x 0 0 0
max min
2d
ΙΙ
PΜΠ 0 0 0
ymax ymin
0 0 1 0
0 0 0 1
xmax xmin
2
y y 0
max min
0
ΙΙ PΜΠ
PΜΠ 2
ΙΙ
d d
1
1
Προοπτική Προβολή στο ΜΠ ΙΙ
Μετατροπή σε ορθογώνιο παραλληλεπίπεδο. Αντίστοιχο Ι
PΜΠ
( d n λόγω της Δ2):
1 0 0 0
0 1 0 0
ΙΙ
PΜΠ
0 f fn
0
fn f n
0 0 1 0
(Αποκοπή).
Διαίρεση με w.
DOP CW PRP
T
u umin vmax vmin
max , , n, 1 PRPu , PRPv , PRPn , 1
T
2 2
u umin v v
T
max PRPu , max min PRPv , n PRPn , 0
2 2
DOPu , DOPv , DOPn , 0
T
V DOP YΠ
VPN DOP
N ZΠ
άρα
DOPu a DOPn 0 a DOPu / DOPn
DOPv DOPn 0 DOPv / DOPn
Ο πίνακας της στρέβλωσης είναι:
1 0 0 1 0 DOPu / DOPn 0
0 1 0 0 1 DOPv / DOPn 0
ΙΙ
LΜΠ
0 0 1 0 0 0 1 0
0 0 0 1 0 0 0 1
•
( xmin , ymin , AEEA)
X
Z
Παράλληλη Προβολή στο ΜΠ ΙΙ
Μετατροπή ορθογώνιου παραλληλεπίπεδου στο μοναδιαίο κύβο:
Μεταφορά:
1 0 0 xmin
0 1 0 ymin
ΙΙ
LΜΠ
0 0 1 AEEA
0 0 0 1
Αλλαγή κλίμακας:
1
0 0 0
xmax xmin
1
ΙΙ 0 0 0
LΜΠ ymax ymin
1
0 0 0
AOEA AEEA
0 0 0 1
Αποκοπή στον ΜΠ ΙΙ
Μετά από κανονικοποίηση ( PΜΠ
ΙΙ ή LΜΠ
ΙΙ ).
Ορια αποκοπής:
Για την προοπτική προβολή (πριν από διαίρεση με w):
w x w
w yw
0 zw
Για την παράλληλη προβολή:
0 x 1
0 y 1
0 z 1
Π.χ. για Cohen-Sutherland χρησιμοποιούμε 6-bit κωδικούς:
Σημασία για σημείο (x, y, z) με προβολή:
Προοπτική Παράλληλη
Bit 0 = 1 z<0 z<0
Bit 1 = 1 z>w z>1
Bit 2 = 1 x < -w x<0
Bit 3 = 1 x>w x>1
Bit 4 = 1 y < -w y<0
Bit 5 = 1 y>w y>1
Αποκοπή στον ΜΠ ΙΙ
Εύρεση τομής ευθύγραμμου τμήματος s με επίπεδο
αποκοπής:
Παραμετρική εξίσωση s από a [a x , a y , a z , 1] σε b [bx , by , bz , 1]
a μ b a 0 μ 1
xmax xmin 0 0 0
0 ymax ymin 0 0
S
0 0 z max z min 0
0 0 0 1
1 0 0 xmin
0 1 0 ymin
T
0 0 1 z min
0 0 0 1
Μετασχηματισμός Viewport στον ΜΠ ΙΙ
Προοπτική προβολή: όρια κανονικοποιημένων συντεταγμένων 1 x, y 1
0 z 1
xmax xmin
0 0 0
2
ymax ymin
0 0 0
S 2
0 0 z max z min 0
0 0 0 1
xmax xmin
1 0 0
2
ymax ymin
T 0 1 0
2
0 0 1 z min
0 0 0 1
Αλγόριθμοι Απόκρυψης
Πρόβλημα Απόκρυψης
Ποιο είναι το εμφανές αντικείμενο (χρώμα) σε κάθε σημείο του επιπέδου
προβολής;
Αλγόριθμοι Απόκρυψης
Χωρίζονται σε αλγόριθμους χώρου αντικειμένων και αλγόριθμους χώρου εικόνας.
Αλγόριθμοι χώρου αντικειμένων συγκρίνουν αντικείμενα μεταξύ τους για να
βρουν το πλησιέστερο σε κάθε σημείο του επιπέδου προβολής:
Για κάθε αντικείμενο π{
Εύρεση των ορατών τμημάτων του π μέσω σύγκρισης (Χ,Υ,Ζ)
με όλα τα άλλα αντικείμενα;
Χρωματισμός των ορατών τμημάτων του π στην οθόνη
}
Αλγόριθμοι χώρου εικόνας έχουν την εξής μορφή:
Για κάθε pixel ρ της εικόνας
{Εύρεση του πλησιέστερου αντικειμένου που τέμνεται από την
ακτίνα προβολής που περνά από το ρ;
Χρωματισμός του ρ με το χρώμα του πλησιέστερου αντικειμένου στο σημείο τομής
}
Αλγόριθμοι χώρου αντικειμένων είναι ενώ αλγόριθμοι χώρου εικόνας είναι
O Πκαι
όπου Π ο αριθμός των πολυγώνων 2
P ο αριθμός των pixels.
O Π Ρ
Αλγόριθμοι Απόκρυψης
Υπολογιστική ακρίβεια.
Αλγόριθμοι χώρου εικόνας: ακρίβεια που απαιτεί η ανάλυση της εικόνας.
Αλγόριθμοι χώρου αντικειμένων: ακρίβεια ορισμού αντικειμένων (=ακρίβεια
υπολογιστή).
Θέση στη γραφική σωλήνωση εξόδου.
Αλγόριθμοι χώρου αντικειμένων: μετά την προβολή (διακεκομμένη γραμμή).
Αλγόριθμοι χώρου εικόνας: ενσωματώνονται στη διαδικασία παράστασης στην
οθόνη.
Διαγραφή πίσω επιφανειών.
Θέση
Θέσεις αντικειμένων
παρατηρητή
και φωτεινών πηγών
3Δ 3Δ 3Δ Διαγραφή
Μετασχ/σμοί Μετασχ/σμός Πίσω 3Δ
Μαθηματικά
Μοντέλου Παρατήρησης Επιφανειών Αποκοπή
Μοντέλα
Είσοδοι
(για κάθε καρέ) Παράσταση
Στην Οθόνη:
Σάρωση Απόκρυψη
Αντιταύτιση Γραμμών/ Προβολή
Φωτισμός Επιφανειών
Υφή
Αλγόριθμοι Απόκρυψης
Συνάφεια
Είδη συνάφειας:
Συνάφεια ακμής.
Συνάφεια επιφάνειας.
Συνάφεια γραμμών σάρωσης.
Συνάφεια καρέ.
Περιβάλλοντες Όγκοι
Διαμερισμός Χώρου
90
V • Γ
90
•
επιφάνεια Β ορατή 90 •
A
B
Α πίσω επιφάνεια
N
Έστω N το κάθετο διάνυσμα σε μία επιφάνεια και V το διάνυσμα παρατήρησης
Αν η γωνία μεταξύ V και N είναι < 90° τότε η επιφάνεια είναι ορατή, αλλιώς
θεωρείται πίσω επιφάνεια(αόρατη).
Μια επιφάνεια είναι ορατή αν V NVx Nx Vy Ny Vz Nz 0
Μειώνει όγκο δεδομένων κατά ~50%.
Λύνει πρόβλημα απόκρυψης για ένα κυρτό αντικείμενο.
N
• P3
B
P1 • •
A
•
P2
Προσοχή A B B A . Χρήση σειράς κορυφών.
Αλγόριθμοι Απόκρυψης Επιφανειών
4 Βασικές κατηγορίες.
z-buffer (πιο διαδεδομένος).
scanline.
ταξινόμηση κατά βάθος.
υποδιαίρεση επιφάνειας.
YΠ
ZΠ
XΠ
YO Πρoοπτική προβολή
ZO
XO
Αλγόριθμος z-buffer
Αλγόριθμος z-buffer
/* Αλγόριθμος z-buffer */
/* Αρχικοποίηση: m,n οι διαστάσεις της οθόνης */
for (x=0; x<m; x++) {
for (y=0; y<n; y++) {
z_buffer[x,y]=f; /*μέγιστο βάθος*/
frame_buffer[x,y]=background; /*φόντο*/
}
}
/*Επεξεργασία πολυγώνων*/
for (π=0; π<number_of_polygons(); π++) {
/*Επεξεργασία scanlines πολυγώνου ymin…ymax*/
for (y=ymin; y<=ymax; y++) {
/*Βρες με γραμμική παρεμβολή μεταξύ των αντίστοιχων κορυφών,
τις τιμές τομής με scanline y :xleft,xright
τις τιμές βάθους στις τομές :zleft,zright
τις τιμές χρωματισμού στις τομές :cleft,cright*/
for (x=xleft; x<=xright; x++) {
/*Βρες με γραμμική παρεμβολή μεταξύ xleft και xright την τιμή
βάθους z και χρώματος c σε κάθε pixel x,y*/
if (z<z_buffer[x,y]) {
z_buffer[x,y]=z;
frame_buffer[x,y]=c;
}}}}
Αλγόριθμος z-buffer
Ανάγκη σε μνήμη:
Ένας καλός z-buffer απαιτεί 32 bits/pixel.
Ερωτήσεις
1. Ποιες διαδικασίες ταξινόμησης χρησιμοποιούν οι αλγόριθμοι απόκρυψης;
i. Ταξινόμηση στην οριζόντια και κάθετη διάσταση Χ και Υ, για να βρούμε ποια
αντικείμενα τέμνονται από την κάθε ακτίνα προβολής και να επιλέξουμε το πλησιέστερο
από αυτά σαν εμφανές στο αντίστοιχο σημείο.
ii. Ταξινόμηση στη διάσταση του βάθους Ζ, καθώς όσο μακρύτερα είναι ένα αντικείμενο,
τόσο λιγότερο πιθανό είναι να είναι ορατό.
Αν οι περιβάλλοντες όγκοι δύο αντικειμένων δεν τέμνονται, τότε δεν μπορούν να τέμνονται ούτε
τα ίδια τα αντικείμενα, όπως φαίνεται και στο παρακάτω σχήμα:
Οι περιβάλλοντες όγκοι δεν
τέμνονται αλλά και τα ίδια τα
αντικείμενα δεν τέμνονται
Ερωτήσεις
6. Ποια συνθήκη πρέπει να ισχύει ώστε μια επιφάνεια να είναι ορατή από ένα
σημείο παρατήρησης;
Θα πρέπει η γωνία μεταξύ του διανύσματος παρατήρησης και του κάθετου διανύσματος
στην επιφάνεια να είναι μικρότερη από 90ο. Τη γωνία μεταξύ δύο διανυσμάτων την
υπολογίζουμε από το εσωτερικό τους γινόμενο. Επομένως, η επιφάνεια είναι ορατή όταν το
εσωτερικό γινόμενο των δύο παραπάνω διανυσμάτων είναι θετικό, που σημαίνει πως η
γωνία μεταξύ τους θα είναι μικρότερη από 90ο.
Στην οριακή περίπτωση κατά την οποία η γωνία μεταξύ του διανύσματος παρατήρησης και
του κάθετου διανύσματος στην επιφάνεια είναι ίση με 90ο, κάποιες μόνο από τις ακμές της
επιφάνειας είναι ορατές, οι οποίες όμως μπορούν να αγνοηθούν αφού είναι κοινές με
κάποιες άλλες (ορατές) επιφάνειες.
Ερωτήσεις
8. Για ποιο λόγο χρησιμοποιείται ο z-buffer ως κύριος αλγόριθμος απόκρυψης
επιφανειών;
Εισαγωγή (2)
• Πολυγωνικά Μοντέλα: Συνηθέστερη αναπαράσταση
επιφανειών
• Η πληροφορία που περιέχεται στα μοντέλα αυξάνεται
συνεχώς
• Βασικές εφαρμογές στα Γραφικά συχνά απαιτούν
μοντέλα με λιγότερη πληροφορία
• Απλοποίηση Μοντέλου: Μειώνει την ποσότητα
πληροφορίας που περιέχει ένα μοντέλο, χωρίς να
θυσιάσει σημαντικά την ποιότητα της αναπαράστασης
3
Ανασκόπηση Μοντέλων
• 2 κύριες κατηγορίες μοντέλων:
Αναπαράσταση Επιφάνειας (ή αναπαράσταση συνόρου (b-rep))
u Αναπαριστά μόνο την επιφάνεια αντικειμένου
u Επιφάνειες NURBS
u Επιφάνειες Υποδιαίρεσης
διάνυσμα)
u Περιορίζονται σε ορισμένα είδη αντικειμένων
Τα πολυγωνικά μοντέλα:
u Είναι προσεγγίσεις των αρχικών αντικειμένων
u Δυσκολότεροι υπολογισμοί
10
11
Ιδιότητες Πολυγωνικών Μοντέλων (4)
• Προσανατολισμένη επιφάνεια: Επιφάνεια που έχει 2 “όψεις”
Όπως μια κόλλα χαρτιού
• Οι περισσότερες επιφάνειες είναι προσανατολισμένες
• Στις κλειστές προσανατολισμένες επιφάνειες το ‘εσωτερικό’ &
‘εξωτερικό’ τμήμα της επιφάνειας είναι σαφώς διακριτά
• Κατά σύμβαση, το κανονικό διάνυσμα μιας κλειστής
προσανατολισμένης επιφάνειας δείχνει προς την ‘έξω’ μεριά
• Η ταινία Moebius είναι μια μη προσανατολισμένη επιφάνεια
12
V: # κορυφών
E: # ακμών του μοντέλου
F: # εδρών
13
Ιδιότητες Πολυγωνικών Μοντέλων (6)
• Για ένα κλειστό τριγωνικό μοντέλο ο παραπάνω τύπος
υποδηλώνει:
Ότι το πλήθος των τριγώνων του μοντέλου είναι σχεδόν 2-πλάσιο του
πλήθους των κορυφών
Ότι ο μέσος αριθμός τριγώνων γύρω από μια κορυφή είναι 6
• Ο τύπος του Euler γενικεύεται για μοντέλα που δεν είναι
πολλαπλότητες:
V – E + F = 2 – 2G
όπου G είναι το γένος (genus) του μοντέλου
• Το γένος ενός μοντέλου μπορεί να θεωρηθεί το πλήθος των
διαμπερών οπών του μοντέλου:
Ο τόρος (torus) έχει γένος 1
Ο διπλός τόρος έχει γένος 2
14
Άμεση λίστα ακμών
Άμεση λίστα εδρών περιέχουν για κάθε ακμή/έδρα του μοντέλου
τις συντεταγμένες των αντίστοιχων κορυφών
Παράδειγμα:
• Για το τετράεδρο της εικόνας ισχύει:
Λίστα ακμών:
e0 =( (x 0 ,y 0 ,z 0 ), (x1 ,y1 ,z1 )), e3 = ( (x1 ,y1 ,z1 ), (x 2 ,y 2 ,z 2 )),
e1 =( (x 0 ,y0 ,z 0 ), (x 2 ,y 2 ,z 2 )), e4 = ( (x1 ,y1 ,z1 ), (x 3 ,y3 ,z3 )),
e 2 =( (x 0 ,y0 ,z 0 ), (x 3 ,y3 ,z 3 )), e5 = ( (x 2 ,y 2 ,z 2 ), (x 3 ,y3 ,z3 ))
Λίστα εδρών:
f 0 =((x 3 ,y3 ,z3 ), (x 2 ,y 2 ,z 2 ),(x1 ,y1 ,z1 )),
f1 =((x 2 ,y 2 ,z 2 ), (x 3 ,y3 ,z 3 ),(x 0 ,y 0 ,z 0 )),
f 2 =((x1 ,y1 ,z1 ), (x 0 ,y0 ,z 0 ),(x 3 ,y3 ,z3 )),
f3 =((x 0 ,y0 ,z 0 ),(x1 ,y1 ,z1 ), (x 2 ,y 2 ,z 2 ))
16
• Λίστα εδρών:
Οι συντεταγμένες κάθε κορυφής επαναλαμβάνονται για κάθε ακμή ή
έδρα που την περιέχει σπατάλη χώρου
Δεν δίνει πληροφορίες για την γειτνίαση των εδρών και των ακμών
Οι κορυφές μπορούν να ανιχνευθούν με σύγκριση συντεταγμένων
μπορεί να προκύψουν προβλήματα αριθμητικής ακρίβειας ο
υπολογισμός της γειτνίασης μπορεί να παρουσιάζει προβλήματα
17
Δομές Δεδομένων για Πολυγωνικά Μοντέλα (4)
• Αρκετά από τα παραπάνω μειονεκτήματα επιλύονται από την
δεικτοδοτημένη λίστα εδρών:
Περιέχει λίστα κορυφών & λίστα εδρών του μοντέλου
Οι κορυφές των εδρών δίνονται σαν αναφορές στη λίστα κορυφών
20
21
Δομές Δεδομένων για Πολυγωνικά Μοντέλα (8)
• Η δομή winged-edge, είναι μια τέτοια δομή:
Κεντρικός κόμβος πληροφορίας είναι η ακμή
22
που τελειώνει
u Στη γειτονική έδρα της
23
Δομές Δεδομένων για Πολυγωνικά Μοντέλα (10)
• Η δομή Quad-edge είναι παρόμοια με τις παραπάνω:
Είναι πιο πολύπλοκη
Χρησιμοποιείται για τον αποδοτικό υπολογισμό ερωτήσεων γειτνίασης
Μπορεί να αναπαραστήσει ταυτόχρονα ένα μοντέλο πολλαπλότητας & το
δυϊκό του
u Το δυϊκό μοντέλο κατασκευάζεται περιστρέφοντας τις ακμές κατά
24
26
27
Απλοποίηση Πολυγωνικού Μοντέλου (4)
• Οι αλγόριθμοι απλοποίησης:
Αντιμετωπίζουν ευκολότερα κλειστά πλέγματα που είναι
πολλαπλότητες
Χειρίζονται συχνά και το σύνορο των μη-κλειστών μοντέλων
28
29
Απλοποίηση Πολυγωνικού Μοντέλου (6)
• Οι αλγόριθμοι συνεχούς απλοποίησης είναι πιο ενδιαφέροντες
από τους διακριτούς
• Είναι προσαρμοστικοί και εύκολα αντιστρέψιμοι επιτρέπουν
την μετακίνηση «πάνω» και «κάτω» μεταξύ επιπέδων
λεπτομέρειας
• Υποστηρίζουν την επιλεκτική εκλέπτυνση, δηλαδή την δυναμική
προσαρμογή της λεπτομέρειας σε διάφορα μέρη του μοντέλου
• Ομαλή εκλέπτυνση του πλέγματος ελαχιστοποίηση οπτικών
ατελειών κατά την εναλλαγή επιπέδων λεπτομέρειας σε
διαδραστικές εφαρμογές.
30
31
Απλοποίηση Πολυγωνικού Μοντέλου (8)
• Τα πιο διαδεδομένα μέτρα, εκτιμούν κάποια απόσταση του
απλοποιημένου μοντέλου από το αρχικό:
Απόσταση Hausdorff: μετράει τη μέγιστη απόσταση μεταξύ 2
οποιωνδήποτε σημείων δύο επιφανειών M και M’
d¥ ( M , M ') = max(max{d ( v, M ')}, max{d ( v ', M )}),
vΞ M v'Ξ M '
όπου d ( v, M ) = min{
wΞ M
v - w } είναι η απόσταση ενός σημείου v από μια
επιφάνεια M, ορισμένη ως η απόσταση του v από το πιο κοντινό σημείο
w της επιφάνειας
1 2 επιφανειών:1
Μέση τετραγωνική απόσταση
s vς s ' v'ς
d 2 ( M , M ') = d ( v, M ') + d ( v ', M ),
ΞM ΞM '
34
35
Απλοποίηση με Διαδοχικές Καταρρεύσεις Ακμών (4)
• Απλοποίηση με τη μέθοδο τετραγωνικού σφάλματος:
Ελαχιστοποιεί την τετραγωνική απόσταση της νέας κορυφής από τις
έδρες γύρω από την ακμή που κατέρρευσε
Έστω Δ μια τριγωνική έδρα του μοντέλου με εξίσωση επιπέδου:
ax + by + cz + d = 0
Τετραγωνική απόσταση σημείου x = [x, y, z] από το επίπεδο Δ :
T
(ax + by + cz + d ) 2 (nT x + d ) 2
QD (x) = 2 2 2
= 2
= (nˆ T x + dˆ ) 2 = xT (nn
ˆ ˆ T )x + 2dˆnˆ T x + dˆ 2 ,
a +b +c n
n
όπου nˆ είναι το μοναδιαίο κανονικό διάνυσμα του Δ και dˆ
d
n n
Qv = ε
D arround x
wD QD
37
Απλοποίηση με Διαδοχικές Καταρρεύσεις Ακμών (6)
Αφού η ακμή e(v0, vd) καταρρεύσει, η συνολική τετραγωνική απόσταση
της προκύπτουσας κορυφής vs από όλες τις έδρες γύρω από τις v0 και vd
είναι:
Q( v s ) Qv0 ( v s ) Qvd ( v s ) ή Q Qv Qv
0 d
38
39
Απλοποίηση με Διαδοχικές Καταρρεύσεις Ακμών (8)
• Η απλοποίηση μεγάλων μοντέλων είναι χρονοβόρα
Αν χρησιμοποιείται διαδικασία βελτιστοποίησης, κοστίζει ακόμα
περισσότερο συνήθως προϋπολογίζεται
Τα επίπεδα λεπτομέρειας μπορούν να αξιοποιηθούν διαδραστικά σε
πραγματικό χρόνο για επιλεκτική εκλέπτυνση του μοντέλου
40
Ερωτήσεις
Ερώτηση 1
Ποίες είναι οι κύριες κατηγορίες μοντέλων?
Αναπαράσταση Επιφάνειας
Αναπαράσταση Όγκου
Ερώτηση 2
• Ποιες είναι οι μορφές των μοντέλων επιφάνειας:
Τα μαθηματικά μοντέλα:
Τα πολυγωνικά μοντέλα:
Ερώτηση 3
Ποίες οι μέθοδοι απλοποίησης μοντέλων:
Αυτές που παράγουν διακριτά επίπεδα λεπτομέρειας του αρχικού
μοντέλου
Αυτές που παράγουν συνεχή επίπεδα λεπτομέρειας του αρχικού μοντέλου
41
Διαχείριση Σκηνής
Εισαγωγή
• Διαχείριση Σκηνής:
Τα στοιχειώδη αντικείμενα της σκηνής συγκεντρώνονται σε χωρικά
συνεπείς συστάδες
Οι συστάδες μπορούν να ομαδοποιηθούν σε μεγαλύτερες χωρικές ομάδες
• Γιατί είναι χρήσιμη η διαχείριση σκηνής:
Όλα τα στοιχειώδη αντικείμενα τακτοποιούνται ιεραρχικά &
προσπελαύνονται αποδοτικά
Περικόπτονται νωρίς (σε υψηλό ιεραρχικό επίπεδο) από διαδικασίες
όπως η περικοπή στο οπτικό πεδίο
Διευκολύνεται η διαχείριση των δεδομένων (δυναμικό φόρτωμα,
λειτουργίες κρυφής μνήμης, κ.τ.λ.)
• Κατά τη σχεδίαση εικονικών κόσμων σκεφτόμαστε με
οντολογικούς όρους & ομαδοποιούμε τις οντότητες σύμφωνα με
κάποιες λογικές σχέσεις αλλά:
Μπορούμε εναλλακτικά, να οργανώσουμε τα δεδομένα με χωρικά
συνεπή τρόπο (διαμέριση χώρου)
2
Εισαγωγή (2)
• Η διάσπαση της σκηνής σε χωρικά συνεχείς ιεραρχίες
προσφέρει μεγάλη αποδοτικότητα
• Οι οντολογικές ιεραρχίες δε συμβαδίζουν απαραίτητα με τη
χωρική διάταξη των αντικειμένων δε βοηθάνε τη διαμέριση
χώρου
• Η κατασκευή & ομαδοποίηση ενός ιεραρχικού κόσμου
προσφέρει καλύτερη διαχείριση της σκηνής και λιγότερη
σπατάλη μνήμης
• Η πολύ ενδελεχής αποσύνθεση της σκηνής σε ιεραρχικά
τμήματα μπορεί να έχει αρνητικά αποτελέσματα:
Η εφαρμογή ξοδεύει χρόνο στην διάσχιση της ιεραρχίας της σκηνής
Στα γραφικά που επιταχύνονται από το υλικό του υπολογιστή, η
διαμέριση μπορεί να οδηγήσει σε κακές γεωμετρίες & συχνές αλλαγές
κατάστασης των χαρακτηριστικών σχεδίασης
Παραδείγματα
4
Παραδείγματα (2)
Οντολογική διαμέριση
με βάση τα υλικά
Χωρική διαμέριση
Παραδείγματα (3)
• Τα εσωτερικά περιβάλλοντα δημιουργούνται με περικοπή
πυλών και δέντρα Δυαδικής Διαμοίραση Χώρου (BSP)
• Οι εξωτερικές σκηνές δημιουργούν ιεραρχίες με μεγάλο
παράγοντα διακλάδωσης για αποδοτική περικοπή στο
οπτικό πεδίο
6
Γράφοι Σκηνής
• Γράφος Σκηνής (ΓΣ): Ιεραρχία γεωμετρικών στοιχείων συσχετιζόμενα
με οντολογικό τρόπο και χωρική (γεωμετρική) εξάρτηση
• Αποτελείται από κόμβους που αναπαριστούν:
Γεωμετρικά στοιχεία (στατικά ή κινούμενα)
Συναθροίσεις κόμβων
Μετασχηματισμούς
Εξαρτώμενες επιλογές
Άλλες οντότητες προς αναπαραγωγή (π.χ. ήχους)
Κόμβους εργασιών προσομοίωσης
Γράφους άλλων σκηνών
• Οι ΓΣ είναι κατευθυνόμενοι, μη κυκλικοί γράφοι κόμβων, των οποίων
οι ακμές ορίζουν γεωμετρικές ή λειτουργικές εξαρτήσεις ενός κόμβου
παιδιού με τον πατρικό του
• Οι κόμβοι περιέχουν όλη την λειτουργικότητα που χρειάζεται για να
ορισθεί μια συμπεριφορά η λειτουργικότητα είναι ‘προσκολλημένη’
σε ένα αντικείμενο (βλ. αντικειμενοστραφή υλοποίηση)
8
Παράδειγμα
• Η κίνηση κάθε μηχανικού
μέρους ενός σκάφους που
σχετίζεται με το ΠΣΣ είναι
δύσκολο να παραχθεί
άμεσα
• Πχ, Ποια είναι η
φαινομενική κίνηση της
προπέλας του σκάφους σε
σχέση με το άτομο στο
λιμάνι και ποια σε σχέση
με τον οδηγό?
Σχέσεις Κόμβων
• Εν γένει, εκφράζουμε ένα κόμβο γράφου σκηνής (στόχος) που
σχετίζεται με έναν άλλο (κόμβος αναφοράς) με μια αλλαγή του
συστήματος συντεταγμένων αναφοράς σύμφωνα με τους
ενδιάμεσους μετασχηματισμούς:
Εφαρμογή μιας προς τα πάνω διάσχισης του δέντρου από τον στόχο προς τον
κοινό γονικό κόμβο του στόχου και του κόμβου αναφοράς
Διάσχιση προς τα κάτω στον κόμβο αναφοράς με εφαρμογή των αντίστροφων
μετασχηματισμών του μονοπατιού
• Ο μετασχηματισμός ενός κόμβου στο επίπεδο k σε ένα κλαδί A
που σχετίζεται με έναν άλλο κόμβο που βρίσκεται στο επίπεδο
m σε ένα κλαδί B με κοινή ρίζα στο επίπεδο r είναι:
r 1 k
M A B M 1
Bj M Ai
j m i r 1
10
Σχέσεις Κόμβων (2)
r
M Ak 2 M Bm1
M Ak 1 M Bm
M Ak Β
11
Οργάνωση Δεδομένων
• Οι πλειοψηφία των γράφων σκηνής περιγράφει σχέσεις μεταξύ:
Οντοτήτων
Συναθροίσεων κόμβων
• Οι κόμβοι γεωμετρίας μπορούν να περιέχουν:
Δεδομένα
Πληροφορίες δεδομένων στοιχειωδών αντικειμένων (Επιφάνειες NURBS, δεδομένα
όγκου)
• Τα δεδομένα των κόμβων μπορεί να είναι:
Αταξινόμητα (ακατέργαστα)
Ευρετηριοποιημένα
12
Υβριδική Οργάνωση
• Οι κόμβοι γεωμετρίας μπορεί να είναι κομμάτι δομών χωρικής
διαμέρισης (Δέντρα AABB)
• Αυτή η δομή χρησιμοποιείται συχνά σε εφαρμογές με μεγάλα σύνολα
δεδομένων (σχεδίαση σε μη πραγματικό χρόνο)
• Γράφος Σκηνής:
Αναπαριστά την οντολογική οργάνωση των δεδομένων, αλλά:
Η γεωμετρία συνυπάρχει δηλωμένη και στα φύλλα του γράφου και σε ένα
μηχανισμό χωρικής διαμέρισης
• Για την ενημέρωση των χαρακτηριστικών των αντικειμένων και τους
μετασχηματισμούς τους χρησιμοποιείται ο γράφος σκηνής
• Για τη σχεδίαση της γεωμετρίας χρησιμοποιείται η προσπέλαση μέσω
του συστήματος χωρικής διαμέρισης (βλ. κεφάλαιο Παρακολούθησης
ακτινών)
13
14
Δημιουργία Στιγμιότυπου Κόμβου
• Γιατί πρέπει να διπλασιαστεί ένας κόμβος για την δημιουργία αντιγράφων
της ίδιας οντότητας εφόσον αυτά είναι ταυτόσημα με την αρχική;
• Δημιουργείται μια αναφορά στον αρχικό κόμβο, όποτε πρέπει να εισαχθεί
στον γράφο ένας ταυτόσημος κόμβος
• Στο νέο κόμβο δεν επισυνάπτεται αντίγραφο των δεδομένων
• Όταν υπάρχει δημιουργία στιγμιότυπου, η δενδρική δομή του γράφου
σκηνής μετασχηματίζεται σε ένα κατευθυνόμενο κυκλικό γράφο
15
16
Διάσχιση Γράφου Σκηνής
• Κύριο πλεονέκτημα αναπαράστασης γράφου σκηνής ενός 3Δ κόσμου:
Κάθε διαδικασία εφαρμόζεται στον κόμβο ρίζα της ιεραρχίας & διαδίδεται στις
υπόλοιπες οντότητες μέσω της διάσχισης του γράφου σκηνής
• 4 κύριες διαδικασίες εφαρμόζονται σε ένα γράφο σκηνής:
Αρχικοποίηση
Προσομοίωση
Περικοπή
Σχεδίαση
• Κάθε διαδικασία εφαρμόζεται ιεραρχικά στους κόμβους
17
18
Περικοπή (cull)
• Η περικοπή σε ένα γράφο σκηνής συνδέεται με τις εξαρτήσεις κόμβων
Κάθε κόμβος “περιέχει” όλα τα παιδιά του:
Αν ο κόμβος ρίζα ενός υποδέντρου θεωρηθεί “αφανής” κάθε κόμβος παιδί του
είναι επίσης αφανής ολόκληρο το υποδέντρο περικόπτεται
Αν ένας συναθροιστικός κόμβος είναι ορατός τα παιδιά του ελέγχονται ξεχωριστά
σε περίπτωση μερικής παρεμπόδισης του κόμβου γονέα, κάποιοι κόμβοι παιδιά
μπορεί να είναι ορατοί
Το αποτέλεσμα τις διαδικασίας περικοπής καθορίζεται από τον έλεγχο του
περιβάλλοντα όγκου του κόμβου που έχει επιλεχθεί
Για έναν συναθροιστικό κόμβο, ο περιβάλλον όγκος αντικατοπτρίζει τις
συγκεντρωτικές επεκτάσεις των παιδιών του Ιεραρχίες περιβαλλόντων όγκων
19
20
Ιεραρχίες Περιβαλλόντων Όγκων (2)
Μια τεχνική που υιοθετείται όταν η ταχύτητα είναι πιο σημαντικός παράγοντας από
την ακριβή ορατότητα: Προσαρμογή του περιβάλλοντα όγκου ενός συναθροιστικού
κόμβου με βάση:
u Τα μετασχηματισμένα όρια των περιβαλλώντων όγκων των παιδιών του
u Αντί για τα όρια των μετασχηματισμένων παιδιών του
21
22
Σχεδίαση Γράφου Σκηνής (draw)
• Η διαδικασία σχεδίασης :
Αναδρομικά κατέρχεται την ιεραρχία και εφαρμόζει αλγορίθμους σχεδίασης
εικόνας σε κάθε ορατό κόμβου
Στην απευθείας σχεδίαση εικόνας και τον αλγόριθμο εκπομπής ακτινών 1ου
επιπέδου τα υποδέντρα που έχουν περικοπεί αγνοούνται
23
24
Προγραμματίζοντας με Γράφους Σκηνής (2)
• Όλοι οι κόμβοι ενός γράφου σκηνής προέρχονται από μια κλάση κόμβων
& μεταβάλλουν τη συμπεριφορά τους καθώς ένας κόμβος κληρονομεί
κοινά χαρακτηριστικά και εξειδικεύει τη συμπεριφορά του:
class Node
{
protected:
bool active;
bool culled;
public:
Node();
virtual void init();
virtual void simulate();
virtual void cull();
virtual void draw();
virtual void reset();
};
25
26
Προγραμματίζοντας με Γράφους Σκηνής (4)
• Οι κόμβοι που είναι επέκταση της κλάσης Node κληρονομούν τις 4
βασικές λειτουργίες
• Οι συναθροιστικοί κόμβοι παράγονται από την κλάση Group &
μοιράζονται ένα κοινό τρόπο λειτουργίας:
Διατηρούν μια λίστα απογόνων και διαθέτουν βασικές λειτουργίες μιας συλλογής
• Πιο περίπλοκες υποκλάσεις Group επεκτείνουν τη συμπεριφορά με
την πρόσθεση ειδικών μεθόδων
• Κοινό χαρακτηριστικό όλων των κόμβων Group είναι η διάσχιση των
απογόνων τους:
Εκδηλώνεται ως ένα αναδρομικό κάλεσμα όλων των αντικειμένων Node στην
εσωτερική τους λίστα
• Λόγω του πολυμορφισμού, ένα αντικείμενο Group μπορεί καλέσει τις
μεθόδους init(), draw(), cull(), simulate() χωρίς να
ξέρει από ποιες υποκλάσεις προέρχεται το αντικείμενο
27
28
Προγραμματίζοντας με Γράφους Σκηνής (6)
• Ο τρόπος διάσχισης ενός γράφου σκηνής ορίζει τη σειρά
εκτέλεσης κάθε μεθόδου
• Η αρχικοποίηση και τα 3 επαναλαμβανόμενα βήματα
εκτελούνται ιεραρχικά το ένα μετά το άλλο ξεκινώντας από
τη ρίζα της σκηνής
• Μετά την αρχικοποίηση, οι αρμοδιότητες ενός γράφου
σκηνής περιλαμβάνουν:
Την εκτέλεση της προσομοίωσης
Την περικοπή
Τις μεθόδους σχεδίασης (draw) του κόμβου ρίζας
• Οπότε, γίνονται 3 διασχίσεις πριν οπτικοποιηθεί ο γράφος
σκηνής
29
30
Ενημέρωση Δεδομένων με Υστέρηση
• Σε αυτή τη μέθοδο, οι αλλαγές στην κατάσταση μιας οντότητας δεν
παράγουν άμεσο αποτέλεσμα:
Μια φορά γίνεται ο υπολογισμός τιμής για όλα τα χαρακτηριστικά για την
παραγωγή μιας προσομοίωσης, περικοπής, ή οπτικού αποτελέσματος
• Οι ενημερώσεις με υστέρηση είναι χρήσιμες όταν πρέπει να γίνεται μια
υπολογιστικά ακριβή διαδικασία κάθε φορά που αλλάζει μια μεταβλητή
• Παραδείγματα σε ένα γράφο σκηνής:
Συνθετική κίνηση βασισμένη σε μηχανική προσομοίωση
Υπολογισμός πολυέδρου σκιάς
31
Μεταφορά Μηνυμάτων
• Σύνθετοι γράφοι σκηνής δεν περιοριζόμαστε στον ιεραρχικό έλεγχο
• Άμεση επικοινωνία: οι κόμβοι μπορούν να επικοινωνήσουν μεταξύ τους
Με άμεσο κάλεσμα μεθόδων άλλων κόμβων
Με μηνύματα
• Στη δεύτερη περίπτωση (πιο εύκολη στο συγχρονισμό), κάθε κόμβος
πρέπει να επεκταθεί για να υποστηρίζει μια ουρά μηνυμάτων και ένα
χάρτη γεγονότων:
class NodeMessage
{
Node *from, *to;
int ID;
void * params;
};
typedef EventID int;
32
Μεταφορά Μηνυμάτων (2)
class Node
{
protected:
...
vector<NodeMessage *> msgQueue;
multimap<EventID,NodeMessage *> eventMap;
// Επεξεργασία εισερχομένων μηνυμάτων
void processMessages();
// Αποστολή εξερχομένων μηνυμάτων
void dispatchMessages();
public:
...
// Εισαγωγή μηνύματος στην ουρά του κόμβου
message( NodeMessage *msg );
registerEvent( EventID evt, Node* target,
int msgID, void* params );
};
33
34
Μεταφορά Μηνυμάτων: Παράδειγμα
• Θεωρείστε ένα δωμάτιο γεμάτο έπιπλα.
Αρχικά το φως είναι σβηστό δε χρειάζεται να έχουν τα έπιπλα σκιές αρχικά
απενεργοποιημένο για αυτούς του κόμβους γεωμετρίας
Όταν ανάβει το φως τα έπιπλα πρέπει να αποκτήσουν σκιές
• Θέτουμε ένα αντικείμενο με όνομα halo ορατό γύρω από τη λάμπα για να
είναι ρεαλιστική η σκηνή
Light * bulb; // Το Light επεκτείνει το Node
Geometry *furniture, *halo;
...
bulb -> registerEvent( EVENT_ON, furniture, MSG_SHADOWS_ON,
NULL);
bulb -> registerEvent( EVENT_ON, halo, MSG_ENABLE, NULL);
35
36
Προ/Μετά Βήματα Επεξεργασίας Κόμβων
• Πρέπει να προσθέσουμε μεθόδους προ/μετα-προσομοίωσης θα
εκτελούνται μέσω ενός βήματος προ/μετά προσομοίωσης για όλη τη σκηνή :
void Scene::simulate()
{
preSimulate();
Group::simulate();
postSimulate();
}
...
void Group::preSimulate()
{
vector <Node>::size_type i,sz; sz = children.size();
for (i=0; i<sz; i++)
children[i]->preSimulate();
}
37
Παραδείγματα:
• Όταν σχεδιάζουμε με OpenGL, πρέπει να υλοποιηθεί ένας κόμβος
Transformation :
Μια συνάρτηση προ-σχεδίασης για να τοποθετήσει το τρέχοντα πίνακα κατάστασης στη
στοίβα
Μια συνάρτηση μετα-σχεδίασης για να αφαιρέσει το τρέχοντα πίνακα κατάστασης από
τη στοίβα
• Μια καθολική συνάρτηση μετα-σχεδίασης μπορεί να προκαλέσει εναλλαγή
καταχωρητών εικόνας
38
Κατανεμημένη Δημιουργία Σκηνής
• Απαιτητικές εφαρμογές ή πολλαπλών-χρηστών/πολλαπλών-οθονών
χρειάζονται να κατανέμουν τα δεδομένα του γράφου σκηνής και να τα
σχεδιάζουν σε πολλαπλούς επεξεργαστές
• Ένας επεξεργαστής μπορεί να είναι:
Ένας ηλεκτρονικό υπολογιστής
Ένας ειδικός συνεπεξεργαστής
Ένα ή παραπάνω συστήματα παράλληλων επεξεργαστών
• Η σκηνή δεν είναι απαραίτητο να βρίσκεται σε κοινό χώρο στη μνήμη
39
40
Κατανεμημένη Σχεδίαση με Μετα-Ταξινόμηση
• Κατανομή της σχεδίασης μιας σκηνής σε επεξεργαστές με χωρικό
κατακερματισμό:
ένα μέρος της σκηνής μεταφέρεται σε κάθε επεξεργαστή
το κάθε μέρος σχεδιάζεται ανεξάρτητα
μετά συντίθεται ένα ενιαίο τελικό αποτέλεσμα
• Η σκηνή διαιρείται σύμφωνα με την ιεραρχία του γράφου σκηνής ή το
μηχανισμό υποδιαίρεσης χώρου
τα τμήματα κατανέμονται στους διαθέσιμους επεξεργαστές
κάθε επεξεργαστής σχεδιάζει ένα τμηματικό αποτέλεσμα
μετά το αποτέλεσμα πρέπει να συνδυαστεί με τα υπόλοιπα αποτελέσματα
• Στην περίπτωση της άμεσης σχεδίασης:
Οι ενδιάμεσες εικόνες-αποτελέσματα δεν είναι ταξινομημένες ως προς το βάθος
Επικαλύπτονται στο χώρο της εικόνας
Οι προκύπτοντες καταχωρητές εικόνας δεν μπορούν να συνδυαστούν άμεσα
Συνήθης πρακτική είναι η διατήρηση και μετάδοση των καταχωρητών βάθους
κάθε μέρους και η σχεδίαση με βάση το συγκριτικό βάθος
41
42
Κατανεμημένη Σχεδίαση με Προ-Ταξινόμηση
• Διαδικασίες προ-ταξινόμησης:
Εκτελούν μια προ-διαμέριση του πεδίου εξόδου (εικόνα)
Σε κάθε επεξεργαστής ανατίθεται ένα ή περισσότερα κομμάτια
• Η σύνθεση των κομματιών προς σχεδίαση είναι τετριμμένη
σε αυτούς τους αλγορίθμους τα κομμάτια εικόνας που
μαζεύονται δεν έχουν επικαλύψεις
• Στην περίπτωση της έμμεσης (offline) σχεδίασης συνθετικής
κίνησης :
Κάθε επεξεργαστής διατηρεί ένα πλήρες αντίγραφο της βάσης δεδομένων
της σκηνής καθώς και εξωτερικά χαρακτηριστικά (υφές), και σχεδιάζει
ανεξάρτητα μια ολοκληρωμένη εικόνα καρέ ή τμήμα της.
Τετριμμένα παράλληλα: όχι επικοινωνία εκτός από την αρχικοποίηση και
τη συγκομιδή των τελικών τμημάτων εικόνας.
43
44
Διαμέριση με Προ-Ταξινόμηση
• Οι στρατηγικές διαμέρισης στο χώρο εικόνας είναι
σημαντικές και αποτελεσματικές ως προς το φόρτο
εργασίας:
Συνήθεις μέθοδοι διαμέρισης:
Εναλλαγή γραμμών σάρωσης (interlaced scan-line)
Σε Ψηφίδες (Tiled )
antialiasing)
45
Μια τιμή έντασης αναπαρίσταται από ένα πραγματικό αριθμό μεταξύ του 0
(μαύρο) και του 1 (άσπρο)
Οι ενδιάμεσες τιμές καλούνται αποχρώσεις του γκρι
Έστω d το πλήθος των ψηφίων για την αναπαράσταση της έντασης ενός
εικονοστοιχείου n=2d διαφορετικές τιμές έντασης για κάθε εικονοστοιχείο.
Εστω μία οθόνη με d bits/pixel.
Με d bits μπορούμε να αναπαριστούμε n=2 διαφορετικές τιμές
d
Φ1 = λ* Φ0
Φ2 = λ* Φ1=λ2*Φ0
…
Φn-1 = λn-1*Φ0 = 1
Δοθέντος του Φ0 της συσκευής εξόδου, το λ υπολογίζεται:
λ = (1 / Φ0)(1/n-1) (1)
Αποχρώσεις Γκρι
Ερώτηση: Πόσες τιμές έντασης απαιτούνται;
Απάντηση:
Αν λ < 1.01, τότε το ανθρώπινο μάτι δεν μπορεί να διαχωρίσει διαδοχικές
τιμές έντασης
Θέτοντας λ = 1.01 και
επιλύοντας την (Λ) ως
προς n:
1.01(n-1)*Φ0 = 1
n = log1.01(1/Φ0) + 1
Οι συνήθεις οθόνες έχουν
Φ0 ~ (1/300) n = 500
Δεξιά: Εικόνα με
n=2,4,8,16,32,64,128 & 256
7
Αποχρώσεις Γκρι
Υπολογισμός του ελάχιστου αριθμού τιμών φωτεινότητας:
(1) 1.01n 1 Φ 0 1
n log1.01 1/ Φ0 1
Για τυπικά Φ0 , n 500
Παρατηρούμε πως
όσο περισσότερο
αυξάνει το n τόσο
καλύτερα
προσεγγίζουμε την
πραγματική μορφή
n=2 n=4 n=8 n=16 της εικόνας.
Αποχρώσεις Γκρι
Αύξηση διαθέσιμων τιμών φωτεινότητας, σε βάρος της ανάλυσης της οθόνης.
Αντίθετο αντιταύτισης.
10
Αυτοτυπία (2)
Ψηφιακή προσέγγιση για την αυτοτυπία: προσομοίωση μεγέθους κουκίδας με
πυκνότητα ‘μαύρων’ εικονοστοιχείων
Η εικόνα διαιρείται σε περιοχές των (m x m) εικονοστοιχείων
Ανταλλαγή χωρικής ανάλυσης για ανάλυση αποχρώσεων γκρι
Μείωση χωρικής ανάλυσης κατά m σε κάθε διάσταση
Αύξηση πλήθους τιμών αποχρώσεων γκρι κατά m2
Παράδειγμα: Έστω μια ασπρόμαυρη εικόνα. Η (2x2) διαμέριση των
εικονοστοιχείων (m = 2) δίνει 5 αποχρώσεις γκρι. Εν γένει, για (m xm) περιοχές
διαμέρισης, με 2 αρχικές αποχρώσεις γκρι, παίρνουμε m2+1 τελικές αποχρώσεις
του γκρι
11
Αυτοτυπία (3)
Η παραπάνω ανάθεση αποχρώσεων του γκρι μπορεί να
παρασταθεί με τον πίνακα:
3 1
0 2
12
Αυτοτυπία (4)
Τα όρια των τεχνικών αυτοτυπίας τίθενται από:
Την αρχική χωρική ανάλυση της εικόνας
Την απόσταση παρατήρησης
Πχ: Δεν έχει νόημα η ανταλλαγή όλης της χωρικής ανάλυσης για
αποχρώσεις του γκρι
Η ακολουθία που ορίζει τις αποχρώσεις του γκρι πρέπει να
επιλεγεί προσεχτικά
Αυξητική: τα εικονοστοιχεία που επιλέγονται για την απόχρωση i πρέπει
να είναι υποσύνολο των εικονοστοιχείων της απόχρωσης j για κάθε j>i
Κακή επιλογή για απόχρωση 2:
13
Αυτοτυπία (5)
Μια καλή ακολουθία (2x2) περιοχές είναι η:
0 2
H2
3 1
Αναδρομική κατασκευή μεγαλύτερων πινάκων, όπως, (4x4),
(8x8) ως εξής:
4·H m/ 2 4·H m/ 2 2·U m/ 2
Hm , m 4, m 2k
4·H m/ 2 3·U m/ 2 4·H m/ 2 U m/ 2
όπου Um είναι ο (m x m) πίνακας με όλα τα στοιχεία ίσα με 1
14
Αυτοτυπία (6)
Η αυτοτυπία επεκτείνεται άμεσα σε μέσα που μπορούν να
αποτυπώσουν πολλαπλά επίπεδα αποχρώσεων του γκρι ανά
εικονοστοιχείο
Χρήση περιοχών (m x m) για αύξηση του πλήθους αποχρώσεων
του γκρι από k σε (k−1)m2+1, με ταυτόχρονη μείωση της
διαθέσιμης χωρικής ανάλυσης κατά m στους άξονες x και y
Π.χ. m=2
k=4
15
Αυτοτυπία (7)
Στην αυτοτυπία υποθέτουμε ότι υπάρχει αφθονία χωρικής
ανάλυσης (ανάλυση οθόνης >> ανάλυση εικόνας) ανταλλαγή
χωρικής ανάλυσης για ανάλυση αποχρώσεων γκρι
Ερώτηση: Τι γίνεται αν η εικόνα και η οθόνη έχουν την ίδια
χωρική ανάλυση, αλλά η εικόνα έχει μεγαλύτερη ανάλυση
αποχρώσεων γκρι από την οθόνη;
Απάντηση 1: Απλή στρογγύλευση: κακό αποτέλεσμα (μεγάλη
απώλεια πληροφορίας):
16
Αυτοτυπία (8)
Απάντηση 2: Οι Floyd & Steinberg πρότειναν μέθοδο που
περιορίζει την απώλεια πληροφορίας, μεταβιβάζοντας το
σφάλμα στρογγύλευσης από ένα εικονοστοιχείο στα γειτονικά
του
Η διαφορά ε ανάμεσα στην πραγματική τιμή τις εικόνας Ex,y &
της πλησιέστερης τιμής παράστασης Ox,y του εικονοστοιχείου
(x, y) στην οθόνη υπολογίζεται ως:
ε = Ex,y − Ox,y
Το εικονοστοιχείο παίρνει την τιμή Ox,y και το σφάλμα ε
μεταβιβάζεται σε 3 γειτονικά εικονοστοιχεία ως εξής:
Ex+1,y = Ex+1,y + 3 ∙ ε / 8,
Ex,y−1 = Ex,y−1 + 3 ∙ ε /8,
Ex+1,y−1 = Ex+1,y−1 + ε /4
17
Αυτοτυπία (9)
18
Αυτοτυπία (10)
19
Αυτοτυπία
Halftoning υποθέτει την ύπαρξη ανάλυσης συσκευής >>
ανάλυση εικόνας.
Τι γίνεται αν οι αναλύσεις είναι ίσες και η εικόνα έχει
περισσότερες τιμές φωτεινότητας από pixel συσκευής;
Απλή στρογγύλευση, όχι καλή (Σχήμα Α).
Διόρθωση Γάμμα
Η τάση (είσοδος) μιας οθόνης σχετίζεται μη γραμμικά με την
ένταση (έξοδος) ενός εικονοστοιχείου:
έξοδος = είσοδος γ
όπου γ[1.5 , 3.0] και εξαρτάται από την οθόνη
Οι τιμές τάσης εισόδου κανονικοποιούνται στο [0, 1]
Εικόνες που δεν έχουν διορθωθεί ως προς γ, εμφανίζονται πολύ
σκοτεινές
Διόρθωση Γάμμα: Διορθώνει τις τιμές τάσης εισόδου ώστε να
διασφαλίσει γραμμική σχέση μεταξύ τιμών εισόδου και
απεικόνισης (εξόδου) :
είσοδος’ = είσοδος1/γ
Οι τιμές είσοδος’ αποτελούν την εικόνα με Διόρθωση Γάμμα
21
Διόρθωση Γάμμα (2)
Αριστερά: Διορθωμένη εικόνα Δεξιά: μη διορθωμένη εικόνα
Δυσκολίες υλοποίησης:
Μια συσκευή απεικόνισης μπορεί (και πρέπει να γνωρίζουμε):
να εφαρμόζει Διόρθωση Γάμμα
να εφαρμόζει μερικώς Διόρθωση Γάμμα
να ΜΗΝ εφαρμόζει Διόρθωση Γάμμα
Τρέχουσες δομές εικόνων δεν αποθηκεύουν πληροφορίες για Διόρθωση
Γάμμα δύσκολη η διαχείριση της τεχνικής μεταξύ συσκευών
Διόρθωση Γάμμα σε ασπρόμαυρες αλλά και σε έγχρωμες εικόνες
Στην δεύτερη περίπτωση επηρεάζει την
22
ένταση
Χρωματικά Μοντέλα
Σε έναν κόσμο πλούσιο σε χρώματα, δεν υπάρχουν χρώματα!
Goethe
Χρώμα: Αποτέλεσμα διαδικασιών ατομικής αντίληψης
Χρωματικό Μοντέλο: ένα μοντέλο το οποίο
Περιγράφει
Συγκρίνει
Κατηγοριοποιεί
Ταξινομεί
τα χρώματα
Απλή προσέγγιση: Γραμμικό μοντέλο
Αριστοτέλη
23
Χρωματικά Μοντέλα
Τα ορατά χρώματα αντιστοιχούν σε συχνότητες φωτός:
Καλύπτουν μικρό μέρος του ηλεκτρομαγνητικού φάσματος
Διαφορετικές συχνότητες αναπαριστούν διαφορετικά χρώματα
4.3 · 1014 Hz (κόκκινο) ως 7.5 · 1014 Hz (μωβ)
25
Χρωματικά Μοντέλα: Κατηγορίες (2)
Αντιλαμβανόμενη γραμμικότητα (Perceptual
linearity):
Ισχύει όταν η αντιληπτή διαφορά μεταξύ 2 χρωμάτων είναι ανάλογη της
διαφοράς των αντίστοιχων χρωματικών τιμών σε ολόκληρο το φάσμα του
χρωματικού μοντέλου
Διαισθητική χρηστικότητα: Επιθυμητή
Θα εξεταστούν τα παρακάτω χρωματικά μοντέλα:
1. CIE XYZ
2. CIE Yu΄v΄
3. CIE L*a*b*
4. RGB
5. HSV
6. CMY(K)
26
27
1. Χρωματικό Μοντέλο CIE XYZ (2)
X,Z παρέχουν πληροφορία χρωματικότητας
Y αντιστοιχεί στην ένταση
Τα βασικά χρώματα συνθέτουν μια χρωματική βάση
Τα λοιπά χρώματα F εκφράζονται σαν γραμμικοί
συνδυασμοί της βάσης: F X ·X Y ·Y Z ·Z
28
29
1. Χρωματικό Μοντέλο CIE XYZ (4)
Χρωματικό τρίγωνο ΧYZ:
Δημιουργείται με την προβολή του μοντέλου CIE XYZ στο επίπεδο
X+Y+Z=1
Ένα τυχαίο χρώμα (X,Y,Z) αντιστοιχεί στο σημείο (x, y, z) του τριγώνου:
X Y Z
x , y , z
(X Y Z) (X Y Z) (X Y Z)
Το (x, y, z) είναι η τομή του διανύσματος (X,Y,Z) & του τριγώνου XYZ
Αφού X+Y+Z=1 Χρώματα τριγώνου περιγράφονται από 2 συντεταγμένες
XY τρίγωνο: Προβολή του τριγώνου XYZ στο επίπεδο xy:
30
31
2. Χρωματικό Μοντέλο CIE Yu΄v΄
Μετασχηματισμός του CIE XYZ
Παρέχει αντιλαμβανόμενη γραμμικότητα
Ορίζει u΄ & v΄ ως προς x & y του CIE XYZ:
4x 9y
u , v
2 x 12 y 3 2 x 12 y 3
32
33
3. Χρωματικό Μοντέλο CIE L*a*b* (2)
Με όρους του CIE XYZ και με λευκό σημείο το (Xn, Yn, Zn), οι
παράμετροι του CIE L*a*b* είναι:
1163 Yr 16, if Yr 0.008856, Xr
X
Yr
Y
Zr
Z
,
L* Xn Yn Zn
903.3Yr , if Yr 0.008856, όπου
a* 500( f ( Xr ) f (Yr )) 3
t, if t 0.008856
f (t )
b* 200( f (Yr ) f (Zr )) 7.787t 16 /116, if t 0.008856
34
36
4. Το Μοντέλο RGB
RGB κύβος:
Ο μοναδιαίος κύβος στο χώρο RGB
Τα χρώματα αντιστοιχούν σε διανύσματα που ξεκινούν από το κέντρο
(0,0,0), σημείο του μαύρου, και καταλήγουν εντός κύβου
Π.Χ. το λευκό είναι το (1,1,1) και το πράσινο το (0,1,0)
Η κατεύθυνση του διανύσματος είναι η χρωματικότητα
Το μήκος του διανύσματος ορίζει την ένταση
Η κύρια διαγώνιος αποτελείται από αποχρώσεις του γκρι (από μαύρο
στο άσπρο)
G Πράσινο
• (0, 1, 0) • Κίτρινο
(1, 1, 0)
Θαλασσί Ασπρο
(0, 1, 1)• •(1, 1, 1)
Μαύρο •Κόκκινο
R
(0, 0, 0) (1, 0, 0)
•Μπλε Μωβ•
B
(0, 0, 1) (1, 0, 1)
37
4. Το Μοντέλο RGB
RGB τρίγωνο: η τομή του RGB κύβου με το επίπεδο που
ορίζουν τα σημεία:
Κόκκινο (1,0,0)
Πράσινο (0,1,0)
Μπλε (0,0,1)
Όλα τα RGB χρώματα απεικονίζονται στο RGB τρίγωνο
Η μόνη πληροφορία που χάνεται
είναι η ένταση
38
Μοντέλο RGB
Η κύρια διαγώνιος κύβου RGB δίνει τις αποχρώσεις του γκρι.
Τομή κύβου RGB με επίπεδο που περνά από σημεία R(1,0,0), G(0,1,0) και
B(0,0,1) = χρωματικό τρίγωνο.
Επαρκής 2Δ περιγραφή χρωματικού χώρου επειδή τα χρώματα συνήθως
ορίζονται από “τύπο” χρώματος και όχι από τη φωτεινότητα τους.
g 1
G Αποχρώσεις
του γκρι
R
W r 1
B
b 1
4. Το Μοντέλο RGB
Με το RGB τρίγωνο, η έννοια της χρωματικότητας αναλύεται σε:
1. Απόχρωση:
Είναι το κυρίαρχο μήκος κύματος
Δίνει στο χρώμα την ταυτότητά του
Όλες οι αποχρώσεις βρίσκονται στην περίμετρο του RGB τριγώνου
2. Κορεσμό:
Είναι η ποσότητα του άσπρου σε ένα χρώμα
Είναι μέγιστος στο κέντρο του τριγώνου
Είναι ελάχιστος στην περίμετρο
Χρώματα με ίδια απόχρωση και διαφορετικό κορεσμό βρίσκονται
στο ευθύγραμμο τμήμα που συνδέει ένα σημείο της παραμέτρου με
το κέντρο του τριγώνου
Στον RGB κύβο, κορεσμός είναι η γωνία που σχηματίζει το
διάνυσμα του χρώματος με τη διαγώνιο του κύβου
40
4. Το Μοντέλο RGB
Αντιστοιχία μεταξύ ορατών χρωμάτων & μοντέλου RGB:
Αναλογίες κόκκινου, πράσινου και μπλε που απαιτούνται για την παραγωγή ορατών
χρωμάτων:
Το μοντέλο RGB:
Δεν παρέχει αντιλαμβανόμενη γραμμικότητα
Δεν παρέχει διαισθητική χρηστικότητα: δεν είναι εύκολο να βρεθεί κατάλληλος
συνδυασμός RGB για τυχαίο χρώμα
Είναι εξαρτημένο από συσκευή (Device- dependent)
41
4. Το Μοντέλο RGB
Το μοντέλο RGB είναι εξαρτημένο από συσκευή:
Η ίδια τριπλέτα (r,g,b) πιθανώς εμφανίζει διαφορετικά χρώματα σε
διαφορετικές οθόνες
Πρέπει να εξασφαλίζεται ότι τα χρώματα θα εμφανίζονται ίδια κατά
τη μεταφορά έγχρωμων εικόνων μεταξύ συσκευών
Μετατροπή RGB διαφορετικών συσκευών μέσω ενδιάμεσου
μοντέλου, ανεξάρτητου συσκευής
Συνήθως οι οθόνες παρέχουν πίνακα M για μετατροπή στο ΧΥΖ:
X r XR XG XB
Y M · g όπου M YR YG YB
Z b Z R ZG Z B
Δεδομένων πινάκων μετατροπής M1, M2, δύο οθονών, η μετατροπή
των RGB χρωμάτων μεταξύ τους γίνεται ως εξής:
r2 r1
g M 1 · M · g
2 2 1 1
b2 42
b1
4. Το Μοντέλο RGB
Διαφάνεια: Χρώμα Άλφα
Bits ανά εικονοστοιχείο (bpp)
Ο αριθμός των bits για την αποθήκευση του χρώματος ενός εικονοστοιχείου
Ορίζει -το μέγιστο αριθμό χρωμάτων που εμφανίζονται ταυτόχρονα στην εικόνα
- το μέγεθος της εικόνας
Συνήθως: 8 bits για κάθε κανάλι χρώματος 24 bpp
Οι λέξεις είναι 32 bits τα υπόλοιπα 8 bits αναπαριστούν τη διαφάνεια a
Χρώμα άλφα:
Είναι μια τετραπλέτα [r, g, b, a]T , a≠0
Ισοδυναμεί με [r/a, g/a, b/a]T
a παριστάνει την επιϕάνεια (ή όγκο) μέσα στην οποία υϕίσταται η χρωματική
ενέργεια
Χρώμα άλφα: [C, a]=[συνεισφορά-ενέργειας,συνεισφορά-επιφάνειας], C = r,g,b
Η παράσταση άλφα είναι παρόμοια με τις ομογενείς συντεταγμένες
στην προβολική γεωμετρία
43
4. Το Μοντέλο RGB
Διαφάνεια: Χρώμα Άλφα
Παράδειγμα:
Έστω διαφανές αντικείμενο A με χρώμα άλφα [CA,1]T βρίσκεται
μπροστά από διαφανές αντικείμενο B με χρώμα άλφα [CB,1]T
Το A είναι διαφανές άρα το χρώμα του συνεισφέρει μόνο aA
Πρέπει να μειώσουμε την επιφάνεια κάλυψης του A
Η συνεισφορά του είναι [aA CA, aA ]T σε όρους προβολής
Η συνεισφορά του πίσω αντικειμένου είναι aB της δικής του
διαφάνειας × το ποσοστό του χρώματος (1- aA ) που επιτρέπει το Α
να περάσει: [ B (1 A )CB , B (1 A )]T
Η συνολική συνεισφορά των 2 αντικειμένων (γνωστό ως τελεστής
over) είναι:
[ AC A B (1 A )CB , A B (1 A )]T
44
4. Το Μοντέλο RGB
Συμπιεσμένη μορφή RGB
Το μέγεθος μιας εικόνας μειώνεται, μειώνοντας το bpp
45
Μοντέλο RGB
Χρωματικό τρίγωνο: περιέχει 2 χαρακτηριστικά
χρωμάτων (εκτός από τη φωτεινότητα).
Απόχρωση (hue): βαρύνουσα συχνότητα.
Καθαρότητα (saturation): ποσοστό συμμετοχής
άσπρου χρώματος.
Μοντέλο ΧΥΖ
Όμως, ο συνδυασμός R, G, B δεν μπορεί να δώσει όλα τα χρώματα της φύσης.
Ορισμός κανονικών χρωμάτων Χ, Υ, Ζ που μπορούν να συνθέσουν
οποιοδήποτε εμφανές χρώμα.
Χ, Υ, Ζ είναι υπολογιστικά μεγέθη, δεν αντιστοιχούν σε εμφανή χρώματα.
Ενα διάνυσμα (Χ,Υ,Ζ) του XYZ -χώρου αντιστοιχεί στο σημείο (x,y,z) του
κανονικού χρωματικού τριγώνου: x X / X Y Z y Y / X Y Z z Z / X Y Z
(x,y) συντεταγμένες αρκούν αφού x + y + z=1.
49
5. Το Μοντέλο HSV (2)
Κορεσμός:
Μέγιστος στην επιφάνεια του κώνου (χωρίς τη βάση)
είναι τα αμιγή χρώματα με μέγιστη χρωματικότητα
Ο άξονας του κώνου έχει την ελάχιστη χρωματικότητα
(αποχρώσεις γκρί)
Τιμή έντασης:
Ελάχιστη τιμή (0): απουσία φωτός (μαύρο)
Μέγιστη τιμή: το χρώμα έχει τη μέγιστη τιμή έντασης
Απεικονίζεται πάνω στον άξονα του κώνου:
0 : η κορυφή του κώνου
Μέγιστη τιμή: το κέντρο της βάσης του κώνου
50
όπου c, m, y: οι χρωματικές συντεταγμένες του F
51
6. Το Μοντέλο CMY(K) (2)
Το μοντέλο CMY δεν παρέχει αντιλαμβανόμενη γραμμικότητα
ούτε διαισθητική χρηστικότητα (όπως και το RGB, συμπλήρωμα)
Μετατροπές μεταξύ CMY και RGB:
c 1 r r 1 c
m 1 g g 1 m
y 1 b b 1 y
Ο κύβος CMY:
Είναι ο μοναδιαίος κύβος στο χώρο CMY
Το άσπρο βρίσκεται στο (0, 0, 0)
Το μαύρο βρίσκεται στο (1, 1, 1)
Τα υπόλοιπα χρώματα βρίσκονται στις
συμπληρωματικές θέσεις από ότι στον
RGB κύβο
52
Μοντέλο CMY
Τα RGB και ΧΥΖ είναι προσθετικά μοντέλα.
Τα χρώματα συντίθενται με πρόσθεση ποσοστών των τριών βασικών.
•
Άσπρο Θαλασσί C
(0, 0, 0) (1, 0, 0)
•Κίτρινο •
Πράσινο
Y
Μετασχηματισμοί μεταξύ RGB και CMY. (0, 0, 1) (1, 0, 1)
c 1 r r 1 c
m 1 g g 1 m
y 1 b b 1 y
6. Το Μοντέλο CMY(K) (3)
Το μοντέλο CMYK :
Όμοιο με CMY μόνο που περιέχει και το μαύρο χρώμα
Το μαύρο χρησιμοποιείται για να επιτρέψει τη διαδικασία
σύνθεσης ενός χρώματος F με τα ελάχιστα συστατικά του
Χρήσιμο για εκτυπωτές
Αποφυγή σύνθεσης του μαύρου (για κείμενο, διαγράμματα)
Οικονομία στο μελάνι
Καλύτερη ποιότητα μαύρου
54
55
Μετασχηματισμός Χρωμάτων από Οθόνη
σε Οθόνη
Η ίδια τριάδα (r, g, b) μπορεί να δίνει λίγο διαφορετικό χρώμα σε διαφορετικές
οθόνες
Εξαρτάται από είδος φωσφόρου κλπ.
X r Xr Xg Xb
Y M g
M Yr Yg Yb
Z b Zr Zg Yb
Για μετάβαση από Οθόνη 1 σε Οθόνη 2:
r2 r1
g M 1 M g
2 2 1 1
b2 b1
57
Σύνοψη χρωματικών μοντέλων
58
Θέματα Διαδικτύου
Όταν δημιουργούμε εικόνες για το διαδίκτυο:
Θα τις δουν πολλοί, με διαφορετικές συσκευές απεικόνισης
Η ίδια ψηφιακή εικόνα θα εμφανιστεί διαφορετική σε διαφορετικές οθόνες
1. Διαφορές στη διόρθωση γάμμα:
Μια εικόνα αποθηκευμένη με διαφορετική διόρθωση γάμμα, από εκείνη της
οθόνης που εμφανίζεται, θα είναι πιο φωτεινή ή πιο σκούρα
Χρήση “μέσης” διόρθωσης γάμμα, π.χ. 2.2
2. Διαφορές στο χρωματικό μοντέλο:
Συχνά οι εικόνες αποθηκεύονται με το μοντέλο RGB (εξαρτώμενο συσκευής)
Διαφορές μεταξύ συσκευών παραγωγής και εμφάνισης
Μπορεί να χρησιμοποιηθεί ένα από τα ανεξάρτητα συσκευής CIE μοντέλα
Αλλά και αυτό έχει μειονεκτήματα:
i. Επιπλέον βήμα βαθμονόμησης (σημείο λευκού)
ii. Ακριβή μετατροπή αν χρησιμοποιείται ένα ημι-διαισθητικό μοντέλο (√)
iii. Μοντέλα RGB ευρέως αποδεκτά για οθόνες
59
Θέματα Διαδικτύου (2)
sRGB (standard RGB)
Εύκολο για κατασκευαστές λόγω ομοιότητας με RGB
60
61
Εικόνες υψηλού δυναμικού εύρους (HDR) (2)
HDR εικόνες παράγονται:
Με ειδικό φωτογραφικό εξοπλισμό
Με συνδυασμό πολλαπλών εικόνων μιας σκηνής τραβηγμένης με διαφορετικά
επίπεδα φωτεινότητας
Συνθετικά (τεχνικές ολικού φωτισμού)
Τονική Απεικόνιση: Συμπίεση εικόνων HDR στο δυναμικό εύρος
οθονών με δεδομένες προθέσεις διατήρησης χαρακτηριστικών
Απούσα είναι η ικανότητα να εμφανίζεται ένα ευρύ δυναμικό εύρος
ταυτόχρονα (πχ. οδήγηση τη νύχτα με προβολείς)
Πλεονεκτήματα για τη δημιουργία εικόνων HDR:
Εικόνες μπορούν να αποθηκεύονται στο δυναμικό εύρος που αντιλαμβάνεται ο
άνθρωπος, για μελλοντική χρήση
Δυνατότητα εφαρμογής διαφορετικών μέθοδοι τονικής απεικόνισης, για
διαφορετικές προθέσεις
62
63
Εικόνες υψηλού δυναμικού εύρους (HDR) (4)
Φωτογραφικό παράδειγμα HDR :
HDR εικόνα με τονική HDR εικόνα με τονική
απεικόνιση ιστογράμματος απεικόνιση Reinhard
64
65
Εικόνες υψηλού δυναμικού εύρους (HDR) (6)
Το 32-bit LogLuv έχει:
32 bpp
15 bits για την τιμή έντασης
1 bit για το πρόσημο της έντασης (επιτρέπεται αρνητική ένταση)
16 bits για τη χρωματικότητα
Le c1 (log 2 L c2 ) ,
L 2[ Le / c1 c2 ]
Το παραπάνω περιέχει ολόκληρο το εύρος της αντιληπτής έντασης
σε μικρά, μη αντιληπτά, βήματα
66
67
Ερωτήσεις
1. Αν σε μία ασπρόμαυρη οθόνη αφιερώσουμε d bits για την παράσταση της
φωτεινότητας του κάθε pixel, πόσες διαφορετικές φωτεινότητες μπορούμε
να πάρουμε; Να δικαιολογήσετε την απάντηση σας.
a. d2 b. 2d c. d d. 2
Σωστή απάντηση b.
Αν έχουμε αριθμούς που αποτελούνται από d bits και με το δεδομένο ότι κάθε bit
μπορεί να πάρει μόνο τιμές 0 και 1, μπορούμε να πάρουμε 2d διαφορετικούς
αριθμούς, όσοι και οι δυνατοί συνδυασμοί των d bits. Επομένως, μπορούμε να
πάρουμε 2d διαφορετικές φωτεινότητες.
Ερωτήσεις
2. Τα ζεύγη φωτεινοτήτων (0.1, 0.2) και (0.3, 0.6) έχουν την ίδια διαφορά;
Απάντηση
Από τη φυσιολογία είναι γνωστό ότι το μάτι αντιλαμβάνεται λόγους φωτεινότητας
παρά τιμές φωτεινότητας. Επομένως, τα δύο παραπάνω ζεύγη έχουν την ίδια
διαφορά καθώς οι λόγοι τους είναι ίσοι.
Ερωτήσεις
3. Εξηγείστε γιατί η παρακάτω επιλογή αναμμένων pixels για τιμή φωτεινότητας 2
είναι κακή;
Απάντηση
Κατά την επιλογή των αναμμένων pixels που αντιστοιχούν σε κάθε τιμή φωτεινότητας
απαιτείται ιδιαίτερη προσοχή. Αν επιλέξουμε τα pixels του σχήματος για την τιμή
φωτεινότητας 2, τότε το μάτι θα διακρίνει κάθετες γραμμές σε μια εικόνα που έχει σταθερή
τιμή φωτεινότητας ίση με 2.
Ερωτήσεις
4. Ποιο κριτήριο πρέπει να πληρείται για να έχουμε μια καλή επιλογή αναμμένων
pixels;
Απάντηση
Απάντηση
Με την τεχνική Halftoning πετυχαίνουμε την αύξηση των διαθέσιμων τιμών φωτεινότητας,
σε βάρος της ανάλυσης της οθόνης. Για παράδειγμα, αν χρησιμοποιούμε περιοχές 2x2
pixels, μπορούμε να πετύχουμε την αύξηση των τιμών φωτεινότητας από 2 σε 5 με
παράλληλη όμως μείωση της οριζόντιας και της κάθετης ανάλυσης κατά 1/2.
Ερωτήσεις
6. Ποιο είναι το κύριο χαρακτηριστικό του RGB χρωματικού μοντέλου;
Απάντηση
Γενικά ,ένα χρωματικό μοντέλο προσπαθεί να συνθέσει όσο το δυνατόν
περισσότερα χρώματα με συνδυασμό κάποιων βασικών χρωμάρων. Το RGB
χρωματικό μοντέλο χρησιμοποιεί τρία βασικά χρώματα, με την ιδιότητα ότι
κανένας συνδυασμός δύο εξ αυτών δε μπορεί να δώσει το τρίτο. Η μείξη των
τριών βασικών χρωμάτων με σκοπό τη σύνθεση ενός χρώματος F γίνεται
γραμμικά με τους συντελεστές r,g,b ως εξής:
F r R g G b B
Ερωτήσεις
7. Ποιος ο λόγος ορισμού των κανονικών χρωμάτων;
Απάντηση
Επειδή όλα τα χρώματα που συναντώνται στη φύση δεν είναι δυνατόν να
δημιουργηθούν με μείξη πεπερασμένου αριθμού βασικών χρωμάτων, πολύ δε
περισσότερο των τριών χρωμάτων R,G,B, είναι αναγκαίος ο ορισμός ενός ενιαίου
συστήματος χρωμάτων. Για το λόγο αυτό ορίστηκαν τα κανονικά χρώματα
(X,Y,Z) με τη βοήθεια των οποίων μπορούμε να ορίσουμε οποιοδήποτε εμφανές
χρώμα.