OpenGL


The Presentation inside:

Slide 0

OpenGL Лекция 4 (15.10.2012)


Slide 1

void glVertexPointer( GLint size, GLenum type, GLsizei stride, void *ptr ) size определяет число координат вершины (2, 3, 4) type определяет тип данных (GL_SHORT, GL_INT, GL_FLOAT, GL_DOUBLE) stride задает смещение от координат одной вершины до координат следующей (если 0, то координаты расположены последовательно ptr - адрес, где находятся данные Массивы вершин


Slide 2

void glNormalPointer(GLenum type, GLsizei stride, void*pointer) void glColorPointer(GLintsize, GLenum type, GLsizei stride, void *pointer) void glTexCoordPointer(GLintsize, GLenum type, GLsizei stride, void *pointer) Массивы нормалей и цветов


Slide 3

void glEnableClientState(GLenum array) array = GL_VERTEX_ARRAY, GL_NORMAL_ARRAY, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY Для окончания работы с массивами void glDisableClientState(GLenum array) Начало работы с массивами


Slide 4

void glArrayElement(GLint index) Это аналогично последовательному применению команд glColor..(…), glNormal..(…), glVertex..(…) c соответствующими параметрами Рисование одной вершины


Slide 5

void glDrawArrays(GLenum mode, GLint first, GLsizei count) Рисует count примитивов, определяемых параметром mode, используя элементы из массивов с индексами от first до first+count-1. Это эквивалентно вызову команды glArrayElement() с соответствующими индексами Рисование нескольких вершин


Slide 6

void glDrawElements(GLenum mode, GLsizei count, GLenum type, void *indices) indices– это массив номеров вершин, которые надо использовать для построения примитивов, type определяет тип элементов этого массива: GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, GL_UNSIGNED_INT, а count задает их количество Рисование нескольких вершин


Slide 7

void glNewList(GLuint list, GLenum mode) void glEndList() list – номер списка (натуральное число) mode: GL_COMPILE команды записываются в список без выполнения GL_COMPILE_AND_EXECUTE команды сначала выполняются, а затем записываются в список Списки изображений


Slide 8

void glCallList(GLuint list) void glCallLists(GLsizei n, GLenum type, const GLvoid *lists) Вызывает n списков с идентификаторами из массива lists, тип элементов которого указывается в параметре type (GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_INT, GL_UNSIGNED_INT) Вызов списков


Slide 9

void glDeleteLists(GLint list, GLsizei range) Удаляет списки с идентификаторами ID из диапазона list <=ID<= list+range-1 Удаление списков


Slide 10

2D графика 2D графика


Slide 11

glMatrixMode(GL_PROJECTION); glLoadIdentity(); The gluOrtho2D function defines a 2-D orthographic projection matrix. void gluOrtho2D( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top ); gluOrtho2D


Slide 12

glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glEnable(GL_TEXTURE_2D); glBindTexture( GL_TEXTURE_2D, textures[0]); glBegin(GL_QUADS); glTexCoord2f(0, 0); glVertex2f(0, 0); glTexCoord2f(1, 0); glVertex2f(100, 0); glTexCoord2f(1, 1); glVertex2f(100, 100); glTexCoord2f(0, 1); glVertex2f(0, 100); glEnd(); glDisable(GL_TEXTURE_2D); glVertex2f


Slide 13

glColor3f(1,0,0); hWnd = FindWindowW(NULL, L"Моя вторая проженька на OpenGL"); hDC=GetDC(hWnd); BuildFont(); glRasterPos2f(x, y); glPrint("Hello World! GetTickCount: %d", GetTickCount()); KillFont(); Вывод текста


×

HTML:





Ссылка: