понедельник, 9 мая 2011 г.

Визуализация методом Ambient Occlusion

Из Википедии: Ambient occlusion (AO) — модель затенения, используемая в трёхмерной графике и позволяющая добавить реалистичности изображению за счёт вычисления интенсивности света, доходящего до точки поверхности. В отличие от локальных методов, как например затенение по Фонгу, ambient occlusion является глобальным методом, то есть значение яркости каждой точки объекта зависит от других объектов сцены. В принципе, это достаточно отдалённо напоминаетглобальное освещение.
Теперь рассмотрим как это делается в Maya с помощью mental ray.
1.Создаем простую модель ступенек. Это для того чтобы оценить степень затенения, зависящую от расстояния поверхностей.
 




2. Переносим объект в отдельный рендер слой. Выделяем объект и нажимаем кнопку «Assign new layer and assign selected objects» (на рисунке обведено краснм).




3. Назначаем на слой Overrides material: Overrides->Crate New Materials Override->Surface Shader. После этого модель «Ступеньки» станет сплошной черной.






Переходим в Attribute Editor. Перед нами сразу будет Surface Shader. Назначаем на Out Color > mb_fast_occlusion (такая нода будет отображаться, если у Вас включен визуализатор mentalray). Нода mb_fast_occlusion находится в разделе textures (mental ray).




5. Настраиваем ноду mb_fast_occlusion. В строке Samples  я обычно ставлю 256, это определяет шум затенения. Чем больше цифра, тем мягче и менее шумовая тень.




6. Далее настроим визуализацию: В окне Render Settings –> вкладка Ambient Occlusion Поставьте галочку возле Ambient Occlusion, настройки по умолчанию сойдут. Число Rays определяет качество затенения.




7. Пробуем визуализировать. У нас получилось затенение в области между ближними поверхностями, и чем ближе поверхности тем больше затенение. Сам принцип теперь ясен. Можно попробовать увеличить число Rays в render Settings или в ноде mb_fast_occlusion строке Samples. Еще не забудте поставить Antialiasing в render settings -> Quality -> Anti-Aliasing Quality -> Raytrace/Scanline Quality -> Max Sample Level  поставьте 2 как минимум.








AO полезен для оценки геометрии, для создания слоев под композ, и вообще смотрится не плохо :) .



18 комментариев:

Светлана Узких комментирует...

Максим, спасибо большое за урок! Сейчас я опробую твой урок на своём солдатике ))

Maxym Tanygyn комментирует...

Всегда пожалуйста :)

Светлана Узких комментирует...

В 4 -ом пункте я бы добавила что mb_fast_occlusion находится в разделе textures (mental ray), а то я его долго искала...

Maxym Tanygyn комментирует...

Ок, добавлю. Вобще там есть поик по названию можно найти за 1 секунду. В самом верху есть поле для ввода текста.

Светлана Узких комментирует...

а то что они у тебя на белом фоне (твои модели) это ты вырезал их в фотошопе?

про поиск буду знать. спасибо! :)

Maxym Tanygyn комментирует...

Визуализация AO позволяет сохранить Alpha, если на заднем плане нету объектов. Я сохраняю в формате PNG.

Светлана Узких комментирует...

Ага! Проверила, работает... так же как и с PSD форматом :)
Интересно, а если бы в сцене были источники света направленные на модель, AO бы просчитывался с учётом дополнительного света?

Максим, а можно я твой урок с ссылкой на твой блог на форуме выложу? . Очень полезная и классная штука это-- АО :)

Maxym Tanygyn комментирует...

Да пожалуйста делай ссылочку.
По поводу источников света. Они не влияют на рендер. Есть другие шейдера, создающие эффект AO с учетом источника света. Но там больше не свет нужен а вектор направленности света. С такими я еще не работал, а в туторе каком то видел.

Светлана Узких комментирует...

Вообщем, спасибо за урок! Мне очень понравился! Сейчас в своём блоге выложу результат! :) и на форуме :)

Анонимный комментирует...

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

Анонимный комментирует...

В смысле в ментале кроме фас оклюжн есть еще и эмбиент

Maxym Tanygyn комментирует...

Что вы имеете ввиду запекать? Вы хотите получить текстуру теней?

Maxym Tanygyn комментирует...

Обратитесь ко мне в скайп подскажу что знаю: mnexus_

Макс комментирует...

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

Maxym Tanygyn комментирует...

Спасибо :) .
В настройках ноды mib_fast_occlusion есть параметр Max Distance. Попробуйте поставить 1 и постепенно увеличивайте.

Макс комментирует...

спасибо большое Макс! сработало!

Анонимный комментирует...

The poѕt has proven helpful to me personallу. It’s quіte іnfοrmatiνe and
you reallу аre obvіously really knowledgеablе in this areа.

Yοu get οpenеd up our eye for you to numerous opinion of this
ѕubject along with intriguing and ѕound аrtiсlеѕ.



Feel free tο visit mу blоg
poѕt; Klonopin

Анонимный комментирует...
Этот комментарий был удален администратором блога.

Отправить комментарий

Контакты: gmail mnexuss@gmail.com | ICQ 201882385 | Add me to Skype