1 / 9

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

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

lars-byrd
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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); glLoadIdentity(); } 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. Παράδειγμα

More Related