OpenGL. Μετασχηματισμοί. Μάθημα: Γραφικά Υπολογιστών και Εικονική Πραγματικότητα. Κατερίνα Παπαδοπούλου /

Σχετικά έγγραφα
Εισαγωγή στην OpenGL: μέρος 2ο

Περιεχόµενα ενότητας

Γραφικά Υπολογιστών: Αποκοπή στις 3D Διαστάσεις

OpenGL. Εισαγωγή στην OpenGL Βασικά Γεωμετρικά Σχήματα Παράλληλη (ορθογραφική) προβολή. Μάθημα: Γραφικά Υπολογιστών και Εικονική Πραγματικότητα

Συναφείς µετασχηµατισµοί:

Γραφικά Υπολογιστών: Προοπτικές Προβολές (Perspective Projections)

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΓΡΑΦΙΚΑ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκων: Ν. ΝΙΚΟΛΑΙΔΗΣ

Μετασχηµατισµοί συντεταγµένων

Κλασσική παρατήρηση & παρατήρηση με υπολογιστή

Γραφικά Υπολογιστών: Θέαση στις 3D

Κεφάλαιο 4 ο Προβολές

Συστήματα συντεταγμένων

Απαραίτητες αφού 3Δ αντικείμενα απεικονίζονται σε 2Δ συσκευές. Θέση παρατηρητή. 3Δ Μετασχ/σμός Παρατήρησης

Μαθηματικό υπόβαθρο. Κεφάλαιο 3. Μαθησιακοί στόχοι. 3.1 Εισαγωγή. 3.2 Σημεία και διανύσματα

Προγραμματισμός γραφικών

ΕΡΓΑΣΤΗΡΙΟ ΠΟΛΥΜΕΣΩΝ & ΓΡΑΦΙΚΩΝ. Τρισδιάστατοι γεωμετρικοί μετασχηματισμοί

Γραφιστική Πληροφορίας σε 3D

Γραφικά Υπολογιστών. Τμήμα Μηχανικών Πληροφορικής ΤΕΙ Ανατολικής Μακεδονίας και Θράκης. Γραφικά Υπολογιστών ΣΤ Εξάμηνο. Δρ Κωνσταντίνος Δεμερτζής

Τα ρομπότ στην βιομηχανία

Γραφικά Υπολογιστών: Μέθοδοι Ανίχνευσης Επιφανειών (Surface Detection Methods)

Εισαγωγή στη θεωρία μετασχηματισμών. Τα ρομπότ στην βιομηχανία

Θεωρία μετασχηματισμών

Οδηγίες σχεδίασης στο περιβάλλον Blender

Μετασχηματισμοί Μοντελοποίησης (modeling transformations)

Μετασχηματισμοί Παρατήρησης και Προβολές

Κεφάλαιο 3ο Μετασχηµατισµοί συντεταγµένων

2ο Μάθημα Μετασχηματισμοί 2Δ/3Δ και Συστήματα Συντεταγμένων

ισδιάστατοι μετασχηματισμοί ΚΕΦΑΛΑΙΟ 4: ισδιάστατοι γεωμετρικοί μετασχηματισμοί

Συστήματα συντεταγμένων

ΘΕΜΑΤΑ ΥΠΟΛΟΓΙΣΤΙΚΗΣ ΟΡΑΣΗΣ ΚΑΙ ΓΡΑΦΙΚΩΝ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΙ ΑΠΟΚΟΠΗ Ε. Θεοδωρίδης, Α. Τσακαλίδης

0 SOLID_LINE 1 DOTTED_LINE 2 CENTER_LINE 3 DASHED_LINE 4 USERBIT_LINE

Διαλέξεις #13-#14 Εισαγωγικά στοιχεία Προοπτική, Παράλληλη, Πλάγια Υπολογισμός Παράλληλης Προβολής Υπολογισμός Προοπτικής Προβολής Παραδείγματα

Κεφάλαιο 8. Οπτικοποίηση Απαλοιφή

ΕΡΓΑΣΤΗΡΙΟ ΠΟΛΥΜΕΣΩΝ ΚΑΙ ΓΡΑΦΙΚΩΝ

Γραφικά με υπολογιστές. Διδάσκων: Φοίβος Μυλωνάς. Διαλέξεις #11-#12

Θέση και Προσανατολισμός

Σχεδιασμός και Υλοποίηση εφαρμογής σε Android πλατφόρμα για την εκμάθηση της γλώσσας OpenGL

Γραφικά Υπολογιστών: Εμφάνιση σε 2D

Χωρικές Περιγραφές και Ομογενείς Μετασχηματισμοί

