Απόδοση 3D σκηνών - Κινούµενα γραφικά



Σχετικά έγγραφα
Κεφάλαιο 5 Απόδοση τρισδιάστατων σκηνών Κινούµενα γραφικά

Εισαγωγή στην OpenGL

Blending. Have a look:

Εισαγωγή στην OpenGL

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

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

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

Εικόνες και γραφικά. Τεχνολογία Πολυµέσων 05-1

1 ο Εργαστήριο Συντεταγμένες, Χρώματα, Σχήματα

Απεικόνιση δεδομένων (data visualization)

Η διαδικασία Παραγωγής Συνθετικής Εικόνας (Rendering)

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

OpenGL. Εισαγωγή. Εξάμηνο: 2014Β. Διδάσκουσα: Κανελλοπούλου Χριστίνα_ΠΕ19 Πληροφορικής Ηλεκτρονική Τάξη:

Απεικόνιση Υφής. Μέρος Α Υφή σε Πολύγωνα

Εισαγωγή στην OpenGL: μέρος 1ο

Εικόνα. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 05-1

Γραφικά με Η/Υ / Εισαγωγή

0 SOLID_LINE 1 DOTTED_LINE 2 CENTER_LINE 3 DASHED_LINE 4 USERBIT_LINE

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

Ψηφιακή Επεξεργασία Εικόνας Γεωμετρικές Διορθώσεις

Απεικόνιση Υφής. Μέρος B Δημιουργία Συντεταγμένων Υφής

Απεικόνιση καμπυλών και επιφανειών


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

ΛΥΣΕΙΣ 6. a2 x 2 y 2. = y

Επεξεργασία Χαρτογραφικής Εικόνας

Τηλεπισκόπηση - Φωτοερμηνεία

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

α) Κύκλος από δύο δοσµένα σηµεία Α, Β. Το ένα από τα δύο σηµεία ορίζεται ως κέντρο αν το επιλέξουµε πρώτο. β) Κύκλος από δοσµένο σηµείο και δοσµένο ευ

ΦΩΤΟΡΕΑΛΙΣΜΟΣ & ΚΙΝΗΣΗ (ΘΕΩΡΙΑ)

Πανεπιστήμιο Θεσσαλίας. Πολυτεχνική Σχολή ΘΕΜΑΤΙΚΗ : ΨΗΦΙΑΚΗ ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ

Αρχιτεκτονική σχεδίαση με ηλεκτρονικό υπολογιστή

1.2 Στοιχεία Μηχανολογικού Σχεδίου

Στροφορµή. υο παρατηρήσεις: 1) Η στροφορµή ενός υλικού σηµείου, που υπολογίζουµε µε βάση τα προηγούµενα, αναφέρεται. σε µια ορισµένη χρονική στιγµή.

Ο χώρος. 1.Μονοδιάστατη κίνηση

Έστω οι παρακάτω περιπτώσεις τοµής ενός κώνου µε ένα επίπεδο:

Τμήμα Μηχανικών Σχεδίασης Προϊόντων & Συστημάτων ΓΡΑΦΙΚΑ (6151) ΕΝΔΕΙΚΤΙΚΕΣ ΠΡΟΑΙΡΕΤΙΚΕΣ ΑΣΚΗΣΕΙΣ

Τεχνολογία Ψυχαγωγικού Λογισμικού και Εικονικοί Κόσμοι Ενότητα 4η - 3Δ γραφικά

Γραφικά με Η/Υ Αλγόριθμοι σχεδίασης βασικών 22D D σχημάτων (ευθεία

ΧΑΡΤΟΓΡΑΦΙΑ. Στοιχεία χαρτογραφίας Σύστηµα γεωγραφικών συντεταγµένων

Βασικές αρχές σχεδίασης (Α)

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

x y z η οποία ορίζεται στο χωρίο V

14 Εφαρµογές των ολοκληρωµάτων

ΕΞΕΤΑΣΕΙΣ ΣΤΟ ΜΑΘΗΜΑ ΜΗΧΑΝΙΚΗ ΙΙ Σεπτέµβριος 2001 ΘΕΜΑ 1 Ένα φυσικό σύστηµα, ενός βαθµού ελευθερίας, περιγράφεται από την ακόλουθη συνάρτηση

4 η Εργασία F o 60 o F 1. 2) ύο δυνάµεις F1

