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

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

Корневая библиотека OpenGL содержит обширный набор функций настройки точечных источников света, задания различных параметров в базовой модели освещения, выбора метода визуализации поверхностей, активизации процедур полутоновой аппроксимации и применения к объектам узоров из массива текстуры. Резюме по данным функциям освещения, визуализации поверхностей и наложения текстуры предлагается в табл. 10.2 и 10.3.

ТАБЛИЦА 10.2. Резюме по функциям OpenGL освещения и визуализации поверхностей

Функция

Описание

glLight

Задает значение свойства источника света

glEnable (lightName)

Активизирует источник света

glLightModel

Задет значения параметра глобального освещения

glMaterial

Задает значение параметра оптической поверхности

glFog

Задает значение параметра атмосферы; активизирует атмосферные эффекты при вызове функции д1ЕпаЬ1е

glColor4f (R, G, В, A)

Задает альфа-фактор для поверхности, чтобы сымитировать прозрачность. В функции glBlendFunc альфа-фактор источника устанавливается равным СЬ_БКС_АЬРНА, а альфа-фактор цели - равным СЬ_ОЫЕ_М I N11 Э_3 ЯС_АЬ PH А

glShadeModel

Задает использование визуализации поверхностей по Гуро или одноцветную визуализацию поверхностей

glNormal3

Задает вектор нормали к поверхности

glEnable (GL_NORMALIZE)

Устанавливает, что нормали к поверхностям должны преобразовываться в единичные векторы

glEnableClientState

Активизирует процедуры обработки для массива

(GL_NORMAL_ARRAY)

векторов нормали к поверхности

glNormalPointer

Создает список векторов нормали к поверхности, которые будут использоваться с массивом вершин

glEnable (GL_DITHER)

Активизирует операции применения визуализации поверхностей как шаблоны полутоновой аппроксимации

Функция

Описание

glTexImagelD

Задает параметры для настройки одномерного текстурного пространства. (Активизирует текстурирование при вызове команды glEnable)

glTexImage2D

Задает параметры для настройки двухмерного текстурного пространства

glTexImage3D

Задает параметры для настройки трехмерного текстурного пространства

glTexParameter

Задает параметры для процедур наложения текстуры

glTexCoord

Задает значение для текстурной координаты в одно-, двух-, трех- или четырехмерном текстурном пространстве

glTexEnv

Задает параметры текстурной среды, такие как цвет смешивания для наложения текстуры

glCopyTexImage

Копирует блок цветов пикселей из буфера кадров для использования в качестве текстурного узора.

glCopyTexSublmage

Копирует блок цветов пикселей из буфера кадров для использования в качестве текстурного подузора

glTexCoordPointer

Задает текстурные координаты в списке, который соотносится со списком вершин

glBindTexture

Присваивает текстурному узору имя; также используется для активизации именованного узора

glDeleteTextures

Удаляет список именованных текстур

glGenTextures

Автоматически генерирует имена текстур

gllsTexture

Команда запроса, позволяющая определить, существует ли именованная текстура

glTexSublmage

Создает текстурный подузор

gluBuild*

Автоматическая генерация сокращенных текстурных узо

Mipmaps

ров для одномерного, двухмерного или трехмерного текстурного пространства

gluBuild*

Автоматическая генерация сокращенных текстурных узо

MipmapLevels

ров заданного уровня для одно-, двух- или трехмерного текстурного пространства

glGetTexLevel

Запрос к системе, позволяющий определить, поддержива

Parameter

ется ли указанное значение параметра текстуры

gluQuadricTexture

Активизирует или деактивизирует текстурирование для поверхности второго порядка

ЛИТЕРАТУРА

Базовые модели освещения и методы визуализации поверхностей рассмотрены в работах [3, 23, 24, 104, 135, 240, 257]. Алгоритмы реализации моделей освещения и методов визуализации представлены в сборниках [8, 122, 151, 176, 244, 297]. Методы построения полутоновых изображений изложены в статье [368]. Дальнейшую информацию по упорядоченному шуму, диффузии ошибок и точечной диффузии можно почерпнуть из книги [178].


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