Μετασχηµατισµοί 2 &3

Φύλλο 2. Δράσεις με το λογισμικό Cabri-geometry 3D

1.4 ΣΥΝΤΕΤΑΓΜΕΝΕΣ ΣΤΟ ΕΠΙΠΕΔΟ

ΓΡΑΦΙΚΑ ΥΠΟΛΟΓΙΣΤΩΝ ΓΚΑΝΙΑΣ ΑΓΓΕΛΟΣ

Γραφικά Υπολογιστών: Βασικά Μαθηματικά

Διάλεξη #10. Διδάσκων: Φοίβος Μυλωνάς. Γραφικά με υπολογιστές. Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Χειμερινό εξάμηνο.

1. Ανοίξτε το 3D Studio MAX ή επιλέξτε File Reset. ηµιουργήστε µια σφαίρα µε κέντρο την αρχή των αξόνων και ακτίνα 20 µονάδων.

Γραφικά Ι. Ενότητα 4: Προβολές και Μετασχηματισμοί Παρατήρησης. Θεοχάρης Θεοχάρης Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής και Τηλεπικοινωνιών

Γραφικά Υπολογιστών: Ανίχνευση Ακτίνας (φωτός) (ray tracing)

7 ο Εργαστήριο Θόρυβος 2Δ, Μετακίνηση, Περιστροφή

Χωρικές σχέσεις και Γεωμετρικές Έννοιες στην Προσχολική Εκπαίδευση

Χωρικές Περιγραφές και Μετασχηµατισµοί

Μηχανολογικό Σχέδιο με τη Βοήθεια Υπολογιστή. Γεωμετρικός Πυρήνας Προβολικοί Μετασχηματισμοί

ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΞΟΧΙΚΗΣ ΚΑΤΟΙΚΙΑΣ ΜΕ ΧΡΗΣΗ OpenGL Περιστερίδου Καλλιόπη

4ο Μάθημα Προβολές και Μετασχηματισμοί Παρατήρησης

13 ΙΑΝΥΣΜΑΤΙΚΗ ΑΝΑΛΥΣΗ

Κεφάλαιο 3 - Γεωμετρικοί Μετασχηματισμοί και Προβολές

ΕΝΟΤΗΤΑ 2 η Μηχανολογικά Κατασκευαστικά Σχέδια

CTEC-153: ΥΠΟΛΟΓΙΣΤΙΚΑ ΦΥΛΛΑ

Εισαγωγή στο 3DS Max 2009

1. Ανοίξτε το 3D Studio MAX ή επιλέξτε File Reset. ηµιουργήστε µια σφαίρα µε κέντρο την αρχή των αξόνων και ακτίνα 20 µονάδων και χρώµα πράσινο.

ΜΑΘΗΜΑΤΙΚΑ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ. Ημερομηνία: Πέμπτη 12 Απριλίου 2018 Διάρκεια Εξέτασης: 3 ώρες ΕΚΦΩΝΗΣΕΙΣ

Πολλαπλασιασμός αριθμού με διάνυσμα

Κεφάλαιο 2: Διανυσματικός λογισμός συστήματα αναφοράς

Ιδιότητες αντικειμένων, συγγραφή κώδικα, συντακτικά λάθη

Κεφάλαιο 2. Διανύσματα και Συστήματα Συντεταγμένων

Κεφάλαιο 2. Διανύσματα και Συστήματα Συντεταγμένων

2.1 Εξίσωση ευθείας-συντελεστής διεύθυνσης

ΕΙΣΑΓΩΓΗ ΣΤΗ ΡΟΜΠΟΤΙΚΗ - ΣΥΝΟΨΗ

3. ΥΝΑΜΙΚΗ ΡΟΜΠΟΤΙΚΩΝ ΒΡΑΧΙΟΝΩΝ

Οµάδα Ασκήσεων #1-Λύσεις

B ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΜΑΘΗΜΑΤΙΚΑ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ. Ημερομηνία: Τετάρτη 12 Απριλίου 2017 Διάρκεια Εξέτασης: 3 ώρες ΕΚΦΩΝΗΣΕΙΣ

CTEC-153: ΦΥΛΛΑ ΕΡΓΑΣΙΑΣ

Επαναληπτικό Διαγώνισμα Μαθηματικών Θετικής-Τεχνολογικής Κατεύθυνσης Β Λυκείου

Αντικείμενα και γεωμετρικοί μετασχηματισμοί

Συμπλήρωσε στον πίνακα τα τετράγωνα και τους κύβους των αριθμών. α

