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

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

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

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

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

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

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

Γραφικά Υπολογιστών: OpenGL

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

Κεφάλαιο 2 ο Είσοδος/Έξοδος ιαχείριση γεγονότων - Αποκοπή στις δύο διαστάσεις

Είσοδος Έξοδος ιαχείριση γεγονότων Απόδοση 2 σκηνών

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

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

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

Η Βιβλιοθήκη Γραφικών OpenGl Με Χρήση C/C++, JAVA και PYTHON

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

4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος

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

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

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

3 ο Εργαστήριο Μεταβλητές, Τελεστές

Κεφάλαιο 1 Βασικές αρχές σχεδίασης

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

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

Πίνακες: μια σύντομη εισαγωγή. Πίνακες χαρακτήρων: τα "Αλφαριθμητικά"

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης

Ενώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

Δομημένος Προγραμματισμός

Προγραμματισμός Υπολογιστών με C++

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό

ΦΥΛΛΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ 1

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι (HY120)

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

Δομημένος Προγραμματισμός (ΤΛ1006)

Ανάπτυξη και Σχεδίαση Λογισμικού

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

Τύποι Δεδομένων Είσοδος/Έξοδος

Μεθόδων Επίλυσης Προβλημάτων

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

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

Ενδεικτικές λύσεις και στατιστικά

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

Εισαγωγή στον Προγραμματισμό

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Προγραμματισμό για ΗΜΥ

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

Εισαγωγή στον Προγραμματισμό

ΗΥ-150. Προγραμματισμός

ΗΥ-150. Προγραμματισμός

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13)

Graphics.h Διασύνδεση με τη Βιβλιοθήκη Γραφικών

Προγραμματισμός Ι (ΗΥ120)

GRAPHICS AND CODE DESIGN

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

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

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

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )

Προγραμματισμός Η/Υ (ΤΛ2007 )

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ (ΤΛ2007 )

Αντικειµενοστρεφής Προγραµµατισµός

Επεξεργασία Αρχείων Κειµένου

ιπλωµατική Εργασία Ανάπτυξη Γραφικού Περιβάλλοντος για την απεικόνιση και διαχείριση τρισδιάστατων πλεγµάτων και επιφανειών

Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo;

Προγραμματισμός Η/Υ (ΤΛ2007 )

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

Αντικειμενοστρεφής Προγραμματισμός

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

Μεθόδων Επίλυσης Προβλημάτων

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι

Βιβλιοθήκες Αφηρημένοι τύποι δεδομένων. Προγραμματισμός II 1

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

Βασικά Στοιχεία της Java

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

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

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Ανάπτυξη και Σχεδίαση Λογισμικού

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

Transcript:

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

OpenGL Εισαγωγή Είναι το πρότυπο της βιομηχανίας γραφικών για real-time 3d rendering Χρησιμοποιείται για την δημιουργία 3d/2d διαδραστικών εφαρμογών Είναι διεπαφή προγραμματισμού εφαρμογών (API) για γραφικά υπολογιστών. Αποτελεί διεπαφή μεταξύ μιας γλώσσας προγραμματισμού και του υλικού του υπολογιστή -> Δεν είναι γλώσσα προγραμματισμού Είναι ανεξάρτητη από το υλικό και το λειτουργικό σύστημα.

OpenGL Εισαγωγή Χρησιμοποιείται από πληθώρα γλωσσών προγραμματισμού, π.χ. C++, Java Παρέχει μια βιβλιοθήκη συναρτήσεων (περίπου 700 ρουτίνες) για το χειρισμό βασικών λειτουργιών γραφικών. Υπάρχουν βοηθητικές βιβλιοθήκες για το χειρισμό ειδικών λειτουργιών που σχετίζονται με την διαχείριση παραθύρων, της εισόδου δεδομένων από την πλευρά του χρήστη, κ.α.

ΒΟΗΘΗΤΙΚΗ ΒΙΒΛΙΟΘΗΚΗ OpenGL Utility (GLU) Αποτελεί μέρος της υλοποίησης της OpenGL Παρέχει ρουτίνες σχετικές με: Πίνακες μοντέλου, θέασης και προβολής Περιγραφής σύνθετων αντικειμένων Απόδοση σύνθετων επιφανειών Και άλλες υποστηρικτικές ρουτίνες Οι συναρτήσεις ξεκινούν με το πρόθεμα glu

