Как сделать стекло в блендере

Обновлено: 05.07.2024

В реальной жизни материалы, из которых состоят предметы, очень сложные – они могут отражать, рассеивать, поглощать и пропускать свет в различных сочетаниях и пропорциях. Blender позволяет достаточно гибко имитировать сложные многокомпонентные материалы при помощи опций отражения, преломления и подповерхностного рассеивания, а также возможности задавать несколько текстур на материал. Рассмотрим все это подробнее.

Откройте свойства материала и обратите внимание на вкладку Transparency. В Blender, по сути, три вида прозрачности: по маске, по буферу глубины (Z Transparency) и расчет прозрачности трассировкой лучей (Raytrace). Последний режим наиболее приближен к реальности и позволяет контролировать преломление световых лучей, проходящих через объект.

IOR (index of refraction) – показатель преломления. Он зависит от свойств вещества и длины волны излучения. Вот показатели преломления для некоторых прозрачных веществ:

  • Воздух - 1.0002926
  • Вода - 1.332986
  • Лед - 1.31
  • Стекло - 1.52
  • Хрусталь - 2.0
  • Алмаз - 2.419

Важным параметром также является коэффициент Френеля (Fresnel), который описывает соотношение отраженной и преломленной энергии на границе двух сред с разными показателями преломления. Например, если смотреть на воду под большим углом (сверху), то можно увидеть дно. А если смотреть под малым углом (например, с берега озера на горизонт), то дна уже не видно – водная поверхность будет отражать небо. Этот коэффициент можно подобрать экспериметально.

В Blender можно сочетать преломление как с диффузным рассеиванием, так и с зеркальным отражением. На скриншоте приведен простой пример подобного сочетания с настройками для зеленого стекла.

Материал стекла

Рассмотрим парочку простых, но эффектных приемов, с помощью которых можно сделать стекло поинтереснее.

Мутное стекло. Лучи света, проходя сквозь поверхность объекта, рассеиваются - вместо полной прозрачности, мы получаем эффект размытия, который можно наблюдать в мутном стекле, промасленной бумаге и других подобных материалах. Для управления степенью размытия прозрачности используется параметр Gloss (значение 0 соответствует максимальному размытию, 1 – отсутствию размытия). Аналогичный параметр есть и для отражения.

Мутное стекло

Рельефное стекло. Трехмерный объект смотрится гораздо реалистичнее, если его поверхность не гладкая, а рельефная. В компьютерной графике существуют разные способы достижения этого рельефа. Можно, конечно, сделать невероятно детализированную модель с миллионами полигонов. Однако в Blender есть возможность сделать объект рельефным без необходимости увеличивать для этого детализацию модели.

Рельефное стекло

Для рассчета освещенности полигонов используются векторы, перпендикулярные поверхности – так называемые нормали (Normal). В простейшем случае интенсивность освещенности в заданной точке поверхности задается углом между нормалью в этой точке и лучом света. То есть, если направление нормали противоположно лучу света, точка считается максимально освещенной, и наоборот. Нормали обычно задаются для каждой вершины, но при помощи наложения текстуры можно задать нормаль для каждой точки поверхности – эта техника называется Normal Mapping. В Blender очень легко добавить материалу рельефную текстуру – просто создайте любую процедурную текстуру, а затем на вкладке Influence включите параметр Normal, при этом отключив Color (рельефная текстура не должна влиять на цвет материала). На скриншоте приведен пример рельефного стекла с текстурой типа Stucci.

Привет, меня зовут Сергей Мингулин, я — 3D-художник и преподаватель курса по созданию стилизованных 3D-персонажей в XYZ. Посмотреть на мои проекты можно здесь. Это — первая статья из цикла о визуализации в Blender.

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

Substance Painter — программа для текстурирования 3D-моделей или создания текстур/текстурных карт для них. По ходу работы мы будем импортировать текстуры отсюда.

Node Wrangler — аддон, который содержит разнообразные инструменты для улучшения и ускорения воркфлоу, основанного на нодах (node-based workflow).

Активируется он следующим образом:

После того как портировали нужную модель в Blender, находим вверху вкладку Editor Type и выбираем Shader Editor. Нас перебрасывает в меню.