ΦΥΣΙΚΗ ΓΕΝΙΚΗΣ ΠΑΙΔΕΙΑΣ Α ΛΥΚΕΙΟΥ

Μετασχηματισμός Παρατήρησης

ΚΑΡΤΕΣΙΑΝΟ ΣΥΣΤΗΜΑ ΣΕ ΔΥΟ ΔΙΑΣΤΑΣΕΙΣ

Ασκήσεις Ρομποτικής με την χρήση του MATLAB

ΦΥΕ 14 Διανύσματα. 1 Περιγραφή διανυσμάτων στο χώρο Γεωμετρική περιγραφή: Τα διανύσματα περιγράφονται σαν προσανατολισμένα ευθύγραμμα

ΘΕΜΑ : ΠΡΟΟΠΤΙΚΟ ΣΧΕΔΙΟ ΜΕ 2 Σ.Φ ΙΣΟΜΕΤΡΙΚΗ ΠΡΟΒΟΛΗ. ΔΙΑΡΚΕΙΑ: 1 περιόδους. 28/9/ :48 Όνομα: Λεκάκης Κωνσταντίνος καθ.

ΘΕΜΑ Α. Α1. δ Α2. γ Α3. β Α4. γ Α5. α. Λ, β. Λ, γ. Σ, δ. Λ, ε. Σ ΘΕΜΑ Β. B1. Σωστή απάντηση η ( β) Η επιτάχυνση του κάθε ηλεκτρικού φορτίου είναι:

Σφαίρα σε ράγες: Η συνάρτηση Lagrange. Ν. Παναγιωτίδης

Β ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΜΑΘΗΜΑΤΙΚΑ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ. Ημερομηνία: Τρίτη 27 Δεκεμβρίου 2016 Διάρκεια Εξέτασης: 3 ώρες ΕΚΦΩΝΗΣΕΙΣ

ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2016 Α ΦΑΣΗ. Ηµεροµηνία: Πέµπτη 7 Ιανουαρίου 2016 ιάρκεια Εξέτασης: 2 ώρες ΕΚΦΩΝΗΣΕΙΣ

Stroke.

ΑΤΕΙ ΠΕΙΡΑΙΑ/ ΣΤΕΦ 15/10/2012 ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΑΠΑΝΤΗΣΕΙΣ ΓΡΑΠΤΗΣ ΕΞΕΤΑΣΗΣ ΣΤΗ ΦΥΣΙΚΗ

Μετασχηµατισµοί 2 & 3

ΦΥΣΙΚΗ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ

«Αρχές Βιοκινητικής» «Γωνιακά Κινηματικά μεγέθη»

Ενότητα 1: Απλές εντολές γραφικών

Εξισώσεις παρατηρήσεων στα τοπογραφικά δίκτυα

Μοντελοποίηση δικτύου μέσω εξισώσεων παρατήρησης

ΕΡΩΤΗΣΕΙΣ στην επεξεργασία κειμένου (Word)

Εισαγωγή Αποκοπή ευθείας σε 2Δ Αποκοπή πολυγώνου σε 2Δ Αποκοπή σε 3Δ. 3ο Μάθημα Αποκοπή. Γραφικα. Ευάγγελος Σπύρου

Ειδικά Θέµατα Υπολογιστικής Όρασης & Γραφικής. Εµµανουήλ Ζ. Ψαράκης & Αθανάσιος Τσακαλίδης Πολυτεχνική Σχολή Τµήµα Μηχανικών Η/Υ & Πληροφορικής

( ) Κλίση και επιφάνειες στάθµης µιας συνάρτησης. x + y + z = κ ορίζει την επιφάνεια µιας σφαίρας κέντρου ( ) κ > τότε η

Εισαγωγή στο περιβάλλον Blender

ΤΡΑΠΕΖΑ ΘΕΜΑΤΩΝ ΤΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΘΕΤΙΚΟΥ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ ΤΗΣ Β ΛΥΚΕΙΟΥ

8 ο Μάθημα Περιστροφική κίνηση

Transcript:

OpenGL Μετασχηματισμοί Κατερίνα Παπαδοπούλου / pakate@unipi.gr Μάθημα: Γραφικά Υπολογιστών και Εικονική Πραγματικότητα

Τύποι μετασχηματισμών Μετασχηματισμοί μοντέλου (modeling transformations) με glmatrixmode (GL_MODELVIEW); Μετασχηματισμοί θέασης (viewing transformations) με glmatrixmode (GL_MODELVIEW); Μετασχηματισμοί προβολής (projection transformations) με glmatrixmode (GL_PROJECTION);