ΕΡΓΑΛΕΙΟΘΗΚΗ OpenGL Utility Toolkit (GLUT) Παρέχει ρουτίνες: Για διεπαφή με οποιοδήποτε σύστημα παραθύρων οθόνης Για δημιουργία κάποιων τρισδιάστατων αντικειμένων Οι συναρτήσεις ξεκινούν με το πρόθεμα glut

OpenGL Μηχανή Καταστάσεων Λειτουργεί ως μηχανή καταστάσεων (state machine) Μια κατάσταση ορίζεται από τις τιμές ενός συνόλου μεταβλητών κατάστασης (state variables). Μια μεταβλητή κατάστασης μπορεί να πάρει διάφορες τιμές ή να είναι ενεργοποιημένη ή όχι. Η μεταβλητή κατάστασης διατηρεί την τιμή της μέχρι να γίνει αλλαγή αυτής της τιμής κατά τη διάρκεια εκτέλεσης του προγράμματος. Παραδείγματα μεταβλητών κατάστασης: χρώμα σχεδίασης, κατάσταση buffers(ενεργοποιημένοι/απενεργοποιημενοι),

OpenGL Τύποι Δεδομένων Επίθημα Τύπος Δεδομένων Τύπος OpenGL Αντιστοιχία στη γλώσσα C b GLbyte 8-bit integer Signed char s GLshort 16-bit integer short i GLint, Glsizei 32-bit integer int or long f GLfloat 32-bit floating point float d GLdouble 64-bit floating point double ub Glubyte, GLboolean 8-bit unsigned integer unsigned char us GLushort 16-bit unsigned integer unsigned short ui Gluint, Glenum, Glbitfield 32-bit unsigned integer unsigned int or unsigned long Πίνακας 1. Τύποι δεδομένων της OpenGL Έχει τους δικούς της τύπους ώστε να είναι ανεξάρτητη από τη γλώσσα

OpenGL Συμβολικές σταθερές Οι συμβολικές σταθερές της OpenGL έχουν ως πρόθεμα το GL_ Π.χ. GL_POLYGON, GL_COLOR_BUFFER_BIT, GL_SMOOTH Οι συμβολικές σταθερές της GLU έχουν ως πρόθεμα το GLU_ Π.χ. GLU_TRUE, GLU_INVALID_ENUM, GLU_NURBS_BEGIN Οι συμβολικές σταθερές της GLUT έχουν ως πρόθεμα το GLUT_ Π.χ. GLUT_LEFT_BUTTON, GLUT_KEY_RIGHT, GLUT_DOUBLE, GLUT_RGBA Όλα τα γράμματα ΚΕΦΑΛΑΙΑ Χρησιμοποιείται η κάτω παύλα ( _ )για διαχωρισμό των λέξεων

OpenGL Σύνταξη Συναρτήσεων Οι συναρτήσεις της OpenGL μπορεί να έχουν διάφορες παραλλαγές ακολουθώντας όλο ή μέρος του μοντέλου: gl +Όνομα εντολής (πρώτο γράμμα κεφαλαίο) +αριθμός διαστάσεων χώρου {2,3} ή χρωματικών τιμών {3,4} +επίθημα τύπου δεδομένων {b,s,i,,ui} (βλ. Πίνακα 1) +αν πρόκειται για vector list προσθέτουμε το γράμμα v και ως όρισμα δίνουμε το όνομα της μεταβλητής Vector glvertex3i(100,10,10); Όνομα εντολής Αριθμός διαστάσεων: 3 -> 3 ορίσματα για (x,y,z) Τύπος δεδομένων : i ->integer GLfloat vcoords[ ]={100.0,10.0,10.0}; glvertex3fv(vcoords); Όνομα εντολής Αριθμός διαστάσεων: 3 -> 3 ορίσματα για (x,y,z) Τύπος δεδομένων : f ->integer οι τιμές βρίσκονται σε vector: v

