Render.ru
Поддержать
Man5ON
ПОДПИСАТЬСЯ
  • ПРЕДЛОЖИТЬ ПРОЕКТ
  • ДОБАВИТЬ В КОНТАКТЫ
5517Записей
91Следят
16Читает
52.1 KЗаходов

Толщина стекла в 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.: если там ваши друзья или коллеги мучаются над стеклом, отошлите этот пример. Вдруг это именно то, что они искали. Репостите, ретвиттите, полайкайте.

516
Комментарии:10
по поступлению
37
-1
4D_designer
25.09.2012 14:14
Не очень понятно, какие проблемы возникают у автора с VrayMtrl. ИМХО, абсолютно готовый материал для работы со стеклом, хоть тонким, хоть толстым, хоть матовым. Не надо придумывать никаких дополнительных сущностей, нужно просто повторить то, что есть на самом деле, и будет очень реалистичный рендер с любого ракурса. Просто нужно принимать во внимание, что бутылка(или другой объект) неидеальна по форме, структуре стекла и т.п. Именно эта неидеальность и придает реализм рендеру. Толстое донышко бутылки скорее всего не является идеальным монолитным куском стекла, поэтому нужно попробовать повторить его структуру(если это важно), чтобы добиться полного реализма. То, что предлагает сделать автор, это и есть попытка "усложнить" дно. Насколько это близко к реальности? Судя по рисунку преломления в донышке на фронтальном ракурсе - не очень, но это лучше чем "ничего".
21
0
Bogdan Vitkov
25.09.2012 18:12
ваще интересный и простой урок, потестим в реальных проектах)
210
0
Илья Черкасов (NiLArt)
25.09.2012 23:19
Бронзовый спонсор
да - рисунок на фронтальном виде - явно палит контору - но в остальном - отличный вариант. Однако согласен с предыдущим комментом - можно просто посторить в vray mlt с правильными настройками. и материал будет вести себя одинаково в любом ракурсе (но не в любом масштабе). Автору - спасибо большое.
270
0
Wasteland
28.09.2012 20:07
Я если честно тоже не понял проблем с VrayMtl. За способ спасибо.
15
0
timonza-kun
05.10.2012 21:47
для меня 10/10! как раз искал урок по вреевскому стеклу
84
0
Мо Мо (momo)
07.10.2012 17:09
Во, спасибо, красиво.
2
0
cryboot
15.11.2012 22:28
согласен с автором данного урока в том что стекло должно иметь толщину ... иначе рефракция будет отображаться не правильно
2
0
cryboot
16.11.2012 1:19
[img][/img]
2
0
cryboot
16.11.2012 1:44
[/img]http://freelance.ru/users/all3dmaya/?work=1325803 ну как то так...))))
120
0
Maxim Kadashov (korky)
11.01.2013 17:23
Что за ерунда... Зачем эта фигня в донышке... Я спокойно делал и без этого, может в вашем вирее так и нужно, я ни знаю. [img]https://dl.dropbox.com/u/11287293/other/final_01.jpg[/img]