Κεφάλαιο 3 Βασική Σχεδίαση και Επεξεργασία

{ } S= M(x, y,z) : x= f (u,v), y= f (u,v), z= f (u,v), για u,v (1.1)

Κεφάλαιο M4. Κίνηση σε δύο διαστάσεις

Κεφάλαιο Η2. Ο νόµος του Gauss

Κεφάλαιο M3. Διανύσµατα

5ο Μάθημα Αλγόριθμοι Σχεδίασης Βασικών Σχημάτων

Εισαγωγή. Γιατί γραφικά υπολογιστών; Προσέγγιση «από πάνω προς τα κάτω» (top-down). Βαθµίδα διασύνδεσης προγραµµατιστή εφαρµογών (API)

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι

Συσκευές εισόδου. Φυσικές συσκευές εισόδου Λογικές συσκευές εισόδου

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

Βασικές αρχές σχεδίασης (β)

Ο ΗΓΙΕΣ DOCUMENT DESIGNER

2.1 Τρέχοντα Κύµατα. Οµάδα.

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

Ερωτήσεις που δόθηκαν στις εξετάσεις των Πανελληνίων ως

ΤΕΧΝΙΚΗ ΓΕΩΛΟΓΙΑ ΕΡΓΑΣΤΗΡΙΟ 1 Ο ΤΟΠΟΓΡΑΦΙΚΟΙ ΧΑΡΤΕΣ Δρ. ΜΑΡΙΑ ΦΕΡΕΝΤΙΝΟΥ

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

Εργασία 4, ΦΥΕ 24, N. Κυλάφης

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

Β. Συµπληρώστε τα κενά των παρακάτω προτάσεων

ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΙ ΚΑΤΟΠΤΡΙΚΗΣ ΣΥΜΜΕΤΡΙΑΣ

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

5 ΑΝΑΛΥΤΙΚΗ ΓΕΩΜΕΤΡΙΑ

Κεφάλαιο 1: Κίνηση και γεωμετρικά σχήματα

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

Σ ΣΤ Σ Η Τ Μ Η ΑΤ Α Α Τ ΠΑΡΑ Ρ ΓΩΓ Ω ΗΣ Η Σ ΜΕ Η/Υ (CAD-CAM-CAE) Ι

ΦΡΟΝΤΙΣΤΗΡΙΟ ΜΕΤΑΙΧΜΙΟ Επαναληπτικό στη Φυσική 1. Θέµα 1 ο

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

Αλλαγή µεταβλητής στο τριπλό ολοκλήρωµα ( ) Β R Jordan µετρήσιµα υποσύνολα του U. R, ανοικτό µε. y y y συµβολίζει την ορίζουσα του πίνακα Jacobi