Δομή Προγράμματος OpenGL_Lab1 Δήλωση κεφαλίδων #include <gl/glut.h> Συνάρτηση που καλείται κάθε φορά που χρειάζεται να επανασχεδιαστεί κάτι στην οθόνη void display(){ } Συνάρτηση που καλείται κάθε φορά αλλάζει μέγεθος το παράθυρο void reshape(int width, int height){ } Όπου width το πλάτος και height το ύψος του παραθύρου εφαρμογής Συνάρτηση main του προγράμματος void main(int argc, char** argv){ }

ΣΥΝΑΡΤΗΣΗ main glutinit void glutinit(int *argcp, char **argv); Χρησιμοποιείται για να αρχικοποιήσει τη βιβλιοθήκη GLUT. Επίσης μπορεί να επεξεργαστεί ορίσματα γραμμής εντολών

ΣΥΝΑΡΤΗΣΗ main glutinitwindowposition, glutinitwindowsize Ορίζει το αρχικό μέγεθος και θέση του παραθύρου παρουσίασης της εφαρμογής void glutinitwindowsize(int width, int height); void glutinitwindowposition(int x, int y); width: το πλάτος σε pixels. height: το ύψος σε pixels. x: η συντεταγμένη X της άνω αριστερής γωνίας του παραθύρου y: η συντεταγμένη Υ της άνω αριστερής γωνίας του παραθύρου

ΣΥΝΑΡΤΗΣΗ main glutinitdisplaymode Ορίζει παραμέτρους εμφάνισης του παραθύρου που θα δημιουργηθεί. Παίρνει ως ορίσματα σταθερές της OpenGL που σχετίζονται με τις μνήμες προσωρινής αποθήκευσης(buffers) και την χρωματική κατάσταση (Περισσότερα του ενός ορίσματα χωρίζονται με ). void glutinitdisplaymode(unsigned int mode); Κάποιες από τις σταθερές που χρησιμοποιούνται συχνά για το mode: GLUT_RGBA (default), GLUT_INDEXχρωματική κατάσταση GLUT_SINGLE (default), GLUT_DOUBLE μονός ή διπλός buffer (για εφαρμογές κινούμενων γραφικών ) GLUT_DEPTH buffer βάθους

ΣΥΝΑΡΤΗΣΗ main glutcreatewindow Δημιουργεί το παράθυρο παρουσίασης στην οθόνη int glutcreatewindow(char *name); name: το όνομα του παραθύρου

ΣΥΝΑΡΤΗΣΗ main glutmainloop(); Εισέρχεται στο βρόχο επεξεργασίας γεγονότων της GLUT. Πρέπει να καλείται ακριβώς μια φορά σε κάθε πρόγραμμα που χρησιμοποιεί την GLUT στο τέλος της συνάρτησης main() Από τη στιγμή που καλείται δεν σταματάει να εκτελείται έως ότου το πρόγραμμα τερματιστεί.

CALLBACK FUNCTIONS Συναρτήσεις που καλούνται κάθε φορά που συμβαίνει κάποιο γεγονός(event) κατά την εκτέλεση ενός προγράμματος. Τέτοια events μπορεί να είναι: window event, mouse event, keyboard event glutdisplayfunc (όνομα συνάρτησης) glutreshapefunc (όνομα συνάρτησης) glutkeyboardfunc (όνομα συνάρτησης) glutspecialfunc (όνομα συνάρτησης) glutmousefunc (όνομα συνάρτησης) glutidlefunc (όνομα συνάρτησης)

ΣΥΝΑΡΤΗΣΗ main glutreshapefunc, glutdisplayfunc void glutreshapefunc(void (*func)(int width, int height)); Ορίζει τη συνάρτηση που θα καλείται κάθε φορά που γίνεται μεταβολή του μεγέθους του παραθύρου. Επίσης καλείται την πρώτη φορά που γίνεται εμφάνιση του παραθύρου μετά τη δημιουργία του με την glutcreatewindow(..) void glutdisplayfunc(void (*func)(void)); Ορίζει τη συνάρτηση που καλείται κάθε φορά που χρειάζεται να επανασχεδίαση του περιεχομένου του τρέχοντος παραθύρου. Κλήση για επανασχεδίαση μπορεί να πραγματοποιηθεί είτε με την εντολή glutpostredisplay() ή όταν δώσει εντολή το σύστημα παραθύρων του λειτουργικού.