Material Editor имеет 2 режима:

Здесь есть две настройки:

Surface (поверхность) — сюда можем подключить обычный background (включен по умолчанию) и поменять его цвет или же добавить HDRI текстуру (удалить нод background и добавить Environment texture через Shift+A ). Я остановился на обычном бэкграунде.

2. Редактирование объектов, с которым мы и будем сегодня работать.

Важно: не забываем активировать Node Wrangler.

Выделяем базовый шейдер и нажимаем Shift+Control+T. Комбинация откроет нам меню выбора файлов. Выделяем нужные нам текстуры и подгружаем.

Если по умолчанию в названии файла текстуры есть приписка с её назначением, прога сама привязывает соответствующие файлы к параметрам.

Редактировать эти приписки (или суффиксы/тэги) можно в меню:

Если значение определилось неверно, изменить привязку можно самостоятельно, соединив мышкой output нода и input шейдера.

Кроме того, текстуру можно так же вручную перетянуть из окна в программу и прилинковать.

Стоит оговориться, что речь пойдёт о модели хайполи с высокой плотностью сетки, которая призвана проиллюстрировать навык дизайнера в рамках портфолио.

В связи с этим, геометрия позволяет нам не использовать отдельную карту под Subsurface scattering, а просто выставить реальное значение рассеивания в соответствующем параметре, исходя из габаритов модели.

Metallic, Transmission и Transmission Roughness мы не используем на теле вообще.

Дальнейший процесс можно разделить условно на 2 этапа: работу над материалами для тела и зубов и настройку иллициев.

Для настройки материала тела мы используем обычный PBR-материал с Metal-Rough workflow или пайплайном. Карты экспортируем из упомянутого в начале статьи Substance Painter.

Наш материал состоит из следующих нодов: Albedo или Base Color, Roughness и Normal Map. Последний используется для мелкой детализации.

Что нужно знать при работе с материалом?

Текстурные карты, которые не передают цвет материала, должны быть в линейном пространстве. Поэтому в Color Space текстур мы ставим:

sRGB — для Albedo

Non color, либо Liner — для Roughness, Normal и т.д. в зависимости от вашей сборки

Эту конструкцию мы затем подключаем к Normal в Principled BSDF. Roughness (чёрно-белая карта, не требует манипуляций с каналами) подключается в соответствующий слот шейдера, так же как и Albedo (Base Color).

Вот так выгладит готовая сборка материала:

В случае с зубами настройки всё те же. Также флипаем при необходимости зелёный канал в нормалке.

Рассмотрим, как распределить свечение по всей длине иллициев, — от наибольшей интенсивности к наименьшей.

нижнего слоя — овалы внутри, дающие основное свечение на концах;

среднего слоя — так же светящиеся трубки;

верхнего слоя — внешняя оболочка иллициев.


Сегодня мы рассмотрим несколько простых, но эффектных приемов, дополняющих эту технологию.

Мутное стекло. Данный метод напомниает подповерхностное рассеивание (Sub-Surface Scattering, SSS) и во многих ситуациях позволяет достичь похожего результата при гораздо меньших ресурсозатратах. Лучи света, проходя сквозь поверхность объекта, рассеиваются. В нашем случае, вместо полной прозрачности, мы получаем эффект размытия, который можно наблюдать в мутном стекле, промасленной бумаге и других подобных
материалах. Для управления степенью размытия прозрачности используется параметр Gloss (значение 0 соответствует максимальному размытию, 1 — отсутствию размытия).
Аналогичный параметр есть и для отражения.



Рельефное стекло. Вы же не собираетесь моделировать этот рельеф вручную из полигонов, когда есть normal mapping? Достаточно только добавить нужную текстуру, а затем в настройках Map To включить кнопку Nor и увеличить параметр Nor до нужного значения. Ниже приведен пример рельефного стекла с текстурой stucci.




Прозрачная тень. На всех приведенных выше изображениях видна прозрачная зеленоватая тень от стеклянной сферы. А по умолчанию тень не зависит от цвета объекта. Чтобы другие предметы могли принимать
тени от прозрачных объектов, включите кнопку TraShad на
вкладке Shaders.