Εισαγωγή. Γραφικά. Μοντέλο (Πληροφορίες για Περιεχόµενο εικόνας. Επεξεργασία Εικόνων. Εικόνα. Τεχνητή Όραση 1.1. Εργα: : & ΣΚΕΠΣΙΣ (ΕΠΕΑΚ

Κεφάλαιο 10 Περιστροφική Κίνηση. Copyright 2009 Pearson Education, Inc.

Οδηγίες για το Geogebra Μωυσιάδης Πολυχρόνης Δόρτσιος Κώστας

Νικόλαος Μανωλόπουλος : ΠΑΡΑΜΕΤΡΙΚΕΣ

Κεφάλαιο Αρχές των απεικονίσεων - προβολών Αναπτυκτές επιφάνειες και ο προσανατολισμός τους

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

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΦΥΣΙΚΗ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : NOEMΒΡΙΟΣ 2016

ΕΙ ΙΚΑ ΚΕΦΑΛΑΙΑ ΑΠΟ ΤΗ ΘΕΩΡΙΑ ΑΝΑΛΥΣΗΣ ΕΙΚΟΝΑΣ (ΓΙΑ ΤΗΝ ΑΝΑ ΕΙΞΗ ΟΥΣΙΩ ΩΝ ΧΑΡΑΚΤΗΡΙΣΤΙΚΩΝ ΕΙΚΟΝΑΣ) ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ

P G = 1 2 (x x 3 2 ) 2 [(y 1 + y y n ) 6 + (y y y 2 n ) 3 ] 2 (n6 + n 3 ) = n3 (n 3 + 1)

Εφαρμοσμένα Μαθηματικά

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

Περιεχόμενα. Τοπογραφικό... 9 Σκάλα Φωτορεαλισμός Αντικείμενα Ανοίγματα Γραμμές Επεξεργασία Περιβάλλον...

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΑΝΑΛΥΣΗ ΙΙ- ΜΗΧΑΝΟΛΟΓΟΙ ΜΗΧΑΝΙΚΟΙ ΦΥΛΛΑΔΙΟ 1/2012

AΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΚΕΝΤΡΙΚΗ ΕΠΙΤΡΟΠΗ ΕΙΔΙΚΩΝ ΜΑΘΗΜΑΤΩΝ ΠΕΜΠΤΗ 18 ΙΟΥΝΙΟΥ 2015 ΚΟΙΝΗ ΕΞΕΤΑΣΗ ΟΛΩΝ ΤΩΝ ΥΠΟΨΗΦΙΩΝ ΣΤΟ ΕΛΕΥΘΕΡΟ ΣΧΕΔΙΟ

AΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΠΕΜΠΤΗ 18 ΙΟΥΝΙΟΥ 2015 ΚΟΙΝΗ ΕΞΕΤΑΣΗ ΟΛΩΝ ΤΩΝ ΥΠΟΨΗΦΙΩΝ ΣΤΟ ΕΛΕΥΘΕΡΟ ΣΧΕΔΙΟ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ ΔΥΟ (2)

ΜΕΤΡΩΝΤΑΣ ΤΟΝ ΠΛΑΝΗΤΗ ΓΗ

Σ 1 γράφεται ως. διάνυσµα στο Σ 2 γράφεται ως. Σ 2 y Σ 1

ΦΥΣΙΚΗ ΚΑΤΕΥΘΥΝΣΗΣ Γ ΛΥΚΕΙΟΥ. Η ενέργεια ταλάντωσης ενός κυλιόμενου κυλίνδρου

Έγχρωµο και Ασπρόµαυρο Φως

ΣΥΣΤΗΜΑΤΑ ΠΑΡΑΓΩΓΗΣ ΜΕ Η/Υ (CAD-CAM-CAE) Ι

1 ο ΔΙΑΓΩΝΙΣΜΑ ΦΥΣΙΚΗΣ ΘΕΤΙΚΗΣ-ΤΕΧΝΟΛΟΓΙΚΗΣ

ΑΝΑΛΥΣΗ ΙΙ- ΜΗΧΑΝΟΛΟΓΟΙ ΜΗΧΑΝΙΚΟΙ ΦΥΛΛΑΔΙΟ 1/ Στον Ευκλείδειο χώρο ορίζουμε τις νόρμες: 0 2 xx, που ισχύει.

Transcript:

Απόδοση 3D σκηνών - Κινούµενα γραφικά

Περιεχόµενα ενότητας Καταστολή κρυµµένων επιφανειών - Αλγόριθµος z-buffer Τρισδιάστατες επιφάνειες: Κύβος Σφαίρα Κώνος - Κύλινδρος - Κυκλικός δίσκος ακτύλιος Τοµέας δίσκου Τοµέας δακτυλίου Τόρος Μίξη χρωµάτων ιαφάνεια Κινούµενα γραφικά - ιπλή ενταµίευση

Καταστολή κρυµµένων επιφανειών Προφανής κανόνας 3D σχεδίασης: οι επιφάνειες που βρίσκονται πλησιέστερα στον παρατηρητή καλύπτουν τις επιφάνειες που βρίσκονται από πίσω τους Ωστόσο, η OpenGL, εξ' αρχής δε λαµβάνει υπόψη την πληροφορία βάθους Εάν σχεδιαστούν δύο επιφάνειες σε διαφορετικό βάθος µε επικαλυπτόµενες προβολές, µια επιφάνεια που βρίσκεται µακρύτερα από τον θεατή ίσως καλύψει µία κοντινότερη επιφάνεια (ανεπιθύµητη συµπεριφορά) Η δήλωσητωνσχηµάτων µε τησειρά, απότοπιοαποµακρυσµένο προς το πλησιέστερο, δεν αποτελεί λύση.

Ενταµιευτής βάθους (z-buffer) Ενταµιευτής βάθους: µητρώο µε διαστάσεις ίδιες µε τις διαστάσεις της επιφάνειας σχεδίασης σε pixels. Κάθε στοιχείο του ενταµιευτή βάθους έχει ως τιµή τη συντεταγµένη z της πλησιέστερης επιφανείας στο επίπεδο του παρατηρητή στο εκάστοτε pixel. Τα µακρινότερα σηµεία (µακρινό επιπέδου αποκοπής) έχουν τιµή βάθους z=1 και τα πιο κοντινά σηµεία (εγγύς επίπεδο αποκοπής) έχουν τιµήβάθουςz=0.

Ενεργοποίηση αλγορίθµου z-buffer α) ηλώνουµεστηνglutinitdisplaymode τη χρήση ενταµιευτή βάθους. glutinitdisplaymode(gl_depth); β)ενεργοποιούµε τηχρήσηςτουz-buffer glenable(gl_depth_test); γ) Στη συνάρτηση display (πριν το σχεδιασµό ή επανασχεδιασµό ενός καρέ), αρχικοποιούµε τονενταµιευτή τιµών βάθους µε την εντολή glclear. glclear(gl_depth_buffer_bit); Η αρχικοποίηση του depth buffer θέτει ως προκαθορισµένη τιµή σταστοιχείατουτηµονάδα (τη µέγιστη τιµήβάθουςτων κανονικοποιηµένων συντεταγµένων) Αλλαγή αρχικής τιµής: glcleardepth(maxdepth); maxdepth: η µέγιστη τιµήβάθους(χρησιµοποιείται κατά τον καθαρισµό του ενταµιευτή βάθους)