Viewport Window Viewport size Window size glviewport(50,50,width-100,height-100);... glortho(0,200,0,100, -200, 200); To viewport ξεκινάει από το σημείο (50,50) - κάτω αριστερή γωνία και έχει πλάτος και ύψος 100 pixels μικρότερα από τα αντίστοιχα του παραθύρου Viewport size = Window size glviewport(0,0,width,height);... glortho(0,200,0,100, -200, 200); To viewport ξεκινάει από το σημείο (0,0), που ταυτίζεται με την κάτω αριστερή γωνία του παραθύρου και έχει πλάτος και ύψος ίσα με τα αντίστοιχα του παραθύρου

Παράλληλη (Ορθογραφική) Προβολή Στην παράλληλη προβολή ο όγκος θέασης (viewing volume) είναι ένα ορθογώνιο παραλληλεπίπεδο, όπου κάθε πλευρά του ορίζει ένα επίπεδο αποκοπής (clipping plane). Η απόσταση των αντικειμένων από την κάμερα δεν επηρεάζει το πόσο μεγάλα φαίνονται.

ΣΥΝΑΡΤΗΣΗ reshape glortho void glortho(gldouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble nearval, GLdouble farval); Καθορίζει τον μετασχηματισμό προβολής που θα χρησιμοποιηθεί - πολλαπλασιασμός του τρέχοντος πίνακα με τον ορθογραφικό πίνακα left, right: Συντεταγμένες για το δεξί και το αριστερό κάθετο clipping plane bottom, top: Συντεταγμένες για το κάτω και το άνω οριζόντιο clipping plane nearval, farval: η απόσταση του κοντινού και μακρινού επιπέδου αποκοπής από το σημείο θέασης. Αν το επίπεδο είναι πίσω από τον θεατή, οι τιμές είναι αρνητικές

ΣΥΝΑΡΤΗΣΗ reshape glmatrixmode, glortho void glmatrixmode(glenum mode); Ορίζει την κατάσταση και κατ επέκταση το ποιος θα είναι ο τρέχον πίνακας, δηλαδή ο πίνακας στον οποίο θα γίνουν τυχόν τροποποιήσεις. Πιθανές καταστάσεις και αντίστοιχές τιμές: Κατάσταση modelview: GL_MODELVIEW, Κατάσταση προβολής: GL_PROJECTION, Κατάσταση υφής: GL_TEXTURE και Κατάσταση χρώματος: GL_COLOR void glloadidentity(void); Θέτει ως τρέχοντα πίνακα τον 4 4 μοναδιαίο πίνακα (identity matrix)

Θεμελιακά Στοιχεία (Primitives) Geometric Primitives: Θεμελιακά στοιχεία που περιγράφουν τη γεωμετρία αντικειμένων Σημεία, γραμμές, τρίγωνα, quads, πολύγωνα Ορίζουμε τις συντεταγμένες των κορυφών/σημείων μέσα σε ένα μπλοκ κώδικα που περικλείεται από τις εντολές: glbegin(τυπος primitive); glvertex*( );.. glend(); glvertex*( );

Θεμελιακά Στοιχεία (Primitives) Τύποι Primitives που μπορεί να δεχτεί glbegin( ): GL_POINTS GL_LINES GL_LINE_STRIP GL_LINE_LOOP GL_TRIANGLES GL_TRIANGLE_STRIP GL_TRIANGLE_FAN GL_QUADS GL_QUAD_STRIP GL_POLYGON http://www3.ntu.edu.sg/home/ehchua/programming/opengl/gl2_graphics3 D.html

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

Βιβλιογραφία Γραφικά Υπολογιστών με OpenGL, Hearn Baker, Εκδόσεις Τζιόλα, 3 η έκδοση, Αθήνα, 2004 OpenGL Programming Guide (RedBook), Dave Shreiner, 7 th edition, 2010 OpenGL SuperBible, Richard S. Wright, Jr., Nicholas Haemel, Graham Sellers, Benjamin Lipchak, 5 th edition, 2011 GLUT Programming Interface, Mark J. Kilgard, Silicon Graphics, Inc., 1996