В прошлом уроке мы рассмотрели создание двух видом материалов, но основной акцент делали все же на работу с материалами, в которых используя текстурные карты типа Image. И у Вас могло сложится мнение, что процедурные материалы вообще не нужны, и неясно для чего они придуманы вообще. В этом уроке мы поговорим именно о процедурных материалах, чтобы более полно рассмотреть возможности Blender для создания собственных материалов. Я говорю о тех возможностях, которые предоставляет сам редактор, не требуя дополнительных ресурсов, например, редакторов растровой графики.

Содержание

Рассматривать возможности процедурных материалов Blender мы будем на классических, но не самых простых примерах. Чтобы более полно усвоить материал данного урока, Вам необходимо хорошо владеть умением моделировать в Blender, используя сплайны, и помнить, как создаются объекты вращения, это можно посмотреть в уроке № 3. А сейчас мы займемся моделированием материалов, таких как стекло, вода, так же мы создадим зеркало.

Так как мы займемся моделированием Blender уже в стиле фотореализма, хотя лично предпочитаю всегда оставлять "мультяшный" эффект, то нам нужно понаблюдать за поведением этих объектов в реальной жизни. Поэтому ничего не остается, как вспомнить курс физики и разобраться в природе нужных нам материалов.

Если Вам понадобится более глубокое изучение данного вопроса, то обратитесь к справочникам по оптике. А здесь я расскажу лишь то, что нам пригодится в работе, хотя и этот короткий рассказ не обойдется без физических определений. Надо бать грамотным в той области человеческих знаний, модели из которой мы делаем – это такое правило, особенно если предстоит делать не простую статическую модель, а показать работу и взаимодействие различных деталей из различных материалов – тут уже без знания сопромата не обойтись, но не будем о печальном.

Итак, наша сцена состоит из камеры, источника света и некоторой модели. Это простейший случай. Источник света занимается тем, что посылает лучи света, модель – взаимодействует с этими лучами, а камера показывает результат этого взаимодействия. В зависимости от настроек материала, он ведет себя по-разному. Он может поглощать все лучи, может только часть, может отбрасывать тень, может тень не отбрасывать, может отражать лучи – иметь эффект зеркала.

Но как себя ведет обычное стекло? Оно пропускает лучи, отбрасывает тень и способно отражать некоторые из лучей. Как видите, не все так просто. Возьмем, к примеру, возможность стекла пропускать лучи. Для этого посмотрите через простой стакан на какой-нибудь предмет – некоторые предметы, находящиеся за ним, исказились, значит, стекло не просто пропускает лучи, а слегка искажает их. В физике это называется преломление света. То есть резкое изменение направления световых лучей, при переходе их через границу двух сред

Blender – уроки моделирования (урок №5)

Так выглядит преломление луча света при переходе его из воздуха в воду. Но наиболее интересная картина будет, если мы решим рассмотреть пример со стаканом воды. Здесь у нас присутствуют три среды: воздух, стекло, вода, и такие переходы: воздух-стекло, стекло-вода, вода-стекло, стекло-воздух. При каждом переходе луч сета преломляется. Наглядно это выглядит так:

Blender – уроки моделирования (урок №5)

В этом же примере возможны и другие переходы, если смотреть не с боку, а сверху. Но сейчас нас интересует другое. Мы знаем, что при переходе из среды в среду луч преломляемся. Так же мы знаем, что разные вещества, прозрачные для оптических излучений, обладают неодинаковой преломляющей способностью (например, стекло преломляет лучи сильнее, чем вода).

Еще существует такое понятие, как показатели преломления среды (index of refraction (IOR)). Показатель преломления определяется поляризуемостью составляющих ее частиц, а также структурой среды и ее агрегатным состоянием. То есть зависит исключительно от среды (материала) и четко определен для каждой из сред и записан в специальных таблицах. Вот самые важны показатели различных сред: IOR воды равен 1.33, IOR стекла – 1.52, IOR льда – 1.31, IOR водки – 1.36, IOR алмаза – 2.42. но помните, что эти показатели меняются в зависимости от температуры и некоторых других показателей, например, мед меняет свой показатель от концентрации в нем воды.

