Чтобы упростить обработку описания сцены, в массив вершин кроме значений координат можно ввести некоторую дополнительную информацию. В этом массиве можно указать коды цвета и другие параметры объекта. Доступ к ним можно получить с помощью функции glDrawElements. Для повышения эффективности можно также объединять различные массивы, а способы реализации таких массивов параметров рассматриваются в следующей главе.
Рис. 3.60. Изображение пиксельного массива размером гг на ш в координатной области экрана
ПРИМИТИВЫ ПИКСЕЛЬНЫХ МАССИВОВ
Кроме прямых линий, многоугольников, окружностей и других примитивов, в графических пакетах часто встречаются стандартные процедуры изображения фигур, которые задаются с помощью прямоугольного массива кодов цвета. Прямоугольную сетку узора можно получить путем оцифровки (сканирования) фотографии или другого рисунка или создания фигуры с помощью графической программы. После этого каждый код цвета в массиве переносится в одно или несколько положений пикселей на экране. Как отмечалось в главе 2, пиксельный массив кодов цвета обычно называют пиксельным отображением.
К параметрам пиксельного массива можно отнести ссылки на матрицу цветов, размер матрицы, а также положение и размер области экрана, занятой кодами цвета. На рис. 3.60 приведен пример отображения пиксельного массива цветов в одной области экрана.
Еще один тип пиксельного массива получается, когда каждому элементу матрицы присваивается значение 0 или 1. В таком случае массив является просто битовым отображением, которое иногда еще называют маской, подразумевая, что пикселю присваивается (или с ним объединяется) или не присваивается предопределенный цвет.
ФУНКЦИИ ПИКСЕЛЬНЫХ МАССИВОВ В OpenGL
В пакете OpenGL есть две функции, которые можно использовать для описания фигур или узоров, заданных с помощью прямоугольного массива. Одна из них - битовое отображение, а другая - пиксельное отображение. Кроме того, в пакете OpenGL предлагается несколько стандартных процедур сохранения, копирования и различных операций с массивами пиксельных значений.
ФУНКЦИЯ БИТОВОГО ОТОБРАЖЕНИЯ OpenGL
Массив бинарного узора задается с помощью функции
glBitmap (width, height, хО, уО, xOffset, yOffset, bitShape); Параметры width и height в этой функции обозначают соответственно количество столбцов и строк в массиве bitShape. Каждому элементу массива bitShape присваивается значение 1 или 0. Значение 1 указывает на то, что соответствующий пиксель следует изображать заранее заданным цветом. В противном случае битовое отображение не изменяет значения пикселя. (Как вариант, значение 1 может указывать, что заданный цвет следует наложить на код цвета, записанный в буфере кадра в этом положении.) Параметры хО и уО определяют точку, которую следует рассматривать как “начало координат” прямоугольного массива. Эта точка отсчета задается относительно левого нижнего угла массива bitShape, а значения хО и уО могут быть как положительными, так и отрицательными. Кроме того, нужно задать положение буфера кадра, с которого начинается наложение данного узора. Это положение называется текущим растровым положением, и изображение битового массива заключается в переносе его начала координат (хО, уО) в текущее растровое положение. После изображения битового массива значения, присваиваемые параметрам xOffset и yOffset, используются как смещения координат для обновления текущего растрового положения в буфере кадра.