Виталий Сокол (vitaly_sokol) wrote,
Виталий Сокол
vitaly_sokol

Category:

Blender.Cycles. How to get shadows and reflections pass. Как получить отдельные отражения и тени.

В блэндере конечно.

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

Тени-то оно даёт в финальной картинке, а вот SHADOW PASS выдаёт полностью чёрное окно (в случае, если на WORLD Environment назначен чёрный цвет).
Также, оказалось, что "вычленить", то есть получить от объёктов отдельно отражения тоже не самый очевидный вариант. Отдельным пассом я имею в виду.

Зачем это нужно?
Ну, одному перцу на стоковом форуме понадобилось рендерить объекты на белом фоне с отражениями (нонсенс, ага), а мне как обычно стало любопытно найти выход.

И оказывается есть очень презабавное решение.

--------------

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

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


01.jpg

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

02.jpg

--------------
После чего я сделал клон объекта для получения теней и назначил на него материал студии - просто белый "Diffuse"
также вынес в отдельный рендер-слой

03.jpg

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

04.jpg

***
Теперь самый жир.
Для получения отражений в отдельным слое просто используется чёрно-белая маска, полученная при рендере светящегося материала и пропускается через нод "ALPHA OVER".
В результате имеем отдельную картинку с отражениями которая отличается от того, что мы получаем в пассах GLOSSY direct/indirect.
Соответственно теперь мы можем баловаться с яркостью-контрастом и управлять отражением отдельно.

06.jpg

***
Потребность в этих свистоплясках возникла потому,
что ни рендер-пассы ни нод ligth-path, в случае использования нестандартных блэндерских "лампочек", не помогут получить отражения и тени по отдельности.

Осталось получить тень.

Для получения тени берётся картинка с пустой студией и картинка с отрендерёными тенями и пропускается это через нод COLOR > MIX => в режиме SUBTRACT - вычитание.
В результате остаются лишь только отбрасываемые тени, которые потом миксуются в общей картинке с помощью режима наложения MULTIPLY.
Способ удобен тем, что все последующие манипуляции и доводки можно проводить в привычной среде, например в фотошопе.

---

Вот результат с отражением и тенью на белом фоне:

05.jpg

***

На сегодня актуальной является версия blender 2.77

Напоминаю, что программа blender - Это замечательный БЕСПЛАТНЫЙ пакет для 3д-моделирования, анимации, визуализации,
создания спецэффектов и ещё очень-очень много полезного там.

Тестовый файл-сцену можно скачать тут.

Приятных мыслей.
Tags: 3d, blender, software
Subscribe

Posts from This Journal “blender” Tag

  • 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 

  • 3 comments