Толщина стекла в Vray
Я давно искал способ, как сделать реалистичное стекло в трехмерке. В большинстве случаев уроки дублируют друг друга, советы идентичны, как и сомнительный результат. В основом шейдеры имеют ряд недостатков, которые проявляются в нужный момент. Например, при создании стекла.
Одно дело, когда стеклянный объект — маленький, неважный и едва видимый элемент сцены, а другое дело, когда он — центральный объект. Общая для всех рендеров проблема — толщина стекла. Прогуглите любые уроки, и вы поймете о чем я.
Сегодня я наткнулся на вопрос одного пользователя, который спрашивал, как повторить толщину стекла, например, парфюма или бутылки. Стандартный шейдер ментал рея (dialectric) или вирея (vraymtrl) справляется только в случае тонких бокалов. А если попытаться нацепить его на бутылку, то она будет выглядеть нереалистично.
Короче, вот совершенно простой способ, как добиться (и регулировать) толщину стекла без усложнения геометрии, танцев с шейдерами, утилитами, выкручиванием значений и бог знает чего. Нашел я этот способ во время экспериментов. Использовал Maya+Vray, но, думаю, это сработает и в других редакторах, с другими рендерами (если попробуете и получится, то дайте знать).
1. Делаем стандартную модель бутылки. С внутренней стенкой, со всеми изгибами, как положено. Не забудьте склеить все швы. Сцена у меня абсолютно простая: два источника света, два рефлектора, камера (с выставленным аттрибутом physical) и фон. В качестве освещения я еще использую image based lighting с вот этим изображением.
Сцена выглядит так:
2. Для разнообразия эксперимента я сделал граненую крышку для бутылки. На крышку и бутылку нацепил практически идентичные шейдеры (в файле со сценой разберетесь). Я ничего не мудрил с виреевским шейдером стекла, кроме как нацепил на него fresnel shader. А так, он похож на любой шейдер, который рекомендуют в сети.
Делаем тестовый рендер. Я сразу поставил высокие значения, чтобы сразу была видна разница.
Вот у нас есть почти реалистичное стекло. Но ему не хватает толщины и правильного преломления в толстом днище. К тому же крышка вовсе сгладилась, и не ясно, что она граненая.
Если вы внимательно изучите, как выглядят пустые бутылки на светлом фоне, то увидите, что в сгибах появляются темные преломления, отражения и прочая физика. Сейчас у нас это едва заметно по краям днища. А так, скукота.
3. В режиме полигонов выделяем все внутренние полигоны бутылки аж до горлышка, а затем экструдим вовнутрь на разумное значение. Чем больше количество таких экструдов, тем толще будет в итоге выглядеть стекло.
4. Чтобы решить проблемы с днищем, просто дублируем его чашу, небольшой офсет, экструд. В итоге мы имеем копию кусочка дна. Его мы размещаем примерно в центре.
Появились темные контуры. Надо проверить нормали после экструда внутренней стенки бутылки. Они оказались неверными. Идем в меню, жмем reverse normals. Сразу скажу, что у сдублированного кусочка днища нормали как раз должны быть флипнуты вовнутрь. Рендер.
Дно стало хорошим. У стекла появилась толщина, особенно в районе прямых линий. Теперь осталось разобраться с крышкой.
5. С ней примерно та же процедура: выделяем faces и экструдим их вовнутрь. Чиним какие-то швы, кривые вершины... Готово.
Теперь вы можете крутить разные настройки (преломление, отражение, диффузию). Тут уже вопрос личного предпочтения в фотореализме. Задача все равно решена — стекло выглядит плотным.
Удобство этого метода заключается еще в том, что, как ни крути эту бутылку, куда ни двигай в пределах сцены, ее свойства не изменятся. Попробуйте сделать то же самое с бокалами из уроков в сети. Минимум вы получите совершенно другие свойства материала, если чуть-чуть отодвините или повернете объект. А это означает, что свойства материала зависят практически от всего: масштаб, расположение, точки света, камера.
В моем примере бутылку можно крутить как угодно.
Файл со сценой, исходными и эдванснутными моделями, шейдерами...
И HDR-файл для освещения сцены
Tip: чтобы усилить работу материала и общий эффект, то повысьте значение IOR примерно до 1,9. Ничего страшного, если это не по таблице в физике.
p.s.: если там ваши друзья или коллеги мучаются над стеклом, отошлите этот пример. Вдруг это именно то, что они искали. Репостите, ретвиттите, полайкайте.