glClear (GL_COLOR_BUFFER_BIT); С помощью функции glClear можно также задать исходные значения других буферов, существующих в OpenGL. Это буфер накопления, в котором хранится информация о смешанных цветах, буфер глубины, содержащий значения глубины (расстояния до точки наблюдения) объектов сцены, и буфер шаблонов, в котором хранятся данные, определяющие границы рисунка.
В индексном цветовом режиме для задания цвета окна изображения используется следующая функция (вместо glClearColor).
glClearlndex (index); После выполнения этой команды цвету фона присваивается цвет, который записан в позиции index в цветовой таблице. При вызове функции glClear (GL_COLOR_BUFFER_BIT) окно изображается именно в этом цвете.
В библиотеке OpenGL существует множество других функций для задания цвета, подходящих для выполнения различных заданий: изменения цветовых моделей, настройки эффектов освещения сцены, описания эффектов камеры и закрашивания поверхностей объекта. Другие цветовые функции будут рассматриваться при изучении каждого отдельного процесса в системе компьютерной графики. На данный момент ограничимся обсуждением только тех функций, которые связаны со спецификацией цвета графических примитивов.
АТРИБУТЫ ТОЧЕК
В основном задаются два атрибута точек: цвет и размер. В системе состояний цвет и размер изображаемой точки определяются по текущим значениям, записанным в списке атрибутов. Цветовые компоненты задаются с помощью значений RGB или как элементы цветовой таблицы. В растровых системах размер точки - это целое число, кратное размеру пикселя, так что большие точки изображаются как квадратные блоки пикселей.
Рис. 4.2. Растровая линия двойной ширины с тангенсом угла наклона \т\ <
1,0, построенная с помощью вертикальных полос пикселей АТРИБУТЫ ПРЯМЫХ ЛИНИЙ
Прямолинейный отрезок можно изобразить с помощью трех основных атрибутов: цвета, ширины и стиля. Цвет прямой линии, как правило, задается с помощью той же самой функции, что и для всех графических примитивов, тогда как ширина и стиль линии выбираются с помощью отдельных функций для прямых линий. Кроме того, прямые линии могут изображаться с использованием таких дополнительных эффектов, как мазки кисти или пера.
ШИРИНА ЛИНИИ
Реализация опций ширины линии зависит от возможностей устройства вывода. Широкие линии на мониторе могут изображаться как расположенные рядом друг с другом параллельные линии, тогда как для перьевого графопостроителя изображение широкой линии требует смены пера.
В растровых системах линии стандартной ширины строятся путем использования одного пикселя в каждой точке выборки, как в алгоритме Брезенхема (Вгевеп-Ьат). Более широкие линии изображаются кратными положительному целому числу стандартных линий, для чего добавляются дополнительные пиксели на соседних параллельных линиях. Если тангенс угла наклона прямой линии меньше или равен 1, стандартную процедуру для построения прямой линии можно изменить таким образом, чтобы широкие линии строились как изображения небольших вертикальных полос пикселей в каждом столбце (координата х) на траектории прямой. Количество пикселей, которое следует изображать в каждом столбце, устанавливается равным целому значению ширины линии. На рис. 4.2 изображена прямая линия с двойной шириной, полученная путем построения параллельной линии, проходящей над траекторией заданной линии. В каждой точке выборки х находится соответствующее значение координаты у и изображаются пиксели с экранными координатами (х, у) и (х, у + 1). Можно построить прямую линию с шириной 3 или больше, попеременно откладывая пиксели сверху и снизу от траектории прямой с единичной шириной.