Περιγραφή Μαθήματος

Η διεξαγωγή του μαθήματος κινείται γύρω από 3 άξονες:
- Ο εκπαιδευτής εξοικειώνει τον εκπαιδευόμενο με έννοιες της OpenGL μέσα από παρουσιάσεις (θεωρητικό κομμάτι),
- Ο εκπαιδευόμενος εκτελεί στον σταθμό εργασίας του Εργαστηρίου έτοιμο κώδικα (επιλεγμένο από τον εκπαιδευτή) με σκοπό να επιταχυνθεί η διαδικασία εξοικείωσης με την φιλοσοφία και τις προγραμματιστικές ιδιαιτερότητες της "γλώσσας προγραμματισμού" OPENGL (στην πραγματικότητα πρόκειται για βιβλιοθήκη και όχι γλώσσα προγραμματισμού με τη συνήθη έννοια),
- Ο εκπαιδευτής, με διαλεκτικό τρόπο και με τη βοήθεια ποιοτικών videos, εξασκεί τον εκπαιδευόμενο στη χρήση της OpenGL με στόχο α) αρχικά τη δυνατότητα σε βάθος ερμηνείας εντολών / functions και του θεωρητικού πλαισίου που αυτές εξυπηρετούν (π.χ. συστήματα συντεταγμένων, μορφές προβολής / projection, πίνακες / matrices & μαθηματικοί μετασχηματισμοί αυτών κ.λπ.) β) ακολούθως την απόκτηση προγραμματιστικής επάρκειας των εκπαιδευομένων, γ) ενώ σε κάθε φάση ελέγχεται η πρόοδος των εκπαιδευομένων μέσα από ασκήσεις εμπέδωσης της διδασκόμενης ύλης.
Πραγματεύεται θέματα όπως APIs, διανυσματικά και ψηφιογραφικά γραφικά, υποσύστημα γραφικών στον Η/Υ (GPU, VRAM, pixels, refresh rate, raster scan, VSync & Frame buffer, 2D συντεταγμένες οθόνης), 3D γραφικά με OpenGL - Βασική θεωρία (3D σύστημα συντεταγμένων, OpenGL γεωμετρικές οντότητες - primitives, Vertex attributes, σύστημα διοχέτευσης ριπής / pipeline για την αναπαράσταση 3D γραφικών), εξέλιξη του OpenGL API, περιβάλλοντα αυτόματης δημιουργίας OpenGL context, GLUT, Οδηγός εγκατάστασης περιβαλλόντων ανάπτυξης / βιβλιοθηκών.
Εξετάζονται μέσα από ένα παράδειγμα GLUT εφαρμογής βασικές έννοιες συγγραφής κώδικα με χρήση της GLUT βιβλιοθήκης. Συγκεκριμένα γίνεται αναφορά σε 3 βασικές συνιστώσες μιας GLUT εφαρμογής, της αρχικοποίησης & δημιουργίας παραθύρου, της τακτικής Callback registration και της θέσης της εφαρμογής σε κατάσταση event processing loop.
Εξετάζονται μέσα από ένα παράδειγμα GLUT εφαρμογής βασικές έννοιες συγγραφής κώδικα με χρήση της GLUT βιβλιοθήκης. Συγκεκριμένα επεκτείνεται η εφαρμογή του 1ου μαθήματος ώστε το σχήμα που αναπαρίσταται στο παράθυρο να διατηρεί τις αναλογίες του όταν αλλάζει το ύψος ή το πλάτος του παραθύρου. Γίνεται αναφορά στις εξής εντολές συναρτήσεις (με έντονα γράμματα όσες εξετάζονται για πρώτη φορά):
glClear, glBegin, glVertex3f, glEnd, glutSwapBuffers, glutInit, glutInitDisplayMode, glutInitWindowPosition, glutInitWindowSize, glutCreateWindow, glutDisplayFunc, glutMainLoop, glutReshapeFunc, glLoadIdentity, glViewport, gluPerspective, glMatrixMode
Γίνεται εκτενής αναφορά στις παρακάτω συναρτήσεις και έννοιες:
- glutDisplayFunc
- glutInitDisplayMode
- glClearColor
- glutMainLoop()
- glClearDepth
- glClear
- glEnable(GL_DEPTH_TEST) και glDepthFunc
- glBegin(GL_QUADS)
- local space ή model space
- world space
- view space
- viewport transform
- projection transform
Στο μάθημα αυτό γίνεται επέκταση του κώδικα των προηγούμενων μαθημάτων με στόχο να δώσουμε κίνηση (περιστροφή) στο σχήμα. Γίνεται χρήση των νέων εντολών glLoadIdentity, gluLookAt, glRotatef, glutSwapBuffers και glutIdleFunc. Σκοπός του μαθήματος είναι η καλή κατανόηση των προγραματιστικών ιδιαιτεροτήτων της OpenGL & GLUT βιβλιοθήκης.
Ημερολόγιο
Ανακοινώσεις
Όλες...- - Δεν υπάρχουν ανακοινώσεις -