Обзор методов расчета освещенности сцены в рамках решения проблемы реалистической визуализации трехмерных объектов

2/2011 вестник 2/20L]_МГСУ

ОБЗОР МЕТОДОВ РАСЧЕТА ОСВЕЩЕННОСТИ СЦЕНЫ В РАМКАХ РЕШЕНИЯ ПРОБЛЕМЫ РЕАЛИСТИЧЕСКОЙ ВИЗУАЛИЗАЦИИ ТРЕХМЕРНЫХ ОБЬЕКТОВ

REVIEW OF METHODS OF CALCULATING SCENE ILLUMINATION IN ADDRESSING THE PROBLEM OF REALISTIC VISUALIZATION THREE-DIMENSIONAL OBJECTS

И.М. Лебедева

I.M. Lebedeva

ГОУ ВПО МГСУ

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

This article gives a brief description of the local and global mathematical models of scene illumination, and describes methods of direct and reverse ray tracing in the calculation of illumination.

Одним из главных направлений развития компьютерной графики является построение фотореалистичных изображений смоделированных на компьютере объектов.

Рисунок (Рис.1), представленные в статье Баяковского Ю.М. и Галактионова В.А. «Современные проблемы компьютерной (машинной) графики», отображает реальные возможности графических программ в деле визуализации трехмерных моделей.

Рис. 1

Технология трассировки лучей позволяет получать высококачественные реалистичные изображения. На рисунке отчетливо видны блики, яркие полосы и пятна. Это так называемый эффект каустики. Он образуется в результате многократного отражения и преломления света от криволинейных прозрачных поверхностей.

Известно, что световая энергия, падающая на поверхность, может быть частично поглощена, отражена или пропущена.

Свойства отраженного света зависят от строения, направления и формы источника света, от ориентации и свойств поверхности. Отраженный от объекта свет может быть диффузным или зеркальным. Диффузно отраженный свет рассеивается равномерно по всем направлениям. При зеркальном отражении (specular) падающий свет отражается от поверхности и излучается вдоль некоторого направления. Это порождает блики, за счет которых поверхность выглядит блестящей. Количество отраженного света имеет наибольшую величину в направлении абсолютного зеркального отражения. При других углах количество отраженного света быстро убывает.

Существуют различные математические модели освещенности сцены, на основе которых строится изображение трехмерных объектов.

Локальная модель освещенности (Local Illumination) рассматривает свет только от явных точечных источников света и позволяет рассчитать лишь освещенность самих объектов без учета светового взаимодействия объектов сцены между собой. Изображение формируется в результате отражения падающего на поверхность света.

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

В реалистической визуализации особое место занимает задача генерации теней в изображении трехмерной сцены.

Для расчета теней применяют методы прямой и обратной трассировки лучей.

Классический ray tracing, или метод трассировки лучей, был предложен Артуром Аппелем (Arthur Appel) в 1968 году, и только через 12 лет вычислительные системы достигли такого развития, что этот алгоритм смог широко применяться в практических приложениях.

Метод заключается в том, что от момента испускания лучей источником света до момента попадания в камеру, траектории лучей отслеживаются, и рассчитываются взаимодействия лучей с лежащими на траекториях объектами. Как уже говорилось ранее, луч может быть поглощен, диффузно или зеркально отражен или, в случае прозрачности некоторых объектов, преломлен.

Таким образом, ray tracing - первый метод расчета глобального освещения, рассматривающий освещение, затенение (расчет тени), многократные отражения и преломления.

Игорь Сиваков в статье «Как компьютер рассчитывает изображения. Технологии программного рендеринга.» описывает два основных вида метода трассировки лучей: прямой - forward ray tracing, и обратный - backward ray tracing.

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

2/2011

ВЕСТНИК

МГСУ

щью локальной модели освещения. Если объект не является отражающим или прозрачным, то траектория луча на этой точке обрывается. Если же поверхность объекта обладает свойством отражения (reflection) или преломления (refraction), то из точки строятся новые лучи, направления которых совершенно точно определяются законами отражения и преломления.

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

Метод обратной трассировки лучей, или backward ray tracing, основывается на построении лучей не от источника, а, наоборот, от наблюдателя через плоскость экрана вглубь сцены.

Лучи выходят из точки положения наблюдателя (камеры) и проходят через каждый пиксель видового экрана. Таким образом, количество первичных лучей известно -это общее количество пикселей видового окна. Известно и направление каждого луча.

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

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

Рис. 2. Прямая трассировка лучей

Рис. 3. Обратная трассировка лучей

точника света. Если точка обращена в противоположную сторону от источника света или закрыта другим непрозрачным объектом, освещенность от такого источника не рассчитывается, точка находится в тени. В случае затеняющего прозрачного объекта интенсивность освещения уменьшается в соответствии со степенью прозрачности. Если точка закрыта от освещения всеми источниками сцены, ей присваивается фоновый ambient цвет. В противном случае точка освещена, интенсивность и цвет освещения рассчитываются при помощи локальной модели освещенности (diffuse + specular) как сумма освещенностей от всех источников, для которых эта точка не закрыта другими объектами. Этот тип луча получил название shadow ray (иногда его еще называют illumination ray) - теневой луч. Если поверхность объекта не является отражающей и непрозрачна, теневой луч - единственный тип лучей который строится, траектория первичного луча обрывается (заканчивается), и дальнейшие расчеты не выполняются. Рассчитанный цвет (освещенности или тени) присваивается тому пикселю видового окна, через который проходит соответствующий первичный луч.

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

Третий луч строится, если поверхность объекта прозрачна, и носит название transparency ray, т.е. луч прозрачности.

Таким образом, для каждого первичного луча можно построить древовидную структуру (Рис.4).

Рис. 4.

Дерево лучей для метода обратной трассировки, где ТЛ - теневой луч, ОЛ - отраженный луч, ПЛ - преломленный луч.

Естественным завершением трассировки лучей является выход всех испущенных вторичных лучей за пределы видимой области и их рассеяние на чисто диффузных объектах.

Алгоритм обратной трассировки лучей стал основным способом расчетов освещенности методом трассировки лучей. Метод трассировки лучей - первый метод рас-

Mçrc-mnn смта

2/2011 ВЕСТНИК _2/2011_МГСУ

чета глобальной освещенности, учитывающий взаимное влияние объектов сцены друг на друга.

Литература:

1.Баяковский Ю. М., Галактионов В.А. «Современные проблемы компьютерной (машинной) графики»

2. Сиваков Игорь. «Как компьютер рассчитывает изображения. Технологии программного рендеринга.» 2004г

3. http://stratum.ac.ru/textbooks/kgrafic/lection23.html

Literature:

1.Bayakovskii Yu. M., Galaktionov V.A. «Sovremennye problemy komp'yutemoi (mashinnoi) grafiki»

2. Sivakov Igor'. «Kak komp'yuter rasschityvaet izobrajeniya. Tehnologii programmnogo renderinga.» 2004g

3. http://stratum.ac.ru/textbooks/kgrafic/lection23.html

Ключевые слова: освещенность, трехмерные модели, тени, отражение, поглощение, источник света, трассировка, траектория.

Keywords: light exposure, three-dimensional models, shadows, reflection, absorption, light source, trace, trajectory.

e-mail автор: grafika@mgsu.ru.

Рецензент: кандидат технических наук, доцент, ГИП ООО «МАККОМ-СТРОИ», Крутиков Юрий Александрович