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

Ambient Occlusion - 2-я часть

Рассмотрим некоторые параметры АО, компонента материала Arch & Design.

ao_2.1

Чекбокс Ambient Occlusion, Включает технологию АО и опции по её настройке.

Samples (Сэмплы) Количество сэмплов (лучей), испускаемых для расчёта и создания AO. Чем большее количество сэмплов задано, тем более плавным получается эффект затенения и рефлексов, однако, время рендеринга возрастает. Чем меньше – тем затенение и рефлексы более зернистые и шумные, но рендеринг более быстрый. Значения в диапазоне 16-64 достаточны для использования в большинстве случаев.

Max Distance(Максимальное расстояние) Определяет максимальный радиус в пределах которого анализируются объекты, вокруг вычисляемой точки.

Низкие значения дистанции позволяют ограничить эффект AO в пределах мелких деталей геометрии (щели, детали отделки, декоративные элементы) и производить более быстрый расчёт.  

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

Следующий рисунок показывает разницу между маленьким значением параметра Max Distance и большим:

ao_2.2   ao_2.3

Max Distance 5 см (слева);  250 см (справа)

Shadow Color (Цвет затенения) Эта опция работает по-разному в зависимости от того, включен учёт цвета материала (Use Color From Other Materials) или нет.

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

ao_2.4
Shadow Color: белый (слева);  чёрный (в центре); красный (справа);
Эффект АО наиболее заметен в обведённых в рамки частях объектов

Когда включён учёт цвета материала (Use Color From Other Materials), опция Shadow Color работает по-другому. В этом случае опция определяет уровень воздействия цвета материала на традиционный АО. Если установлен  чёрный цвет, то цвет материала максимально воздействует на затенение, а если белый, то вообще не воздействует.

Custom/Global Ambient Light Color (Выборочный/Глобальный цвет обтекающего света) Эта опция похожа на предыдущую, но позволяет установить оттенок светлых участков поверхности (обтекающий свет), для которой рассчитывается АО, а не тёмных (затенение).

Она может брать цвет из глобальных настроек окружения (окно Environment and Effects) или устанавливать свой собственный.
 
ao_2.5


Custom Ambient Light: чёрный (по умолчанию) (слева);
красный (в центре); зелёный (слева)

Но в своей повседневной практике я не использую АО в составе материала Arch & Design. Вместо этого я использую отдельный слой-элемент АО, созданный вручную на основе самостоятельного шейдера Ambient/Reflective Occlusion.

Для начала рассмотрим некоторые его параметры по-отдельности.

ao_2.6

Samples (Сэмплы) Количество испускаемых лучей в сцену, больше количество сэмплов делает результат менее шумным. На гладкость результата также влияет параметр Spread.


ao_2.7-1  ao_2.7-2  ao_2.7-3 


Параметр Spread 0.75; Samples 4 (слева); 16 (в центре); 64 (справа)

Bright (Светлый) Цвет, при котором отсутствую какие-либо окклюзии (рядом не расположены объекты). Чаще всего применяется белый цвет.

Dark (Тёмный) Цвет, который рассчитывается в результате максимальных окклюзий. Чаще всего применяется чёрный цвет. Уровень от максимальных окклюзий до их отсутствия определяется градиентной шкалой от установленного Bright цвета, до Dark цвета.

Spread (Распространение) определяет величину угла полусферы точки поверхности, через который посылаются сэмплирующие лучи. Изменяется в пределах от 0.0 до 1.0. Значение 0 определяет только одно направление испускания (один луч) – вдоль нормали к точке или вдоль направления отражения. Значение 1 определяет полусферу (угловая величина 180 градусов). Чем больше угловая величина сферического сегмента, тем больше потребуется лучей для получения гладкого результата. С другой стороны, чем уже конус лучей, тем более резко очерченными будут теневые переходы и наоборот. Использование целой полусферы дает интересный эффект самозатенения поверхностей, что с успехом может быть использовано для "проявления" рельефа поверхности или подчёркивания деталей объектов, содержащих многочисленные мелкие элементы.

ao_2.8-1  ao_2.8-2  ao_2.8-3   


Параметр Spread 0.1 (слева); 0.3 (в центре); 0.9 (справа)

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

