Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

2ο εργαστήριο.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "2ο εργαστήριο."— Μεταγράφημα παρουσίασης:

1 2ο εργαστήριο

2 OpenGL Σύνταξη Εντολών
Οι εντολές OpenGL χρησιμοποιούν το πρόθεμα gl και κεφαλαίο το πρώτο γράμμα κάθε λέξης. Οι OpenGL σταθερές αρχίζουν με GL_, και χρησιμοποιούνται κεφαλαία η ‘_’ για το διαχωρισμό των λέξεων. glVertex3f(…) OpenGL πρόθεμα εντολή πλήθος παραμέτρ. τύπος παραμέτρ.

3 Τύποι δεδομένων OpenGL Type Internal representation C-Language Type Suffix GLbyte 8-bit integer signed char b GLshort 16-bit integer short s GLint, GLsizei 32-bit integer int or long i GLfloat 32-bit floating float f GLflampf pointer GLfouble 64-bit floating double d GLclampd pointer Glubyte 8-bit unsigned integer unsigned char ub GLuboolean 8-bit unsigned integer unsigned char ub GLushort 16-bit unsigned integer unsigned short us GLuint, GLenum 32-bit unsigned integer unsigned long ui GLbitfield 32-bit unsigned integer

4 Διαχείριση καταστάσεων
Η OpenGL είναι μηχανή καταστάσεων. Η αλλαγή μιας κατάστασης παραμένει μέχρι να ξανα-αλλαχθεί. Η κάθε κατάσταση έχει μια δεδομένη τιμή. Κάθε στιγμή μπορούμε να πάρουμε από το σύστημα την τρέχουσα τιμή.

5 Διαχείριση καταστάσεων
glEnable(GLenum), glDisable(GLenum) Ενεργοποίηση και απενεργοποίηση κάποιας κατάστασης. glIsEnabled(GLenum) Ερώτηση αν η κατάσταση είναι ενεργοποιημένη glGetBooleanv(), glGetIntegerv(), glGetFloatv(), glGetDoublev(), glGetPointerv() Ζητείται η τρέχουσα τιμή OpenGL Programming Guide : Appendix B

6 Αναπαράσταση Χρώματος
RGBA 4 κανάλια: Red, Green, Blue, and Alpha. Κάθε κανάλι παίρνει τιμές 0.0 ~ 1.0 Τιμές εκτός των ορίων αποδίδονται στο 0.0 ή 1.0. Το Alpha χρησιμοποιείται στο συνδυασμό και τη διαφάνεια Π.x. glColor4f(0.0, 1.0, 0.0, 1.0); // Green glColor4f(1.0, 1.0, 1.0, 1.0); // White

7 Παράδειγμα #include <GL/glut.h> void GL_display() { glClearColor(0.0f, 0.0f, 0.0f, 0.0f); glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POLYGON); glColor3f(1.0f, 1.0f, 1.0f); glVertex3f (-1.0, -1.0, 0.0); glColor3f(1.0f, 0.0f, 0.0f); glVertex3f (1.0, -1.0, 0.0); glColor3f(0.0f, 1.0f, 0.0f); glVertex3f (1.0, 1.0, 0.0); glColor3f(0.0f, 0.0f, 1.0f); glVertex3f (-1.0, 1.0, 0.0); glEnd(); glFlush(); }

8 Παράδειγμα void GL_reshape(GLsizei w, GLsizei h) { glViewport(0, 0, w, h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(-2.0f, 2.0f, -2.0f, 2.0f, -2.0f, 2.0f); glMatrixMode(GL_MODELVIEW); } void main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); glutInitWindowSize (250, 250); glutInitWindowPosition (100, 100); glutCreateWindow("Drawing Sample"); glutDisplayFunc(GL_display); glutReshapeFunc(GL_reshape); glutMainLoop();

9 Παράδειγμα


Κατέβασμα ppt "2ο εργαστήριο."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google