1 ΤΕΙ Θεσσαλονίκης Τμήμα Πληροφορικής Γραφικά Υπολογιστών: Θέαση στις 3D Πασχάλης Ράπτης http://aetos.it.teithe.gr/~praptis praptis@it.teithe.gr
2 Περιεχόμενα Σήμερα θα δούμε τα παρακάτω θέματα: Μετασχηματισμοί στις 3-D Πως πραγματοποιούνται οι μετασχηματισμοί 3-D ομογενείς συντεταγμένες και μετασχηματισμοί με (based) πίνακες Προβολές Ιστορία Γεωμετρικές κατασκευές Τύποι προβολών Προβολές στα γραφικά υπολογιστών
3 Καρτεσιανές Συντεταγμένες 3D Σημείο στις τρεις διαστάσεις (3D). Ορίζεται από τις συντεταγμένες x, y, z
4 Καρτεσιανές Συντεταγμένες 3D Γραμμή στις τρεις διαστάσεις (3D). Ορίζεται από δύο σημεία με συντεταγμένες (x1,y1,z1) και (x2,y2,z2). Η απόσταση l των δυο σημείων (μήκος γραμμής) δίδεται από l = ( x1 x 2) 2 + ( y1 y 2) 2 + ( z1 z 2) 2
5 Πολικές Συντεταγμένες 3D Πολικές συντεταγμένες στις τρεις διαστάσεις (3D). Ένα σημείο ορίζεται από την ακτίνα (radius), και τις γωνίες θ και φ. Μετατροπη από πολικές συντεταγμένες σε Καρτεσιανές (x, y, z) x=r cos(φ) cos(θ) y=r cos(φ) sin(θ) z=r sin(φ)
Images taken from Hearn & Baker, Computer Graphics with OpenGL (2004) 6 Σύστημα Συντεταγμένων 3D Τι εννοούμε με το σύστημα συντεταγμένων 3D; y axis y P z x z axis x axis Σύστημα αναφοράς δεξιού χεριού Right-Hand
Images taken from Hearn & Baker, Computer Graphics with OpenGL (2004) 7 Μετατόπιση στις 3D διαστάσεις Μετατοπίζουμε ένα σημείο στις τρεις διαστάσεις κατά dx, dy και dz υπολογίζοντας το νέο σημείο ως εξής: x = x + dx y = y + dy z = z + dz (x, y, z) (x, y, z ) Αρχική θέση Translated Position Θέση μετατόπισης
Images taken from Hearn & Baker, Computer Graphics with OpenGL (2004) 8 Μεγέθυνση στις 3D διαστάσεις Για να μεγεθύνουμε ένα σημείο στις τρεις διαστάσεις κατά sx, sy and sz απλά υπολογίζουμε τις νέες συντεταγμένες του σημείου ως εξής: x = sx*x y = sy*y z = sz*z (x, y, z ) (x, y, z) Αρχική θέση Scaled Position Θέση μεγέθυνσης
9 Περιστροφή στις 3D διαστάσεις Η περιστροφή στις δυο διαστάσεις περιλαμβάνει μόνο μια επιλογή, την περιστροφή περί του άξονα z Στις τρεις διαστάσεις έχουμε περισσότερες επιλογές Περιστροφή ως προς τον άξονα του x pitch Ως προς τον άξονα y yaw Ως προς τον άξονα z - roll
Images taken from Hearn & Baker, Computer Graphics with OpenGL (2004) 10 Περιστροφή στις 3D διαστάσεις (2) Οι εξισώσεις για τα τρία είδη περιστροφής στις 3D είναι: x = x cosθ - y sinθ y = x sinθ + y cosθ z = z x = x y = y cosθ - z sinθ z = y sinθ + z cosθ x = z sinθ + x cosθ y = y z = z cosθ - x sinθ
11 Ομογενείς Συντεταγμένες στις 3D διαστάσεις Όπως και στις 2D μπορούμε να χρησιμοποιήσουμε ομογενείς συντεταγμένες στους 3D μετασχηματισμούς σημείο και διάνυσμα y axis με 4 συντεταγμένες. Όλοι οι μετασχηματισμοί y μπορούν να παρουσιαστούν ως πίνακες P P(x, y, z) = x y z 1 z x z axis x axis
Πίνακες μετασχηματισμών 3D (Transformation Matrices) 12 1 0 Μετατοπιση dx, dy, dz 0 0 0 0 dx 1 0 dy 0 1 dz 0 0 1 sx 0 0 0 0 0 0 sy 0 0 Μεγεθυνση 0 sz 0 σμικρυση sx, sy, sz 0 0 1 Περιστροφή ως προς τον αξωνα 0 1 0 cos θ 0 sin θ 0 0 0 sin θ cos θ 0 του X-Axis 0 0 0 1 cos θ 0 sin θ 0 0 sin θ 0 1 0 0 0 cos θ 0 0 0 1 του Y-Axis cos θ sin θ 0 0 sin θ cos θ 0 0 του Z-Axis 0 0 0 0 1 0 0 1
Images taken from Hearn & Baker, Computer Graphics with OpenGL (2004) 13 Βασική Ιδέα
14 Προβολές (projections) Οι 3D σκηνές (εικόνες) ορίζονται όλες στο παγκόσμιο σύστημα συντεταγμένων Για να τις εμφανίσουμε χρειάζεται να δημιουργήσουμε μια 2D εικόνα Προβολή αντικειμένων μέσα στο επίπεδο εικόνας (picture plane) Picture Plane Αντικειμενα στον Παγκοσμιο χώρο (world space)
15 Μετατροπή από 3D σε 2D Προβολή (projection) είναι μια από τις διαδικασίες της μετατροπής από τις 3D παγκόσμιες συντεταγμένες σε μια 2D εικόνα 3D παγκόσμιες συντεταγμένες Αποκοπή (Clip against view volume) Προβολή στο επίπεδο προβολής Transform to 2-D device coordinates 2-D device coordinates
16 Τύποι προβολών (projections) Υπάρχουν δύο μεγάλες κατηγορίες προβολών: Παράλληλη (parallel): Χρησιμοποιείται στην αρχιτεκτονική και μηχανολογική σχεδίαση Προοπτική (perspective): Ρεαλιστική εμφάνιση χρησιμοποιείται στα γραφικά υπολογιστών Προβολείς Προβολείς CoP Κέντρο Προβολής στο άπειρο Επίπεδο προβολής Parallel Projection (CoP στο άπειρο) CoP Κέντρο προβολής Επίπεδο προβολής Perspective Projection
17 Τύποι προβολών (2) Που χρησιμοποιούνται στη μηχανική (engineering) και την τεχνική σχεδίαση Επίπεδες γεωμετρικές προβολές Παράλληλη (Προοπτική)
18 Παράλληλη Προβολή Projections Παραδείγματα παράλληλων προβολών Ορθογραφική (Orthographic) προβολή Ισομετρική (Isometric) προβολή
19 Παράλληλη Προβολή: Orthographic (Orthogonal) Ορθογραφική (ορθογωνική) προβολή είναι ένας τρόπος να παρουσιασθούν 3D αντικείμενα στις δύο διαστάσεις. Όλες οι γραμμές προβολής είναι κάθετες στο επίπεδο προβολής
20 Παράλληλη Προβολή::Orthographic:: Axonometric::Isometric Αξονομετρική προβολή χρησιμοποιείται για την δημιουργία «φωτογραφικής» σχεδίασης ενός αντικειμένου. Στην ισομετρική προβολή οι τρείς άξονες συντεταγμένων είναι ισόμορφα ελαττωμένοι και οι γωνίες μεταξύ των είναι 120ο. 1 Αξονομετρική ισομετρική σφάλμα 2
21 Ισομετρικές Προβολές Ισομετρικές προβολές χρησιμοποιούνται στα παιγνίδια υπολογιστών από την εμφάνισή τους μέχρι και σήμερα. Q*Bert Sim City 1980s 1990 Arcade video game City-building simulation game (nintedo) Virtual Magic Kingdom 2000 Multiplayer online game
22 Προοπτική (perspective) Προβολή Οι προοπτικές προβολές είναι πολύ πιο ρεαλιστικές από τις παράλληλες προβολές
Προοπτική Προβολή Η προοπτική προβολή είναι μια προσεγγιστική παρουσίαση μιας εικόνας όπως τη βλέπει το μάτι. Χαρακτηριστικά - Ευθείες γραμμές μένουν ως έχουν Ακμές: Ίδιο μήκος - Κοντινά αντικείμενα Μακρινές φαίνονται μεγαλύτερα μικρότερες - Παράλληλες γραμμές ο Μένουν Παράλληλες συγκλίνουν ο Συγκλίνουν σε σημείο εξαφάνισης
24 Προοπτικές Προβολές Υπάρχει ένα πλήθος από διαφορετικά είδη προοπτικών παρατηρήσεων (views) Οι πιο διαδεδομένοι είναι οι προοπτικές προβολές ενός σημείου και προοπτικές προβολές δυο-σημείων Μακρινό σημείο Προοπτική προβολή ενός σημείου Μακρινό Μακρινό σημείο σημείο Προοπτική προβολή δύο σημείων
25 Προοπτική προβολή ενός σημείου - Ένας κύριος άξονας τέμνεται από το επίπεδο προβολής. - Ένας άξονας σύγκλισης (vanishing)
26 Παραδείγματα Προοπτικής Προβολής ενός σημείου Μακρινό σημείο Προοπτική προβολή ενός σημείου
27 Προοπτική Προβολή δύο σημείων -- Μόνο ένα κέντρο προβολής (CoP) αλλά δύο σημεία σύγκλισης -- Δύο κύριοι άξονας τέμνονται από το επίπεδο προβολής.
28 Παραδείγματα Προοπτικής Προβολής δύο σημείων Οι προοπτικές προβολές δύο σημείων έχουν δύο σημεία σύγκλισης Μακρινό σημείο
29 Στοιχεία μια Προοπτικής Προβολής Εικονική κάμερα (Virtual Camera)
30 Τα Up και Look Vectors Το look vector δείχνει την Look vector κατεύθυνση στην οποία ο φακός της κάμερας είναι στραμμένος (camera Position points) Το up vector ορίζει το πώς η κάμερα περιστρέφεται, για παράδειγμα, η κάμερα κρατείται οριζόντια ή κάθετα. Projection up vector Up vector
31 Σύνοψη Σήμερα εξετάσαμε: Μετασχηματισμούς στις 3-D Αρκετά όμοιοι με τους μετασχηματισμούς στις 2-D Προβολές (Projections) 3-D σκηνές προβάλλονται σε 2-D επίπεδο εικόνας Με πολλούς τρόπους Παράλληλες προβολές Προοπτικές προβολές Η εικονική κάμερα