Τρισδιάστατες επιφάνειες Οι βιβλιοθήκες τις OpenGL ορίζουν εντολές µε τις οποίες µπορούµενασχεδιάσουµε µε εύκολο τρόπο τρισδιάστατες επιφάνειες. Αρκεί να δώσουµε χαρακτηριστικές παραµέτρους των επιφανειών (π.χ. ακτίνα σφαίρας ή µήκος έδρας κύβου) Οι περισσότερες 3 επιφάνειες ανήκουν στην κατηγορία των τετραγωνικών επιφανειών (quadrics). Περιγράφονται από εξισώσεις 2 ου βαθµού. ύο κατηγορίες: α) Εντολές της βιβλιοθήκης GLUT β) Εντολές της βιβλιοθήκης GLU

Εντολές 3D επιφανειών της βιβλιοθήκης GLUT Οι εντολές 3D επιφανειών της GLUT έχουν δύο παραλλαγές. glutwire*:eµφανίζουν το περίγραµµα των πολυγώνων που προσεγγίζουν την επιφάνεια (wireframe). glutsolid*: Σχεδιάζουντιςεπιφάνειεςσυµπαγείς.

Εντολές 3D επιφανειών της βιβλιοθήκης GLU Έχουν πιο πολύπλοκη σύνταξη σε σχέση µετιςεντολέςτηςglut, ωστόσο υποστηρίζουν περισσότερες δυνατότητες (πχ απόδοση υφής) Κάθε επιφάνεια χαρακτηρίζεται προγραµµατιστικά ως ένα αντικείµενο της κλάσης GLUquadric Η δηµιουργία κάθε νέας επιφανείας απαιτεί την αρχικοποίηση ενός νέου αντικειµένου GLUquadric *qobj. Αρχικοποίηση του αντικειµένου qobj γίνεται µε τηνεντολήglunewquadric GLUquadric * glunewquadric( ); (Επιστρέφει δείκτη σε αντικείµενο της κλάσης GLUquadric) Σύνταξη αρχικοποίησης qobj = glunewquadric( ); Αποδίδουµε στο αντικείµενο qobj µια συγκεκριµένη επιφάνεια χρησιµοποιώντας εντολές της GLU (αναλύονται στη συνέχεια). Γιαναδιαγράψουµε ένα αντικείµενο χρησιµοποιούµε τηνεντολή gludeletequadric: void GLUdeleteQuadric( GLUquadric *quadobject );

