ВУЗ:
Составители:
Рубрика:
9
стант.
Маска Буфер для очистки
GL_COLOR_BUFFER_BIT
Буфер изображения
GL_DEPTH_BUFFER_BIT
Z-буфер
GL_ACCUM_BUFFER_BIT
Аккумулирующий бу-
ер
GL_STENCIL_BUFFER_BI
T
Буфер трафарета
Например, в программах для очистки буферов цвета и глубины
(Z-буфера) вызывают команду:
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
Установка положения наблюдателя (виртуальной камеры) и преобразования трехмерных объектов
(масштабирование, поворот, и т.д.) выполняются с помощью задания соответствующих матриц преоб-
разования. Подробное рассмотрение преобразований объектов и настройки положения виртуальной ка-
меры будут приведены далее.
Для улучшения качества визуализации динамически изменяющихся сцен рекомендуется использо-
вать двойную буферизацию, т.е. необходимо обеспечить перезапись внеэкранного буфера в основной.
Для этого предусмотрена команда BOOL SwapBuffers (HDC hDC);
Следует помнить, что после выполнения команды SwapBuffers(hDC) содержание внеэкранного бу-
фера не определено.
5 ВЫВОД ГЕОМЕТРИЧЕСКИХ ПРИМИТИВОВ
Геометрические объекты в OpenGL задаются вершинами. Вершина – это точка в пространстве гра-
фической сцены. Для ее определения в библиотеке OpenGL реализована специальная команда:
void glVertex [2 3 4][s i f d][v](type coord)
Вызов любой команды glVertex* всегда определяется четырьмя однородными координатами: x, y, z
и w. Если вызывается команда glVertex3*, то вершина задается x, y и z координатами, при этом w полага-
ется равной 1. Для двумерного случая z – 0, а w – 1.
Вершины в OpenGL объединяются в графические примитивы. Это может быть фигура, такая как
точка, линия, многоугольник, прямоугольник пикселей или битовый массив. Каждая вершина примити-
ва имеет ассоциированные с ней данные.
• Текущий цвет – который вместе с условиями освещения определяет результирующий цвет вер-
шины. Цвет задается, например, командой glColor* для режима RGBA.
• Текущая позиция растра – используется для определения координат растра при работе с пиксе-
лями и битовыми массивами. Задается командой glRasterPoos*.
• Текущая нормаль – определяет вектор нормали, ассоциированный с отдельной вершиной, и зада-
ет ориентацию содержащей ее поверхности в трехмерном пространстве. Для указания нормали исполь-
зуется команда glNormal*.
• Текущие координаты текстуры – определяют местоположение вершины в карте текстуры. Зада-
ется командой glTexCoord*.
5.1 Задание цветовых атрибутов геометрическим объектам
В OpenGL предусмотрено два режима установки цвета:
− задание индекса в палитру цветов;
− указание непосредственных значений базовых составляющих R (красный), G (зеленный), B
(синий) цвета.
В настоящее время графические приложения в основном используют покомпонентное (RGBA) за-
дание цвета. Благодаря этому максимально используются возможности High Color и True Color режимов
графических карт. В данных режимах в полной мере моделируется реалистическая графика (работа с
Страницы
- « первая
- ‹ предыдущая
- …
- 5
- 6
- 7
- 8
- 9
- …
- следующая ›
- последняя »