Αναλογία με κάμερα (opengl Programming Guide, σελ.127)

Σειρά εκτέλεσης μετασχηματισμών Στάδια μετασχηματισμών vertex (opengl Programming Guide, σελ.128)

Σύστημα συντεταγμένων Το σύστημα συντεταγμένων στην OpenGL είναι δεξιόστροφο positive x rotation positive y rotation positive z rotation

Βασικοί Γεωμετρικοί Μετασχηματισμοί της OpenGL gltranslate*(tx,ty,tz); - μετασχηματισμός μετατόπισης όπου * : f ή d μπορεί να πάρει οποιεσδήποτε πραγματικές τιμές

Βασικοί Γεωμετρικοί Μετασχηματισμοί της OpenGL glrotate* (angle, vx,vy,vz); - μετασχηματισμός περιστροφής γύρω από άξονα v={vx,vy,vz} μοναδιαίο διάνυσμα που ορίζει τον προσανατολισμό του άξονα περιστροφής Αν δεν είναι μοναδιαίο κανονικοποιείται Αν θέλουμε περιστροφή 45 γύρω από τον άξονα x: glrotatef (45.0, 1.0,0.0,0.0);

Βασικοί Γεωμετρικοί Μετασχηματισμοί της OpenGL glscale* (sx,sy,sz); - μετασχηματισμός κλιμάκωσης - μπορεί να πάρει οποιεσδήποτε πραγματικές τιμές - αν δοθούν αρνητικές τιμές παράγει αντανακλάσεις

Σειρά εκτέλεσης μετασχηματισμών Διαδοχικοί μετασχηματισμοί-> πολλαπλασιασμός πινάκων μετασχηματισμού Στον πολλαπλασιασμό πινάκων δεν ισχύει η αντιμεταθετική ιδιότητα -> Η σειρά με την οποία εκτελούνται οι μετασχηματισμοί έχει σημασία. Οι ίδιοι μετασχηματισμοί αν εφαρμοστούν με διαφορετική σειρά θα παράγουν διαφορετικό αποτέλεσμα!!! 1. Πρώτα περιστροφή μετά μετατόπιση 2. Πρώτα μετατόπιση μετά περιστροφή

Αποτέλεσμα μετασχηματισμών Για να υπολογίσουμε τι μετασχηματισμούς πρέπει να κάνουμε ανάλογα με το αποτέλεσμα που θέλουμε, μπορούμε να σκεφτούμε με 2 τρόπους: Αν θεωρήσουμε ότι οι μετασχηματισμοί του αντικειμένου γίνονται με σημείο αναφοράς το παγκόσμιο σύστημα συντεταγμένων: Σκεφτόμαστε τους μετασχηματισμούς με σειρά αντίθετη από αυτήν που γράφονται στον κώδικα Αν θεωρήσουμε ότι οι μετασχηματισμοί του αντικειμένου γίνονται με σημείο αναφοράς το τοπικό σύστημα συντεταγμένων του αντικειμένου: Σκεφτόμαστε τους μετασχηματισμούς με σειρά ίδια με αυτήν που γράφονται στον κώδικα

Αποτέλεσμα μετασχηματισμών Οι μετασχηματισμοί γίνονται λαμβάνοντας υπόψη το τοπικό σύστημα συντεταγμένων 3. Μετακίνηση ως προς άξονα x κατά 100.0 μονάδες 1. Αρχική θέση (0,0,0) Κώδικας: glrotate*(); gltranslate*(); 2. Περιστροφή ως προς άξονα z κατά 30 Ο

Αποτέλεσμα μετασχηματισμών Οι μετασχηματισμοί γίνονται λαμβάνοντας υπόψη το παγκόσμιο σύστημα συντεταγμένων 3. Περιστροφή ως προς άξονα z κατά 30 Ο 1. Αρχική θέση (0,0,0) Κώδικας: glrotate*(); gltranslate*(); 2. Μετακίνηση ως προς άξονα x κατά 100.0 μονάδες

Κατάσταση MODELVIEW Για να εφαρμόσουμε μετασχηματισμούς μοντέλου και θέασης, πρέπει να ορίσουμε ως τρέχουσα κατάσταση την GL_MODELVIEW glmatrixmode(gl_modelview); Οι υπόλοιπες πιθανές καταστάσεις είναι GL_PROJECTION,GL_TEXTURE

Μοναδιαίος Πίνακας (identity matrix) void glloadidentity(void); Θέτει ως τρέχοντα πίνακα τον 4 4 μοναδιαίο πίνακα (identity matrix) Είναι σύνηθες να καλείται πριν από τους μετασχηματισμούς προβολής και θέασης. Φυσικά μπορεί να κληθεί και πριν από μετασχηματισμούς μοντέλου