Falloff (Спад) Имеет значение лишь тогда, когда параметр Max distance (Максимальное расстояние) не равен нулю и определяет скорость с которой затухает АО в зависимости от расстояния. Технически эта функция применяется к нормализированной дистанции от нуля до значения Max distance (Максимальное расстояние). Значение по умолчанию 1.0 – линейное затухание. Это значение делает затухание более быстрым. Практически это означает, что меньшие значения окклюзии сильнее сказываются на коротких расстояниях (в маленьких уголках и трещинах) и меньше на больших расстояниях.


ao_2.9-1  ao_2.9-2  ao_2.9-3

Параметры Spread 0,5 Max distance 100 cm;  Falloff 0.5 (слева); 1.0 (в центре); 2 (справа)

Incl./Excl. Object ID (Neg. = Exclude) (Вкл./Выкл. Объекты по ID) Определяет ID объектов, которые будет включен или выключен из расчета АО. Установка параметра в 0 не дает никакого эффекта. Значение больше нуля означает, что только те объекты, номера ID которых совпадает с этим параметром, будут включены в расчет окклюзии. Отрицательное значение, наоборот, исключает.

Немного практики, как я применяю технологию АО в своей работе.

Во-первых, я использую State Sets для записи меняющихся параметров, один раз записав состояния параметров, я переключаюсь между ними, чтобы повторно не проводить одни и те же операции. Подробнее о State Sets могу написать отдельный пост, если кому интересно, пишите в комментариях. Итак. Поехали. После того как работа над сценой закончена, у вас уже есть готовые рендеры (за исключением слоя-элемента Ambient Occlusion), и вы ходите немного придать «живости» работе.

Начинаем работать с построением слоя-элемента АО.

1)       Отключаем все источники света в сцене (даже систему дневного освещения).

ao_2.10

2)       Выключаем фотографическую экспозицию. Вообще никакая экспозиция не нужна. Меняем фон Environment на простой белый цвет (чтобы проще было делать постобработку).

ao_2.11

3)       Отключаем все алгоритмы глобального освещения.

ao_2.12

4)       Задаю параметру Material Override шейдер АО (как его подготовить описано ниже).

ao_2.13

5)       Задаю путь для сохранения файла и нажимаю кнопу Render.

Подробнее по пункту 4).

Я собрал шейдер АО для интерьерных сцен, который устраивает меня в 95% случаев и добавил его в библиотеку. Шейдер выглядит так:

ao_2.14

Сам шейдер не является готовым материалом. Для простоты использования я взял за основу Стандартный материал, которому в слот самосвечения назначен шейдер АО. Иногда бывает, что некоторые нормали объектов вывернуты, чтобы не отлавливать подобные объекты, я назначил стандартный материал в качестве «переднего и заднего» для составного Двухстороннего материала.

Настройки непосредственно самого шейдера предельно просты и ясны. Количество сэмплов 32, иногда повышаю до 64, но это пиковое значение для некоторых сцен (в которых очень много мелких деталей). Тёмные и светлые тона оставляю по умолчанию. Параметр Spread 0.75. По вкусу можно поднять его до 0,9. Ну и самое главное, параметр Max distance. Его меняю в зависимости от масштаба сцены, а вернее высоты потолка, использую примерное соотношение 2/3. Т.е. 200 см значение дистанции АО, 300 высота потолка.

После рендеринга слоя-элемента АО я миксую его в Photoshop с остальными слоями (Glare, DOF и т.д.). В первую очередь стираю АО в областях явного прямого света от искусственных источников, само собой предварительно создав слой маску для АО, чтобы можно было вернуть исходный слой. А уже поверх АО накладываются эффекты Glare.

ao_2.15

Всё что я описал выше, это лишь то, что я использую в своей повседневной работе. Я не претендую на то, что я делаю всё правильно и «по-честному и по правилам», я лишь делаю так, как мне удобно, и получающийся результат удовлетворяет меня, моего основного работодателя и моих клиентов. Если вы нашли ошибки в описании параметров, или знаете более интересную формулировку, плиз, делитесь своими мыслями в комментариях :)

Существует куда больше различных, более сложных и более качественных приёмов. Вот один из примеров:

ao_2.16

http://mentalraytips.blogspot.ru/2008/11/joy-of-little-ambience.html

http://www.render.ru/books/show_book.php?book_id=664

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 

  • 13 comments