Теперь отдельно поговорим о зеркале. Зеркало отражает все лучи, ничего не пропуская, а искажения изображения, отражаемого зеркалом, происходит за счет геометрической формы самого зеркала. Так же меняя геометрическую форму объекта с материалом "стекло" можно получать линзы с различными свойствами.

На этом, думаю, вводную часть можно окончить. С нужными нам при работе понятиями я Вас познакомил. А вот сейчас настало время приступить к моделированию.

Возьмем все тот же бокал, с которым мы работаем на протяжении нескольких уроков, и продолжим работать именно с ним. Я опять беру все тот же щербатый бокал, чтобы у Вас была возможность поупражняться в моделировании, и Вы видели, к чему могут привести, на первый взгляд, незначительные дефекты моделирования. Перед нами стоит сложная задача – сделать этот многострадальный бокал на этот раз стеклянным, с учетом всех тех физических свойств стекла, о которых мы говорили выше. Засучиваем рукава и начинаем урок алхимии по превращению пластилина в стекло.

Выбираем бокал – клик правой кнопкой мыши по нему. Создаем новую текстуру и переходим в Texture buttons (F6) там добавляем новую текстуру – Blend и указываем ее тип – Sphere. Возвращаемся в Material buttons, там во вкладке Map Input делаем активной кнопку Nor и переключаем все координаты на Z.

Blender – уроки моделирования (урок №5)

Теперь переходим во вкладку Map To, делаем там активной лишь кнопку Alpha. Теперь во вкладке Material параметр Alpha делаем как можно ниже, я сделал его равным 0,15. Не забудьте сделать активной кнопку ZTrans. Теперь во вкладке Shaders устанавливаем параметр Ref равным 0, а Emit – 1. не могу не показать, что у меня вышло уже на этом шаге.

Blender – уроки моделирования (урок №5)

Создавать светящиеся объекты мы научились – это будет полезно при моделировании, скажем, медузы, но, напомню, создаем мы все-таки стекло. Да и не до конца понятно, умеет ли наш бокал отражать световые лучи, пропускать он умеет, и светится тоже вроде бы неплохо. Чтобы проверить отражательную способность нашего бокала, я положил перед ним плюшку. Объект тор, его мы тоже создавали уже. Но ничего с плюшкой больше делать не стал, а вернулся к бокалу.

Продолжаем наши алхимические эксперименты. Добавляем новую текстуру – вторую по счету. На этот раз текстура имеет тип – EnvMap. В Material Buttons во вкладке Map Input сделайте активной кнопку Refl. Во вкладке Map To делаем активными кнопки Col, Alpha, Emit, при этом цветовые параметры R, G, B равны 1, Col – 0.7, Nor – 0.5.

Я умышленно сделал бокал голубым.

Blender – уроки моделирования (урок №5)

Во вкладке Material можно изменить этот цвет на любой другой, например, на белый или любой другой или любой другой. Вроде бы вполне достойно, все, что должен уметь стеклянный бокал, наш бокал умеет: отражать, пропускать, искажать. Что еще нужно для счастья начинающему алхимику Blender’а?

Blender – уроки моделирования (урок №5)

Шутки шутками, а сейчас займемся другой разновидностью стекла – зеркалом. Но для начала, чтобы отчетливее видеть работу будущего зеркала, немного модернизируем нашу сцену. Около бублика я добавил конус – все предметы раскрасил, чтобы картинки были более жизнерадостные. И похожие на мультик. И еще добавил коробку, удалив некоторые грани (faces), чтобы они не мешали камере.

Теперь в сцене все готово, чтоб в ней появилось зеркало, а чтобы было веселее, сделаем зеркало из комнаты смеха. Добавим в нашу сцену еще сферу, она будет моделировать наше зеркало. Расположим ее где-нибудь сзади – я разместил ее в углу коробки, а спереди положим еще пару-тройку примитивов, чтобы было чему отражаться. Саму сферу масштабируем по усмотрению. Но учтите, что она в итоге должна оказаться сплющенной по одной из осей. Для этого используйте кнопку, с соответствующем оси именем X, Y, Z после нажатия кнопки масштабирования объекта S. Свойства у зеркала такие, что оно отражает все лучи, ничего не пропуская. В этом плане с зеркалом проще, чем с обычным стеклом.

