12
Εισαγωγή στο OpenGL 1

Εισαγωγή στο OpenGL

  • Upload
    nitza

  • View
    65

  • Download
    0

Embed Size (px)

DESCRIPTION

Εισαγωγή στο OpenGL. Graphics API v.s. Application API. Graphics API Λογισμικό για χειρισμό υλικού γραφικών . Παρέχει τις συναρτήσεις χαμηλού επιπέδου για απευθείας πρόσβαση στο υλικό. OpenGL / Direct3D Application API Λογισμικό υψηλού επιπέδου για ανάπτυξη εφαρμογών - PowerPoint PPT Presentation

Citation preview

Page 1: Εισαγωγή στο  OpenGL

Εισαγωγή στο OpenGL

1

Page 2: Εισαγωγή στο  OpenGL

Graphics API v.s. Application API

Graphics API– Λογισμικό για χειρισμό υλικού γραφικών.– Παρέχει τις συναρτήσεις χαμηλού επιπέδου

για απευθείας πρόσβαση στο υλικό.• OpenGL / Direct3D

Application API– Λογισμικό υψηλού επιπέδου για ανάπτυξη

εφαρμογών• Game Engine, VR tools…

2

Page 3: Εισαγωγή στο  OpenGL

Τι κάνει το OpenGL

– Σχεδιάζει πρωταρχικά σχήματα (σημείο, γραμμή, πολύγωνο)

– Λειτουργίες πινάκων– Διαγράφει κρυμμένες επιφάνειες– Φωτεινότητα και σκίαση– Texture mapping– Λειτουργίες με Pixel– GPU υπολογισμούς.

3

Page 4: Εισαγωγή στο  OpenGL

OpenGL διαδικασία

4

OpenGL εντολές

Command Buffer

Μετασχηματισμός και Φωτισμός

Rasterization

Frame Buffer

pixel λειτουργίες

Page 5: Εισαγωγή στο  OpenGL

OpenGL Διαδικασία

5

Vertex Data

Pixel Data

Display List

Evaluators

Vertex Operations

and Primitive Assembly

Pixel Operations

Rasterization

Texture Assembly

Fragment Operations

Frame Buffer

Page 6: Εισαγωγή στο  OpenGL

frame buffers

Ο buffer είναι περιοχή μνήμης στο υλικό για συγκεκριμένο σκοπό.

Ένα OpenGL σύστημα μπορεί να χειριστεί τέσσερεις buffers:– Buffer χρώματος– Buffer βάθους (Z-Buffer)– Buffer σχεδίου– Buffer συγκέντρωσης

6

Page 7: Εισαγωγή στο  OpenGL

GLUT (OpenGL Utility Toolkit)

Ένα παραθυρικό σύστημα ανεξάρτητων εργαλείων που καλύπτει την πολυπλοκότητα των διαφορετικών ΑΡΙ σύστημα παραθύρων. Παρέχει τις ακόλουθες λειτουργίες:– Αρχικοποίηση και δημιουργία παράθυρου– Χειρισμό παραθύρων και γεγονότα εισόδου– Σχέδιο πρωταρχικών τρισδιάστατων

αντικείμενων– Τρέξιμο προγράμματος

7

Page 8: Εισαγωγή στο  OpenGL

Που βρίσκουμε το GLUT

• Win32:– http://www.xmission.com/~nate/glut.html

• Linux:– http://www.mesa3d.org/

• Resources:– http://www.opengl.org/resources/libraries/

glut.html

Tan-Chi Ho, CGGM Lab., Dep. of CSIE, NCTU

8

Page 9: Εισαγωγή στο  OpenGL

1o εργαστήριο#include <GL/glut.h>void GL_display(){

glClearColor(0.0, 0.0, 0.0, 0.0);glClear(GL_COLOR_BUFFER_BIT);glColor3f(1.0, 1.0, 1.0);glutSolidCube(1.0);glFlush();

}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();

}

9

Page 10: Εισαγωγή στο  OpenGL

1o εργαστήριοvoid main(void)

{

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);

glutCreateWindow("Sample");

glutDisplayFunc(GL_display);

glutReshapeFunc(GL_reshape);

glutMainLoop();

}

10

Page 11: Εισαγωγή στο  OpenGL

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

11

Page 12: Εισαγωγή στο  OpenGL

Links

Web– OpenGL

• http://www.opengl.org• http://oss.sgi.com/projects/ogl-sample/registry/

– Useful Sites• NeHe’s OpenGL Tutorials• NVidia’s developer web

12