OpenGL Лекция 4 (15.10.2012). void glVertexPointer( GLint size, GLenum type, GLsizei stride, void *ptr ) size определяет число координат вершины (2, 3,

Презентация:



Advertisements
Похожие презентации
OpenGL Лекция 2.. Преобразование координат Преобразования координат.
Advertisements

Компьютерная визуализация Лекция 3 СПбГУ ИТМО 2004.
Лекция 1 OpenGL («Open Graphics Library») - программный интерфейс (API) к графической плате. Утвержден в 1992 году Основой стандарта стала библиотека IRIS.
OpenGL и аппаратные ускорители графики Астана 2004 Лекция 8.
Фильтрация текстур. Пиксельные операции. Астана 2004 Лекция 11.
Освещение и текстурирование в OpenGL Астана 2004 Лекция 10.
OpenGL Лекция 3. Построение тени Проективные тени Объемные тени Карты теней Мягкие тени.
Лекция 2 ( ). * Для задания различных преобразований объектов сцены в OpenGL используются операции над матрицами, при этом различают три типа.
Лекция 1 ( ). Основные возможности OpenGL Набор базовых примитивов: точки, линии, многоугольники и т.п. Видовые и координатные преобразования.
GPU vs. CPU 302 млн. транзисторов Тактовая частота 550Mhz 1GB 850x2 MHz памяти 380 млн. транзисторов Тактовая частота 650Mhz 1GB 775x2 MHz памяти Тактовая.
Астана ( )Компьютерная графика (лекция 6) ВВЕДЕНИЕ В OPENGL Лекция 6.
Современные графические технологии ИЛИ OpenGL и графические процессоры 2010.
Компьютерная графика. Лекция 4 Алгоритмы формирования изображений. Основы OpenGL.
{ OpenGL Лекция 3 ( ). float ambient[4] = {0.0, 0.0, 0.0, 1.0}; glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambient); // RGBA интенсивность всей сцены.
Лекция 9 Функции. Массивы-параметры функции Передача массива в функцию Пример: void array_enter(int a[], int size) { int i; for (i = 0; i < size; i++)
Лекция 5 ( ). GLfloat fogColor[4]= {0.5f, 0.5f, 0.5f, 1.0f}; // Цвет тумана glClearColor(0.5f,0.5f,0.5f,1.0f); // Будем очищать экран, заполняя.
УКАЗАТЕЛИ. Переменная - это именованная область памяти с заданным типом. [=значение]; int a; //Переменная типа integer с именем a int b=2;// Переменная.
Стадник Е. Г. ФПМИ НГТУ Руководитель: Городничев М.А., м.н.с. ИВМ и МГ СО РАН.
Алгоритмы растровой графики. Представление отрезка в растровой форме.
Основы информатики Лекция. Массивы. Указатели. Заикин Олег Сергеевич
Транксрипт:

OpenGL Лекция 4 ( )

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 - адрес, где находятся данные Массивы вершин

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) Массивы нормалей и цветов

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

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

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

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

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

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) Вызов списков

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

2D графика

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

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

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