Εντολές 3D επιφανειών της βιβλιοθήκης GLU Έχουµετηδυνατότητανααναπαραστήσουµε τις τρισδιάστατες επιφάνειες είτε συµπαγείς είτε µετηµορφή πλέγµατος είτε σχεδιάζοντας µόνο τα σηµεία των κορυφών. void gluquadricdrawstyle(gluquadric *quadobject, GLenum drawstyle); quadobject δείκτης στο αντικείµενο της επιφανείας για την οποία καθορίζουµε τοντρόποαναπαράστασης drawstyle: δέχεται τις συµβολικές σταθερές: GLU_POINT: Σχεδιάζονται µόνο οι κορυφές των επιφανειών GLU_LINE: Σχεδιάζεται το πλέγµα της επιφανείας GLU_FILL: Οι επιφάνειες του αντικειµένου σχεδιάζονται συµπαγείς.

Κύβος void glutwirecube ( GLdouble edgelength ); για τη σχεδίαση του περιγράµµατος κύβου void glutsolidcube ( GLdouble edgelength ); για τη σχεδίαση συµπαγούς κυβικού σχήµατος, edgelength: το µήκος των ακµών O κύβος σχεδιάζεται µετοκέντροτουστηναρχήτουσυστήµατος συντεταγµένων (0,0,0) και µε τις έδρες του παράλληλες προς τα επίπεδα ΧΥ ΧΖ και ΥΖ του συστήµατος συντεταγµένων σκηνής. Σχεδίαση του κύβου µε διαφορετικό προσανατολισµό απαιτείένα µετασχηµατισµό µοντέλου.

Σφαίρα void glutwiresphere( GLdoule radius, GLint slices, GLint stacks ); για τη σχεδίαση σφαιρικού πλέγµατος void glutsolidsphere( GLdoule radius, GLint slices, GLint stacks ); για τη σχεδιάση µιας συµπαγούς σφαιρικής επιφανείας. radius: η ακτίνα της σφαίρας slices: το πλήθος των οριζοντίων υποδιαιρέσεων (µεσηµβρινοί) stacks: το πλήθος των κατακόρυφων υποδιαιρέσεων (γεωγραφικά πλάτη) Το κέντρο της σφαίρας τοποθετείται στην αρχή του καρτεσιανού συστήµατος συντεταγµένων σκηνής. Οι πόλοι της σφαίρας τοποθετούνται επί του άξονα z (στα σηµεία z=r και z=-r)

Κώνος glutwirecone(gldouble base, GLdouble height, GLint slices, Glint stacks); για τη σχεδίαση κωνικού περιγράµµατος και την εντολή glutsolidcone (GLdouble base, GLdouble height, GLint slices, Glint stacks); για τη σχεδιάση συµπαγούς κωνικής επιφανείας base: η ακτίνα της βάσης του κώνου height: το ύψος του κώνου slices: το πλήθος των οριζοντίων υποδιαιρέσεων ( φέτες ) stacks: το πλήθος των κατακόρυφων υποδιαιρέσεων To κέντρο της βάσης του κώνου τοποθετείται στην αρχή του συστήµατος συντεταγµένων σκηνής. Ο άξονας του κώνου ακολουθεί το θετικό ηµιάξονα Oz.

Κύλινδρος glucylinder(gluquadric *qobj, GLdouble baseradius, GLdouble topradius, GLdouble height, GLdouble slices, GLdouble stacks); qobj: δείκτης στο αντικείµενο της κυλινδρικής επιφάνειας baseradius, topradius: οι ακτίνες της βάσης και της κορυφής του κυλίνδρου height: το ύψος του κυλίνδου slices, stacks: το πλήθος των οριζοντίων και κάθετων υποδαιρέσεων Ο κύλινδρος σχεδιάζεται µε τη βάση του στο επίπεδο XY και εκτείνεται προς τον θετικό ηµιάξονα Oz.

Κυκλικός δίσκος - ακτύλιος void gludisk (GLUquadric *quadobject, GLdouble innerradius, GLdouble outerradius, Glint slices, Glint loops ); quadobject: το αντικείµενο στο οποίο αντιστοιχίζουµε την επιφάνεια innerradius: η εσωτερική ακτίνα από την οποία ξεκινάει ο σχηµατισµός του δακτυλίου. Για innerradius=0 σχεδιάζουµε κυκλικό δίσκο outerradius: η εξωτερική ακτίνα του δίσκου ή δακτυλίου slices: το πλήθος των γωνιακών υποδιαιρέσεων loops: το πλήθος των ακτινικών υποδιαιρέσεων Σχεδίαση επί του επιπέδου XY µετοκέντροστηναρχήτωναξόνων.

Κυκλικός τοµέας Τοµέας δακτυλίου glupartialdisk (GLUquadric *qobj, GLdouble innerradus, GLdouble outerradius, GLdouble slices, GLdouble loops, GLdouble startangle, GLdouble sweepangle); startangle: η γωνία από την οποία ξεκινάει ο σχεδιασµός του σχήµατος sweepangle: το γωνιακό εύρος του δακτυλίου Η γωνιακή θέση 0 αντιστοιχεί στην κατεύθυνση προς τα πάνω. H τιµή της γωνιακής θέσης αυξάνεται κατά την αρνητική φορά. Σχεδίαση επί του επιπέδου X-Y µετοκέντροστηναρχήτωναξόνων.

Τόρος void glutwiretorus(gldouble innerradius, GLdouble outerradius, GLint sides, GLint rings); void glutsolidtorus(gldouble innerradius, GLdouble outerradius, GLint sides, GLint rings); innerradius: εκφράζει την ακτίνα της κυκλικής διατοµής του τόρου outerradius: ηαπόστασητουκέντρουτηςδιατοµής του τόρου από τον άξονά του sides: το πλήθος των υποδιαιρέσεων που προσεγγίζουν την περιφέρεια µιας κυκλικής διατοµής του τόρου rings: το πλήθος των κυκλικών διατοµών που χρησιµοποιούµεγιατην προσέγγιση του τόρου Ο τόρος σχεδιάζεται θεωρώντας ως άξονά του τον Oz και κέντρο του την αρχή του συστήµατος συντεταγµένων.

Μίξη χρωµάτων Στην περίπτωση επικαλυπτόµενων σχηµάτων έχουµε τη δυνατότητα να αναµίξουµε τιςχρωµατικές τιµές τους και να παραγάγουµε έναν ενδιάµεσο χρωµατισµόστακοινάσηµεία τους Μπορούµεναπροσoµοιώσουµε διαφανείς ή ηµιδιαφανείς επιφάνειες. Για τη µίξη χρωµάτων συνήθως χρησιµοποιούνται το χρωµατικό µοντέλο RGBA. (Τρεις χρωµατικές συνιστώσες και η συνιστώσα alpha, η οποίαχρησιµοποιείται ως συντελεστής µίξης)

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

Συντελεστές µίξης Συντελεστές µίξης: αποδίδονται στο στρώµα προορισµού και στο στρώµα πηγής Καθορίζουν σε τι ποσοστό θα συµµετάσχουν οι χρωµατικές τιµές του προορισµού και της πηγής κατά την υπέρθεσή τους. ιαδικασία µίξης: α) Κάθε εντολή δήλωσης σχήµατος αποθηκεύει την περιγραφή του σε ένα κενό στρώµα πηγής. β) Εκτελείται η µίξη στρώµατος πηγής - στρώµατος προορισµού γ) Παράγουµε ένα ανανεωµένο στρώµα προορισµού. Η διαδικασία µίξης εκτελείται επαναληπτικά.

( ) s s s s A B G R,,, Συντελεστές µίξης ( ) a b g r D D D D D,,, = Συντελεστές µίξης στρώµατος προορισµού Συντελεστές µίξης στρώµατος πηγής Αποθηκευµένη χρώµαστοστρώµα προορισµού Τρέχον χρώµαστοστρώµα πηγής Νέο χρώµαστρώµατος προορισµού ( ) a b g r S S S S S,,, = ( ) d d d d A B G R,,, ( ) s s s s A B G R,,, ( ) d a s a d b s b d g s g d r s r A D A S B D B S G D G S R D R S + + + +,,,

Ρύθµιση µίξης χρωµάτων Ενεργοποιούµετηλειτουργίαµίξης χρωµάτων µε τηνεντολή: glenable(gl_blend); Απόδοση συντελεστών µίξης σε κάθε στρώµα: void glblendfunc( GLenum sfactor, GLenum dfactor); sfactor, dfactor: συµβολικές σταθερές που καθορίζουν τους συντελεστές µίξης για το στρώµα πηγής και το στρώµα προορισµού αντίστοιχα

