MaxEdu.ru

Трехмерная графика OpenGL

1. Теоретическая часть
1.1 Подключение графической библиотеки OpenGL к интерфейсу Windows
Стандарт реализации OpenGL для Windows требует выполнения некоторых настроек, связанных с особенностями операционной системы. Для того чтобы оконная система могла работать с OpenGL, необходимо провести ее инициализацию и сконфигурировать буфер фрейма.
Система OpenGL, как и любое другое приложение Windows, нуждается в ссылке на окно, на котором будет осуществляться воспроизведение. Ссылка на контекст воспроизведения – величина типа HGLRC (Handle to OpenGL Rendering Context) – связывает OpenGL с оконными системами Windows.
Для получения этого контекста OpenGL нуждается в величине типа HDC (контекст устройства) окна, на который будет осуществляться вывод.
Таким образом, чтобы начать работать с командами OpenGL, приложение должно создать один или несколько контекстов воспроизведения для потока, и сделать текущим один из них. Каждый поток при этом может иметь один и только один текущий контекст воспроизведения, который ассоциирован с определённым контекстом устройства.
Прежде чем получить контекст воспроизведения, сервер OpenGL должен получить детальные характеристики используемого оборудования. Эти характеристики хранятся в специальной структуре, тип которой TPixelFormatDescriptor (описание формата пикселей). Формат пикселей определяет число бит на пиксел, конфигурацию буфера цвета и вспомогательных буферов используемых для вывода изображения.
Для установки формата пикселей необходимо написать соответствующую процедуру, типичный пример которой приведён в приложении 2.
Для работы с контекстом воспроизведения в Win32 API реализованы следующие функции.
wglCreateContext(dc);
Функция создаёт контекст воспроизведения OpenGL, который подходит для рисования на устройстве, определённом дескриптором dc. При успешном завершении функция возвращает дескриптор созданного контекста воспроизведения OpenGL, и NULL – в случае неудачи.
Текущий контекст воспроизведения потока должен быть единственным. Следующая функция позволяет определить контекст воспроизведения для контекста устройства.
wglMakeCurrent (dc, hrc);
При завершении работы, необходимо, чтобы контекст никем не использовался. Для этого достаточно выполнить вызов функции:
wglMakeCurrent (0,0);
Завершая работу с OpenGL необходимо удалить контекст воспроизведения. Для этой цели используется функция:
wglDeleteContext(hrc);
После того как удалён контекст воспроизведения, следует удалить и ассоциированный с ним контекст устройства.
Структуру приложения, использующего OpenGL, можно изобразить в виде схемы (рис. 1)
1.2 Синтаксис команд OpenGL
Для того чтобы команды OpenGL были доступны в проекте, необходимо указать библиотеку в списке используемых модулей.
Все команды начинаются с префикса gl, затем идёт имя команды, цифра и суффикс. Цифра в окончании соответствует количеству аргументов, буква показывает требуемый тип аргумента.
Если имя команды заканчивается на v (векторная форма), то аргументом её служит указатель на массив значений.
Например: Если последние три символа в имени команды 3fv , то её аргумент – адрес массива трёх вещественных чисел.
В общем виде команду можно представить:
glCommandName {1,2,3,4} {b, s, i, f, d, ub, us, ui} {v} (arguments)

Внимание, отключите Adblock

Вы посетили наш сайт со включенным блокировщиком рекламы!
Ссылка для скачивания станет доступной сразу после отключения Adblock!

Скачать полную версию
Рефераты по информатике 1. Теоретическая часть 1.1 Подключение графической библиотеки OpenGL к интерфейсу Windows Стандарт реализации OpenGL для Windows требует выполнения
Оценок: 458 (Средняя 5 из 5)

Специалисты RetsCorp работают в digital-сфере более 7 лет. За это время мы разработали более 500+ успешных проектов. Основываясь на своем опыте и знании рынка, мы с уверенностью можем сказать, что будет работать, а что — нет. Заказывая создание лендинга для бизнеса в нашей студии, вы получаете работающие решения, необходимые именно вашему бизнесу.

Сотрудничая с нами, вы будете не клиентом, а нашим партнером. Благодаря этому мы будем развивать ваш бизнес как собственный. Мы так же как и вы заинтересованы в успехе проекта, поскольку ваша успешность будет нашей рекламой.

© 2014 - 2022 MaxEdu.ru