Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемВсеволод Яхримов
1 Лекция 1
3 OpenGL («Open Graphics Library») - программный интерфейс (API) к графической плате. Утвержден в 1992 году Основой стандарта стала библиотека IRIS GL, разработанная фирмой Silicon Graphics Inc. Основная функция: интерактивная визуализация трехмерных моделей
4 Mark Segal, Kurt Akeley. The OpenGL Graphics System: A Specification Ю.М. Баяковский, А.В. Игнатенко, А.И. Фролов. ГРАФИЧЕСКАЯ БИБЛИОТЕКА OpenGL OpenGL Programming Guide (Addison- Wesley Publishing Company) («Red Book») Э. Эйнджел. Интерактивная компьютерная графика
5 Вывод цветных изображений высокого качества, составленных из геометрических примитивов Расчет освещения от нескольких источников света Текстурирование Удаление невидимых поверхностей Анимация, трехмерные преобразования
6 Создание окон Работа с устройствами ввода (мышь, клавиатура) Высокоуровневое описание трехмерных объектов
7 AGL, GLX, WGL Связь между OpenGL и оконной системой GLU (OpenGL Utility Library) Часть OpenGL NURBS, tessellators, quadric shapes, etc GLUT (OpenGL Utility Tookkit) Переносимый оконный API Неофициальная часть OpenGL
8 Application program X, Win32, Mac OS GL Software and/or hardware GLU GLX, AGL or WGL GLUT OpenGL motif widget or similar
9 Стабильность Надежность и переносимость Легкость применения Скорость выхода дополнений
11 Клиент-сервер Клиент – приложение Сервер - OpenGL Конвейер Данные обрабатываются последовательно, в несколько этапов. Набор команд Использует аппаратуру, если возможно Конечный автомат Значение переменных – состояние Команды изменяют состояние
13 Дисплейные списки Вычислители Вершинные операции Сборка примитивов
14 Пиксельные операции Сборка текстур Растеризация Пофрагментные операции
16 Задать контекст рисования Определить константные атрибуты и свойства (источники света, текстуры и т.д.) На каждом кадре: Очистить окно Задать положение камеры Для каждого объекта Определить преобразование Передать атрибуты Передать геометрию
17 Заголовочные файлы Библиотеки (для windows) opengl32.lib glu32.lib glut32.lib
18 Инициализация GLUT glutInit(&argc, argv); Установка режима окна glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB); Установки окна glutInitWindowSize (250, 250); glutInitWindowPosition (100, 100); Создание окна glutCreateWindow (Super Application);
19 Определение функции отрисовки glutDisplayFunc(display); Определение функции изменения размеров окна glutReshapeFunc(reshape); Определение обработчиков устройств ввода glutMouseFunc(mouse); glutKeyboardFunc(keyboard); Вход в главный цикл glutMainLoop();
20 Вьюпорт glViewport() Матрица проекции glMatrixMode(GL_PROJECTION) glOrtho() glFrustum() gluPerspective() Видовая матрица glMatrixMode(GL_MODELVIEW)
21 Установка значений очистки glClear[Buf] Очистка glClear(GL_[BUF]_BUFFER_BIT); Colorцвета Depthглубины Accumнакопителя Stencilтрафарета Переключение буферов glutSwapBuffers();
23 glEnable(состояние) GL_ALPHA_TEST GL_LIGHTING etc glDisable(состояние) Функции, устанавливающие параметры
24 glIsEnabled(состояние) Функции, опрашивающие состояние glGetBooleanv glGetIntegerv etc Функции, сохраняющие и восстанавливающие состояние glPushAttrib / glPushClientAttrib glPopAttrib / glPopClientAttrib
25 enum glGetError(void) GL_NO_ERROR – ошибок нет с предыдущего вызова GL_INVALID_ENUM, GL_INVALID_VALUE – значение вне допустимого диапазона GL_INVALID_OPERATION – недопустимая операция в текущем состоянии GL_STACK_OVERFLOW, GL_STACK_UNDERFLOW – переполнение/опустошение стека GL_TABLE_TOO_LARGE – определенная таблица слишком велика GL_OUT_OF_MEMORY – нехватка памяти Команда, вызвавшая ошибку обычно игнорируется ВАЖНО: проводить опрос ошибок на каждом шаге рисования
26 glBegin(тип примитива) Координаты Цвет Вторичный цвет Нормаль Текстурные координаты (несколько) Координаты тумана glEnd()
27 Точки GL_POINTS Линии GL_LINES GL_LINE_STRIP GL_LINE_LOOP Треугольники GL_TRIANGLES GL_TRIANGLE_STRIP GL_TRIANGLE_FAN Четырехугольники GL_QUADS GL_QUAD_STRIP Многоугольники GL_POLYGON
28 glVertex3fv ( v ) 2 – (x, y) 3 – (x, y, z) 4 – (x, y, z, w) Число компонент B – byte ub – unsigned byte s – short us – unsigned short I – int ui – unsigned int f – float d – double Тип данных «v» отсутствует для скалярных форм glVertex2f(x,y) Вектор
29 Координаты (glVertex) Цвет (glColor / glIndex) Вторичный цвет (glSecondaryColor) Нормаль (glNormal) Текстурные координаты (glTexCoord) Координаты тумана (glFogCoord)
30 glPointSiz e glPointSiz e GL_POINT_SMOOTH glLineWidth GL_LINE_SMOOTH glPolygonMode
31 Примитивы GLUT glutSolidCube(size) Примитивы GLU Квадрики Nurbs-поверхности
32 Заранее подготовленная последовательность команд Сгенерировать список (glGenLists) glNewList(uint список, enum режим) команды glEndList(void) Вызов (glCallList / glCallLists) Удалить список (glDeleteLists)
33 Использование массивов Определить массивы glVertexPointer glNormalPointer etc Разрешить использование вершинных массивов (glEnableClientState(enum array))
34 Использовать один элемент (glArrayElement) Нарисовать набор примитивов (glDrawArrays) Использовать массив индексов (glDrawElements) Использовать вложенные массивы (glInterleavedArray)
35 Очистить кадр Изменить положение объектов в зависимости от показаний таймера Нарисовать сцену Переключить буфер
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.