ФУНКЦИИ АТРИБУТОВ ЗАКРАШЕННЫХ ФИГУР В OpenGL

В OpenGL существуют только процедуры закрашивания выпуклых многоугольников. Изображения закрашенных выпуклых многоугольников получаются за четыре действия.

1. Определяется узор заполнения.

2. Вызывается процедура закрашивания многоугольника.

3. Активизируется возможность OpenGL закрашивания многоугольников.

4. Описываются многоугольники, подлежащие закрашиванию.

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

Кроме описания узора заполнения внутренней области многоугольника существует множество других альтернатив. Одна из них - изобразить пустой многоугольник, если не применяется никакого внутреннего узора или цвета, а изображаются только одни стороны. Пустой многоугольник - это то же самое, что и изображение примитива замкнутой ломаной линии. Еще одна возможность - изобразить вершины многоугольника, не закрашивая внутреннюю область и не отображая стороны. Кроме того, можно задавать различные атрибуты для передней и задней сторон закрашенной многоугольной области.

ФУНКЦИЯ ШАБЛОНА ЗАПОЛНЕНИЯ В OpenGL

По умолчанию выпуклый многоугольник изображается как фигура, закрашенная одним цветом, при этом используются текущие цветовые настройки. В пакете OpenGL для того, чтобы заполнить многоугольник каким-либо узором, используется маска размером 32 на 32 бит. Значение маски 1 указывает на то, что соответствующему

Клеточное заполнение окна изображения с помощью шаблона узора при закрашивании двух выпуклых многоугольников пикселю следует присвоить текущее значение цвета, а 0 оставляет значение, которое записано в буфере кадра для этого положения, неизменным. Шаблон узора заполнения задается побайтово без указания знака с использованием типа данных OpenGL GLubyte, точно так же, как для функции glBitmap. Битовый узор описывается шестнадцатеричными значениями, например, так.

Рис. 4.31. Клеточное заполнение окна изображения с помощью шаблона узора при закрашивании двух выпуклых многоугольников пикселю следует присвоить текущее значение цвета, а 0 оставляет значение, которое записано в буфере кадра для этого положения, неизменным. Шаблон узора заполнения задается побайтово без указания знака с использованием типа данных OpenGL GLubyte, точно так же, как для функции glBitmap. Битовый узор описывается шестнадцатеричными значениями, например, так.

GLubyte fillPattern [ ] =

Oxff, 0x00, Oxff, 0x00, … ; Биты должны задаваться, начиная с нижней строки шаблона в направлении снизу вверх до самой верхней (32) строки узора, как для функции bitShape (раздел 3.19). Этот шаблон многократно повторяется на всей площади окна изображения, начиная с нижнего левого угла окна, а в тех местах, где шаблон налагается на заданные многоугольники, они заполняются этим узором (рис. 4.31).

Задав маску, можно установить ее как текущий шаблон узора заполнения:

glPolygonStipple (fillPattern); Перед тем как задавать вершины многоугольников, которые подлежат заполнению текущим узором, нужно вызвать процедуры закрашивания. Это делается с помощью оператора

glEnable (GL_POLYGON_STIPPLE); Аналогично заполнение узором отменяется с помощью оператора

glDisable (GL_POLYGON_STIPPLE); На рис. 4.32 показано, как для заполнения параллелограмма можно использовать шаблон размером 3 на 3 бит, повторяющийся в виде маски размером 32 на 32 бит.


⇐ вернуться назад | | далее ⇒