Στοίβες πινάκων Κάθε κατάσταση διατηρεί μια στοίβα πινάκων glpushmatrix(); Αντιγράφει τον τρέχοντα πίνακα στην κορυφή της ενεργής στοίβας και αποθηκεύει το αντίγραφο στη 2 η θέση της στοίβας. Άρα έχουμε 2 ίδιους πίνακες στις 2 πρώτες θέσεις της στοίβας glpopmatrix(); Διαγράφει τον πίνακα της κορυφής της στοίβας και ο προηγουμένως 2 ος πίνακας γίνεται ο τρέχον πίνακας, όντας πια στην κορυφή της στοίβας

Viewing Transformation - glulookat void glulookat (GLdouble eyex, GLdouble eyey, GLdouble eyez, GLdouble centerx, GLdouble centery, GLdouble centerz, GLdouble upx, GLdouble upy, GLdouble upz); Δημιουργεί έναν πίνακα θέασης για την προοπτική προβολή και τον πολλαπλασιάζει με τον τρέχοντα (συνήθως τον identity matrix) eyex, eyey, eyez: συντεταγμένες σημείου θέασης (ματιού) centerx, centery, centerz: οποιοδήποτε σημείο πάνω στη γραμμή θέασης upx, upy, upz: μοναδιαίο διάνυσμα που δείχνει την κατεύθυνση προς τα πάνω του άξονα y http://andrewharvey4.wordpress.com/2009/12/02/computer-graphics-notes/

Projection Transformation - glortho Καθορίζει τον μετασχηματισμό προβολής που θα χρησιμοποιηθεί - πολλαπλασιασμός του τρέχοντος πίνακα με τον ορθογραφικό πίνακα Η θέση και ο προσανατολισμός του σημείου θέασης (view point) ορίζονται είτε με την glulookat( ) είτε με άλλους μετασχηματισμούς μοντέλου-θέασης (modelview transfomations) void glortho (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble nearval, GLdouble farval); left, right: Συντεταγμένες για το δεξί και το αριστερό κάθετο clipping plane bottom, top: Συντεταγμένες για το κάτω και το άνω οριζόντιο clipping plane nearval, farval: η απόσταση του κοντινού και μακρινού επιπέδου αποκοπής από το σημείο θέασης. Αν το επίπεδο είναι πίσω από τον θεατή, οι τιμές είναι αρνητικές http://andrewharvey4.wordpress.com/2009/12/02/computer-graphics-notes/

Projection Transformation - gluperspective Δημιουργεί έναν συμμετρικό όγκο θέασης(κόλουρος κώνος) με σημείο αναφοράς προβολής την αρχή των συντεταγμένων θέασης. Δημιουργεί έναν πίνακα για την προοπτική προβολή και τον πολλαπλασιάζει με τον τρέχοντα (συνήθως Identity matrix) void gluperspective (GLdouble fovy, GLdouble aspect, GLdouble near, GLdouble far); fovy: field of view- γωνία οπτικού επιπέδου (0 ο -180 ο μοίρες) aspect: λόγος πλάτος/ύψος παρ. αποκοπής near: απόσταση του κοντινού επιπέδου αποκοπής από το σημείο θέασης (πάντα >0.0) far: απόσταση του μακρινού επιπέδου αποκοπής από το σημείο θέασης (πάντα >0.0) http://andrewharvey4.wordpress.com/2009/12/02/computer-graphics-notes/

Projection Transformation - glfrustum Δημιουργεί έναν πίνακα για την προοπτική προβολή (είτε συμμετρική είτε πλάγια) σημείο αναφοράς προβολής την αρχή των συντεταγμένων θέασης και τον πολλαπλασιάζει με τον τρέχοντα (συνήθως Identity matrix) void glfrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, Gldouble near, GLdouble far); left, bottom: Κάτω αριστερή γωνία κοντινού clipping plane right, top: άνω δεξιά γωνία κοντινού clipping plane near: απόσταση του κοντινού clipping plane από το σημείο θέασης (πάντα >0.0) far: απόσταση του μακρινού clipping plane από το σημείο θέασης (πάντα >0.0) http://andrewharvey4.wordpress.com/2009/12/02/computer-graphics-notes/

Βιβλιογραφία Γραφικά Υπολογιστών με OpenGL, Hearn Baker, Εκδόσεις Τζιόλα, 3 η έκδοση, Αθήνα, 2004 OpenGL RedBook OpenGL SuperBible