Заходим на вкладку Mirror Trans включаем кнопку Ray Mirror и бегунок с таким же именем переводим в положение 1.

Blender – уроки моделирования (урок №5)

Собственно говоря, зеркало готово.

Blender – уроки моделирования (урок №5)

Теперь, кажется, осталось смоделировать воду, и закончить урок, но внимательный читатель задаст вопрос: а зачем в самом начале статьи я вел разговор о физике, всяких там индексах, параметрах, преломлениях, где все это? И как сделать так, чтобы свет все же преломлялся по-разному в разных материалах.

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

Теперь еще раз создадим материал стекло. Снова воспользуемся нашим бокалом – не зря же мы его все же моделировали. И вот окружение сцены для примера мне очень нравится, возьмем сцену с зеркалом, изменять в ней ничего не станем, только материал для бокала: удалим все текстурные карты. Получим самый простой материал, не использующий ни одной текстуры.

Теперь можно приступать к созданию стекла, на этот раз уже с учетом IOR. Все же бокал будет у нас уже стеклянный. Цвет сделаем ближе к белому. На панели и установим параметры R, G, B – 0.9, 0.9, 1 соответственно, а вот параметр A установим равный 0.1. Hа вкладке Links and Pipeline оставляем активными кнопки Traceable и Shadbuf. А вот параметры на вкладке Shaders приведем в соответствии с изображением.

Blender – уроки моделирования (урок №5)

Теперь начинается самое интересно. Мы переходи на вкладку Mirror Trans. Там включаем кнопку Ray Trans и задаем параметр IOR, соответствующий стеклу – 1.52.

Blender – уроки моделирования (урок №5)

А вот после рендера так у меня выглядит наша сцена.

Blender – уроки моделирования (урок №5)

Здесь уже бокал больше похож на стеклянный – и ошибка при моделировании тоже на лицо. Надеюсь, при создании своих моделей, Вы не допустите того, что сделал я. Теперь, в рамках нашей темы, немного похулиганим. Не зря же я Вам давал IOR водки – воспользуемся и им. Создадим сцену, в которой будет стоять на плоскости рюмка, в рюмке будет налита водка, а какой-нибудь предмет, скажем, трубочка, будет торчать из рюмки. Таким образом мы увидим, как будут преломляется лучи в различных средах – за одно, тем самым продемонстрирую Вам пример из схемы в самом начале статьи, чтобы не быть голословным. Вам предстоит создать две фигуры вращения – рюмку и ее содержимое, содержимое, конечно, можно создавать и цилиндром, но чтобы точно соответствовать форме рюмке, все же советую, создавать именно как фигуру вращения, а вот трубочку можно создать уже цилиндром, приступим.

Вот так у меня выглядит заготовка будущей сцены.

Blender – уроки моделирования (урок №5)

Делаем все те же манипуляции с материалами для Glass и Water, что мы делали в предыдущем примере для бокала, только для материала Water выставляем IOR равный 1.36.

Это долго времени не займет, да и результат после рендера будет не сразу понятен, поэтому добавим в центр рюмки соломинку. У меня она будет просто торчать из центра, что не совсем соответствует физике, но кто Вам мешает положить ее так, как надо? Получилась вот такая сцена, достаточно точно отражающая физическую картину вопроса преломления лучей. Видны даже грани на рюмке.

Blender – уроки моделирования (урок №5)

Если возникнут сомнения, то просто налейте водку в рюмку и посмотрите, как это будет выглядеть. Уверен, большой разницы, кроме, может быть, формы рюмки Вы не увидите. А чтобы форма была наиболее реалистичная, используйте фотографию настоящей рюмки. Располагаете ее в окне проекции сбоку и обводите половину, потом просто вращаете профиль, и модель готова.

Вы разобрали еще одни урок, который приблизил Вас к созданию фотореалистичных изображений 3D-графики. Прощаясь с Вам, по традиции желаю Вам успехов и терпения, в этом не самом простом деле моделировании объектов, используя Blender. Успехов Вам!

Читайте также: