Созданию материалов в компьютерной графике часто не придают должного внимания. Я играюсь с настройками материала до тех пор, пока объект не будет выглядеть так как мне нужно и лишь затем перехожу к текстурированию.
Перевод урока с сайта BlenderGuru
Однако, в моих бесконечных поисках реализма я пришел к выводу, что материал важнейший шаг в создании чего-то реалистичного.
Конечно же, моделирование, текстурирование, освещение и все остальное также очень важно, но материал определяет то, из чего состоит поверхность. Дает понять аудитории насколько объект мягок, липкий или гибкий. Определяет каким он является в созданном вами виртуальном мире.
Создание материалов это большая смесь математики, правил и художественной свободы, но в данной статье я сфокусируюсь на практических аспектах, а не на теории.
1. Поймите как это сделано
Изучение рефернсных изображений это лишь первый шаг, но если мы хотим пойти дальше нам необходимо узнать почему это выглядит именно так. Давайте для примера рассмотрим керамический чайник:
Похоже что на нем присутствует довольно много диффузной поверхности, а также отражений (glossy).
Конечно, на этом можно и остановится. Но если вам нужен реализм, тогда необходимо копнуть немного глубже…
«Керамика» это довольно широкая категория, которая включает в себя посуду, кирпичи, стекло и даже термостойкие плиты на космических шаттлах. Но нас беспокоить лишь чайник, поэтому мы будем говорить лишь о фарфоровом чайнике.
Фарфор получают смешиванием некоторых порошковых минералов вместе с водой, чтобы сформировать своего рода глину. Художник создает из глины определенную форму и кладет в печь при температуре около 1000 градусов Цельсия. При такой температуре удаляется влага и остается лишь затвердевший минерал.
На данный момент это выглядит как простой диффузной шейдер, но вы могли также заметить что он немного прозрачен. Это происходит из-за выбора минералов используемых для создания глины. Каолин является основным веществом, но и другие вещества, такие как кварц и полевой шпат, как правило, часто включены в смеси.
Каолин | Кварц | Полевой шпат |
Кварц почти полностью прозрачен, как стекло (на самом деле кварц используется для создания стекла), поэтому, при смешивании порошка с каолином и полевым шпатом, мы получаем немного полупрозрачный диффузный материал.
После первой обработки огнем объект покрывают эмалью, чтобы сгладить неровности и дать ему защитное глянцевое покрытие и подвергают второму этапу обработки огнем. Это и делает поверхность отражающей.
Итак, давайте переведем все это в материал Блендера…
Я всегда начинаю с диффузной составляющей. Так как фарфор в основном образуется из порошка, то его поверхность довольно грубая и лишь затем наносится эмальное покрытие. Поэтому мы создадим этот эффект увеличением шероховатости шейдера Diffuse:
А для прозрачности будем использовать подповерхностное рассеивание, так как это более точно отражает суть. Только вместо одного шейдера будем использовать два. Один с большим масштабом, чтобы сделать спад немного мягче:
Теперь он выглядит гораздо красивее и мягче :)
Если вы не видите особой разницы, вот вам для сравнения GIF. Я знаю, разница не большая, но в этом и заключается вся суть на пути к реализму. Необходимо создавать мелкие, преднамеренные улучшения.
Теперь давайте добавим отражения:
Как вы могли заметить, я использовал нод Layer Weight в качестве фактора смешивания. Это очень важно для достижения реалистичного результата…
2. Отражения Френеля
Нельзя написать статью о создании материалов по крайней мере без упоминания об отражениях Френеля. На мой взгляд это самое важное и фундаментально правило после сохранение энергии.
Так что же это? Это простое правило гласящее о том, что отражения будет больше на углах объекта, чем в остальной его части.
Слишком часто я вижу рендеры без использования отражения Френеля и сразу же чувствуется подделка.
Вот как выглядит данная функция:
Чтобы правильно его использовать, просто подключите нод Fresnel или Layer Weight в качестве фактор вашего Mix Shader:
Ноды Fresnel и Layer Weight дают на выходе одинаковые результаты. Разница лишь в том, что нод Fresnel позволяет устанавливать IOR (показатель преломления), что бывает крайне полезно, если вы знаете этот показатель для материала который создаете. А нод Layer Weight просто позволяет вам на глаз устанавливать желаемое отражение в диапазоне от 0 до 1.
3. Убедитесь, что есть что-то, что можно отразить
Я часто вижу людей пытающихся создать материал металла с использованием лампы (тип Солнце) и серого фона.
Металлы одни из наиболее отражающих материалов. У вас не получится заставить их отражать что-то, если отражать нечего.
Поэтому, будет не плохой идеей убедится, что в вашей сцене присутствует что-то, что металл сможет отразить.
Самый простой (и самый эффективный, как оказалось) способ, это использовать HDR-изображение в качестве окружающей среды. Я обычно рекомендую использовать их для освещения, потому что они дают вам точную копию освещения из реального мира (если они были сфотографированы правильно).
4. Смотрите за тем, что вы делаете
Вы когда-нибудь пытались моделировать с закрытыми глазами? Я думаю, что нет ;)
Так почему вы создаете свои материалы постоянно не проверяя, как это выглядит на модели?
Одной из первых вещей, которые я добавил в аддон Node Wrangler был Emission Viewer (предпросмотр). Суть такая же как и у нода для пост-обработки, только для шейдеров.
Кликнув по любому ноду с зажитым Ctrl + Shift вы подключите просмотр (который по сути является шейдером Emission). При наличии окна 3D-вида вы быстро сможете узнать, что получаете на выходе любого нода.
5. Используйте несколько световых предустановок
Много раз я проводил часы за настройкой материалов, но когда я импортировал результат в основной проект, я долго думал, что за ужас я сделал. А все потому, что освещение в сценах было настроено по разному.
Если вы работаете над чем-то статичным и в результате у вас будет одно изображение с одного угла — в таком случае все отлично. Но если вы работаете над объектом для анимации, кино или игры, то вам нужно убедится, что материал хорошо выглядит при различных типах освещения.
Для этого я собрал коллекцию из различных HDR-карт в отдельный blend-файл с различными настройками ламп. В процессе работы над материалом я несколько раз меняю освещение. В итоге я знаю, что мой материал будет выглядеть хорошо при любом освещении.
P.S. Если идея использования множества HDR-карт звучит устрашающе, смею вас успокоить. В июле мы выпустим новый аддон HDR library, который позволит быстро и легко переключаться между десятками HDR-карт. Следите за обновлениями;)
Вот и все! Надеюсь я не сильно утомил вас теорией и вы не забудете эти советы, когда в следующий раз приступите к созданию собственного материала :)
Спасибо за перевод.
С HDRI у меня тоже вечно возня. Разная глубина цвета делает некоторые HDRI бесполезными (сняты неправильно, как сказали в статье).
Из-за этого совершенное непрезентабельный результат может получиться.
Всё очень хорошо, благодаря Вам у меня руки к плечам потихоньку двигаются.
Намедни переводил оригинал. Но некоторые детали уловил только прочтения на русском.
Отлично, теперь точно буду видеть что я делаю. Активировал аддон Node Wrangler.
Это, под картинкой (шуточной) собаки иногда встречается кривой перевод. Можете подправить (:smile:) ?
(:wonder:)
Я ниче не понял…
Я тут подумал что было бы удобно иметь функцию Backdrop с рендером на вкладке Shader как в Compositing
И в чем ее отличие от рендера в окне 3D-вида? Отмечать чекбокс вместо списка?
Ну тем что не нужно будет держать два окна рядом, ноды будут прямо над 3D видом с рендером в реальном времени
Вот для примера наложил один скриншот на другой вырезав фон.
Ну не знаю… Мне ноды всегда мешают (:smile:)
Спасибо!!!
Кликнув по любому нодУ с зажАтым Ctrl + Shift1 вы подключите просмотр (который по сути является шейдером Emission). При наличии окна 3D-вида вы быстро сможете узнать, что получаете на выходе любого нода.
Спасибо за перевод.
С HDRI у меня тоже вечно возня. Разная глубина цвета делает некоторые HDRI бесполезными (сняты неправильно, как сказали в статье).
Из-за этого совершенное непрезентабельный результат может получиться.
Спасибо!!!
Намедни переводил оригинал. Но некоторые детали уловил только прочтения на русском.
Кликнув по любому нодУ с зажАтым Ctrl + Shift1 вы подключите просмотр (который по сути является шейдером Emission). При наличии окна 3D-вида вы быстро сможете узнать, что получаете на выходе любого нода.
Я тут подумал что было бы удобно иметь функцию Backdrop с рендером на вкладке Shader как в Compositing
И в чем ее отличие от рендера в окне 3D-вида? Отмечать чекбокс вместо списка?
Ну тем что не нужно будет держать два окна рядом, ноды будут прямо над 3D видом с рендером в реальном времени
Вот для примера наложил один скриншот на другой вырезав фон.
Ну не знаю… Мне ноды всегда мешают (:smile:)
Это, под картинкой (шуточной) собаки иногда встречается кривой перевод. Можете подправить (:smile:) ?
(:wonder:)
Я ниче не понял…
Отлично, теперь точно буду видеть что я делаю. Активировал аддон Node Wrangler.