понедельник, 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 комментариев:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    ОтветитьУдалить
  15. спасибо большое Макс! сработало!

    ОтветитьУдалить
  16. 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

    ОтветитьУдалить
  17. Этот комментарий был удален администратором блога.

    ОтветитьУдалить