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

В пакете OpenGL значения атрибутов примитивов записываются как переменные состояния. Настройка определенного атрибута действует на все задаваемые после этого примитивы, до тех пор, пока значение атрибута не будет изменено. Изменение значения атрибута не влияет на примитивы, изображенные до этого. В пакете OpenGL цвета можно задавать, используя либо цветовой режим RGB (RGBA), либо режим цветовых индексов, при котором для выбора цвета используются элементы цветовой таблицы. Кроме того, значения цветов смешиваются с помощью цветового компонента альфа. Также можно задавать значения цветовых массивов, которые используются вместе с массивами вершин. Кроме того, в пакете OpenGL предлагаются функции для выбора размера точки, ширины линии, стиля линии и стиля заполне ния выпуклого многоугольника, а также функции для изображения многоугольных закрашенных фигур в виде набора сторон или набора точек-вершин. Можно также удалить с рисунка выделенные стороны многоугольника и поменять местами переднюю и заднюю поверхности. В пакете OpenGL можно создавать текстовые строки, используя для этого битовые массивы или стандартные процедуры, существующие в библиотеке GLUT. К числу атрибутов, которые можно присваивать изображениям символов библиотеки GLUT, относятся цвет, шрифт, размер, расстояние между символами, ширина и тип линии. В библиотеке OpenGL предлагаются также функции для устранения контурных неровностей изображения результирующих примитивов. Кроме того, чтобы узнать текущее значение переменной состояния, можно воспользоваться функциями запроса, а также узнать все значения группы атрибутов OpenGL с помощью одной функции.

В табл. 4.2 приведены все функции атрибутов OpenGL, которые рассматривались в этой главе. Кроме того, в таблице есть несколько функций, имеющих непосредственное отношение к атрибутам.


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