Παράµετροι ρύθµισης συντελεστών µίξης sfactor και dfactor: έχονται τις εξής σταθερές: GL_ZERO: Θέτει τους συντελεστές µίξης (0,0,0,0) για το εκάστοτε στρώµα. GL_ONE: Ορίζει τους συντελεστές µίξης (1,1,1,1) για το εκάστοτε στρώµα. GL_SRC_ALPHA: Επιλέγουµε για συντελεστές µίξης του εκάστοτε στρώµατος, τη συνιστώσα alpha του χρώµατος στο στρώµα πηγής. (Αs,As,As,As) (µοντέλο RGBA) GL_DST_ALPHA: Επιλέγουµεωςσυντελεστήµίξης για το εκάστοτε στρώµατησυνιστώσαalpha του χρώµατος στο στρώµα προορισµού. (Ad,Ad,Ad,Ad) (µοντέλο RGBA) GL_ONE_MINUS_SRC_ALPHA: Επιλέγουµε ως συντελεστή µίξης για το εκάστοτε στρώµατοσυµπλήρωµατηςσυνιστώσαςas ως προς τη µονάδα. (1-As,1-As,1-As,1-As) (µοντέλο RGBA) GL_ONE_MINUS_DST_ALPHA: Επιλέγουµε ως συντελεστή µίξης για το εκάστοτε στρώµατοσυµπλήρωµατηςσυνιστώσαςad ως προς τη µονάδα. (1-Ad,1-Ad,1-Ad,1-Ad) (µοντέλο RGBA) Η προκαθορισµένη τιµήγιατηνπαράµετρο sfactor είναι GL_ONE και για την για παράµετρο dfactor GL_ZERO. (Το χρώµα πηγής επικαλύπτει το χρώµα προορισµού).

Μοντελοποίηση διαφάνειας Η διαφάνεια µιας επιφάνειας καθορίζεται ορίζοντας την alpha συνιστώσα της. Ορίζουµε µια επιφάνεια ως πλήρως διαφανή µε τιµή alpha=1 και ως πλήρως αδιαφανή µε τιµή alpha=0. Τρόπος µίξης χρωµάτων στην απόδοση διαφάνειας: glblendfunc(gl_one_minus_src_alpha,gl_src_alpha); Απαιτείται η χρήση του χρωµατικού µοντέλου RGBA: glutinitdisplaymode(glut_rgba);

Κινούµενα γραφικά H δηµιουργία κινούµενων γραφικών είναι εφικτή µεταβάλλοντας το σκηνικό και δίνοντας διαδοχικές εντολές επανασχεδιασµού της σκηνής. Η διαρκής ανανέωση και επενασχεδιασµός καρέ χωρίς περαιτέρω µέριµνα εξάγει κινούµενα γραφικά χαµηλής ποιότητας λόγω τρεµοπαίγµατος (flickering). Αιτία: οι ασύγχρονες διεργασίες εγγραφής και ανάγνωσης του ενταµιευτή χρωµατικών τιµών

Απλή ενταµίευση (single buffering) α) Το τρέχον καρέ προωθείται στον ditital-to-analog µετατροπέα της οθόνης (DAC). β) Η µηχανή της OpenGL, εγγράφει τις χρωµατικές τιµές του επόµενου καρέ στον ίδιο ενταµιευτή. Οι δύο παραπάνω διαδικασίες δεν είναι συγχρονισµένες (Οι τιµές του color buffer ενδέχεται να τροποποιηθούν ενώ ο DAC της οθόνης ανακτά το πρώτο καρέ).

ιπλή ενταµίευση (double buffering)

Εφαρµογή διπλής ενταµίευσης α) ηλώνουµετηχρήσηδιπλήςενταµίευσης στην glutinitdisplaymode: glutinitdisplaymode(glut_double); β) Στο τέλος της συνάρτησης display, εναλάσσουµε τουςενταµιευτές προσκηνίου και παρασκηνίου µε τηνεντολήglutswapbuffers. void glutswapbuffers(); Όταν χρησιµοποιούµετηνεντολή glutswapbuffers, δεν είναι αναγκαία η εκτέλεση της glflush.

Τέλος ενότητας