Андрей Плаксин (scionik) wrote,
Андрей Плаксин
scionik

Category:

Ambient Occlusion - 1-я часть

Ambient Occlusion (далее AO) – это алгоритм, техника, имитирующая эффект теневого рефлекса

на близкорасположенных объектах. Или проще говоря – имитирует полутона глобального освещения.
Очень часто физическая корректность освещения не всегда является первостепенной задачей в
архитектурной визуализации (особенно когда сжатые сроки на исполнение проекта), в большинстве
случаев достаточно сымитировать правдоподобность глобального освещения. Такую
правдоподобность техника АО вполне способна передать. Вполне допускается использование АО
вместе с фотонными картами, вместо метода расчёта глобального освещения Final Gather.
Хотя такой результат будет совершенно далек от физической корректности, он сможет передать
вполне убедительное и гладкое глобальное освещение (больше художественную подачу изображения,
вместо фотореалистичности). Стоит отметить, что время рендеринга будет гораздо меньше
по сравнению со временем рендеринга, используя FG + Photon Map.
Как мы уже знаем, в реальной жизни освещенный объект имеет несколько компонентов
освещённости. Для примера рассмотрим цилиндр на горизонтальной поверхности, рисунок ниже.

ao_1.0

Цилиндр имеет локальные компоненты (которые не зависят от других объектов): свет, тень,
полутень. Однако есть еще и глобальная компонента – теневой рефлекс (он зависит от того,
какими другими объектами окружен цилиндр, в нашем примере, плоскость, на котором лежит цилиндр).
Отражённый свет появляется тогда, когда на теневую сторону цилиндра падает отражённый
свет от других объектов (опять же, от плоскости, на которой лежит цилиндр). Таким образом,
основная часть теневой стороны становится светлее (рефлексирует), в то время, как её
границы остаются тёмными (так как на них падает меньше отраженного света в силу их близкого
расположения относительно друг друга). Получившиеся более тёмные границы света и тени
это и есть эффект Ambient Occlusion.
Ambient Occlusion чаще всего рассчитывается путём построения лучей, исходящих из точки
поверхности во всех направлениях, с последующей их проверкой на пересечение с другими
объектами. Например, возьмём одну точку (А) в сцене. Испустим равномерно во всех
направлениях 8 лучей из этой точки (получим некое полусферическое распределение
лучей вокруг нормали плоскости).
Некоторые из лучей не пересекают цилиндр. А некоторые попадают на цилиндр, т.е. эти
лучи имеют препятствие. Итак, было испущено всего 8 лучей, 3 луча имеют преграждение,
таким образом для точки А получаем соотношение 3/8 перекрытых лучей.

ao_1.1

Далее, возьмём вторую точку (B), которая расположена ближе к цилиндру. Снова испускаем
8 лучей, но уже из точки В, как и с первой точкой (А) некоторые лучи идут без каких-либо
препятствий, оставшиеся 4 попадают на цилиндр (соответственно они имеют преграду).
Для точки В получаем соотношение 4/4 перекрытых лучей.

ao_1.2

Подобные расчёты выполняются для каждой точки. К общему числу лучей в сцене берётся
соотношение лучей, встречающих преграждение. Чем ближе это значение к нулю, тем меньше
преграждений, чем ближе к единице, тем больше преграждений. В вышеописанном примере,
точка А будет ближе к белому участку схематической поверхности пола (менее перекрыта),
точка В будет ближе к чёрному (более перекрыта).

ao_1.3

В результате точки, окружённые большим количеством геометрии, отображаются как более
тёмные, а точки с малым количеством геометрии в видимой полусфере – светлыми.

ao_1.4

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

ao_1.5   ao_1.6

Без применения AO (слева); с применением AO (справа)

Технология АО имеет собственный шейдер, помимо этого он является компонентом шейдера
Arch & Design Материала. Практическое применение и пользовательские настойки шейдеров для
создания эффекта Ambient Occlusion будут описаны позже, во второй части статьи.
Tags: lectures, mental ray
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 8 comments