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

Apr 03, 2016 14:47

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

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

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

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

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

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

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

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




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




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




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




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




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

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

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

---

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




***

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

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

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

Приятных мыслей.

software, blender, 3d

Previous post Next post
Up