ВУЗ:
Составители:
Рубрика:
7
1 ИНТЕРФЕЙС OPENGL
Интерфейс OpenGL реализован в виде набора команд (функций и процедур), которые позволяют
программисту организовывать высококачественную визуализацию 2D или 3D графику.
Все базовые функции OpenGL хранятся в основной библиотеке GL
и нескольких дополнительных, например, библиотеке утилит – GLU (GL Utility).
Функции библиотеки GLU определены через базовые функции GL. Благодаря GLU можно легко
строить такие геометрических примитивы, как куб, шар, цилиндр, диск. Кроме этого, GLU предоставля-
ет функции построения сплайнов, реализацию дополнительных операций над матрицами и т.п.
OpenGL не включает в себя никакие специальные команды для работы с окнами или вводом ин-
формации от пользователя. Программист должен самостоятельно организовывать связь своих графиче-
ских приложений с оконными подсистемами и обеспечивать взаимодействия с функциями пользовате-
ля. Для облегчения подобной работы программиста были созданы специальные библиотеки для обеспе-
чения часто используемых функций взаимодействия с пользователем и для отображения информации с
помощью оконной подсистемы. Наиболее популярной является библиотека GLUT (GL Utility Toolkit).
Официально GLUT не входит в OpenGL, но ее легко найти в Интернете. Более того, имеются свои реа-
лизации GLUT для различных операционных систем.
2 СТРУКТУРА ГРАФИЧЕСКОЙ ПРОГРАММЫ OPENGL ДЛЯ СРЕДЫ WINDOWS
ДЛЯ РАБОТЫ OPENGL В ОПЕРАЦИОННОЙ СИСТЕМЕ WINDOWS ИСПОЛЬЗУЕТСЯ
ПОНЯТИЕ КОНТЕКСТА ВОСПРОИЗВЕДЕНИЯ (RENDERING CONTEXT), КОТОРЫЙ СВЯ-
ЗЫВАЕТ OPENGL С ОКОННОЙ СИСТЕМОЙ WINDOWS.
ПРИЛОЖЕНИЕ, РАБОТАЮЩЕЕ С КОМАНДАМИ OPENGL, ДОЛЖНО СОЗДАТЬ ОДНО
ИЛИ НЕСКОЛЬКО КОНТЕКСТОВ ВОСПРОИЗВЕДЕНИЯ ДЛЯ ПОТОКА И СДЕЛАТЬ ОДНО
ИЗ НИХ ТЕКУЩИМ. ПЕРЕД СОЗДАНИЕМ КОНТЕКСТА ВОСПРОИЗВЕДЕНИЯ НЕОБХО-
ДИМО УСТАНОВИТЬ ДЛЯ НЕГО ФОРМАТ ПИКСЕЛЕЙ, КОТОРЫЙ ОПРЕДЕЛЯЕТ НЕКО-
ТОРЫЕ СВОЙСТВА ПОВЕРХНОСТИ РИСОВАНИЯ OPENGL. ТАКИМ ОБРАЗОМ, ПРО-
ГРАММЫ, ИСПОЛЬЗУЮЩИЕ OPENGL, СТРОЯТСЯ ПО СЛЕДУЮЩЕЙ СХЕМЕ.
1 СОЗДАЕМ ОКНО ПРОГРАММЫ. ЗДЕСЬ НЕОБХОДИМО ОБЯЗАТЕЛЬНО УСТАНОВИТЬ
СТИЛЬ ОКНА ФУНКЦИЕЙ CREATEWINDOW ЧЕРЕЗ ПАРАМЕТРЫ WS_CLIPCHILDREN И
WS_CLIPSIBLINGS.
2 ПОСЛЕ УСПЕШНОГО СОЗДАНИЯ ОКНА НЕОБХОДИМО ОТКРЫТЬ КОНТЕКСТ
ОТОБРАЖЕНИЯ (RENDERING CONTEXT). РЕКОМЕНДУЕТСЯ ОТКРЫВАТЬ КОНТЕКСТ
ОТОБРАЖЕНИЯ ВО ВРЕМЯ ОБРАБОТКИ СООБЩЕНИЯ WM_CREATE.
3 ДЛЯ СОЗДАНИЯ КОНТЕКСТА ОТОБРАЖЕНИЯ НЕОБХОДИМО ПРЕДВАРИТЕЛЬНО
ОТКРЫТЬ КОНТЕКСТ ОКНА (HDC), НАПРИМЕР, ФУНКЦИЕЙ GETDC.
4 ПРИ НАСТРОЙКЕ ХАРАКТЕРИСТИК КОНТЕКСТА ОТОБРАЖЕНИЯ УСТАНОВИТЬ
СООТВЕТСТВУЮЩИЕ ЗНАЧЕНИЯ ПОЛЕЙ СТРУКТУРЫ PIXELFORMATDESCRIPTOR И
ВЫЗВАТЬ ФУНКЦИЮ CHOOSEPIXELFORMAT. ЭТА ФУНКЦИЯ ВОЗВРАЩАЕТ НОМЕР
ПИКСЕЛЬНОГО ФОРМАТА, КОТОРЫЙ МОЖНО ИСПОЛЬЗОВАТЬ.
5 ВЫЗОВОМ ФУНКЦИИ SETPIXELFORMAT ЗАДАТЬ СООТВЕТСТВУЮЩИЙ ПИК-
СЕЛЬНЫЙ ФОРМАТ В КОНТЕКСТЕ HDC.
6 НА ОСНОВАНИИ КОНТЕКСТА HDC СОЗДАТЬ КОНТЕКСТ ОТОБРАЖЕНИЯ (HRC)
ВЫЗОВОМ ФУНКЦИИ WGLCREATECONTEXT. ДЛЯ ПЕРЕАДРЕСАЦИИ ТЕКУЩЕГО ВЫ-
ВОДА ГРАФИКИ OPENGL В HRC НЕОБХОДИМО ВЫЗЫВАТЬ ФУНКЦИЮ WGLMAKECUR-
RENT.
7 В ТЕКУЩИЙ КОНТЕКСТ ОТОБРАЖЕНИЯ ВЫВЕСТИ ГРАФИЧЕСКИЕ ОБЪЕКТЫ,
ИСПОЛЬЗУЯ ФУНКЦИИ ДЛЯ РАБОТЫ С ГРАФИЧЕСКИМИ ПРИМИТИВАМИ OPENGL.
ГРАФИЧЕСКИЙ ВЫВОД МОЖНО ОСУЩЕСТВЛЯТЬ ВО ВРЕМЯ ОБРАБОТКИ СООБЩЕ-
НИЯ WM_PAINT ИЛИ ДРУГИХ НЕОБХОДИМЫХ СООБЩЕНИЙ WINDOWS.
8 ПЕРЕД ЗАКРЫТИЕМ ОКНА ПРОГРАММЫ НЕОБХОДИМО ЗАКРЫТЬ ВСЕ ОТКРЫ-
ТЫЕ КОНТЕКСТЫ ОТОБРАЖЕНИЯ. ТАКЖЕ СЛЕДУЕТ ЗАКРЫТЬ ВСЕ КОНТЕКСТЫ ГРА-
ФИЧЕСКОГО УСТРОЙСТВА. ЭТО МОЖНО СДЕЛАТЬ В ХОДЕ ОБРАБОТКИ СООБЩЕНИЙ
WM_DESTROY ВЫЗОВОМ ФУНКЦИЙ RELEASEDC И WGLDELETECONTEXT.
Страницы
- « первая
- ‹ предыдущая
- …
- 3
- 4
- 5
- 6
- 7
- …
- следующая ›
- последняя »