Как сделать камень в blender
Принципы создания процедурных текстур
Перевод урока: Antonii Illarionov
Из данного урока Вы узнаете о:
Как сделать абсолютно любую текстуру с нуля без готовых изображений?
Это довольно обширный вопрос, правда? Я думаю, что мы здесь все разумные люди и этот вопрос, так или иначе, возникал у каждого. Мы ведь знаем – этот урок будет о фундаментальных основах на примере мрамора, а не на примере буквально любой текстуры, которую вы хотели бы сделать, не так ли? Если честно, то я тоже не против того, чтобы взглянуть на такой урок, но вернемся к реальности…
Кто нуждается в UV развёртках?
Сегодня – не мы! Мы поговорим о процедурном текстурировании, а это означает, что любой объект с процедурными текстурами должен работать корректно без развёрток.
Фоторесурсы
Посещение таких сайтов с изображениями как pixabay или cg textures – действительно удобно, но лишь когда вы можете найти желаемую текстуру. Если вы нашли хорошую бесшовную текстуру или не против того, чтобы потратить время делая её бесшовной, то почему бы не использовать её вместо всех этих процедурных сложностей?
Ну, не то что бы так делать нельзя, фоторесурсы по-прежнему остаются очень полезными и всегда будут таковыми, особенно для передачи тонкостей дизайна и других аспектов изображения, которые вы, возможно, захотите добавить в свой проект.
Достижение этого только с помощью фотографий или нет – упражнение в понимании и воссоздании мира вокруг нас, что позволяет получить более глубокое знания о нём и добиться лучших результатов в своих работах. Это немного похоже на искусство рисования, только для текстур.
Позже к вам приходит опыт, после чего настаёт момент, когда фотографии вам перестают помогать (не без исключений, конечно).
Так в чем же сущность искусства графики? Каковы те аспекты изображения, которые мы можем контролировать, чтобы помочь сосредоточить внимание и сделать заявление в качестве автора, которое было запланировано? Ну, их существует довольно много, вот только пара самых влиятельных…
Фокусная точка изображения будет неясной без контрастного или цветового акцента. С контрастом (оптическим), мы можем обратить внимание на передний план, а также отделить его от фона изображения, что является очень важной деталью. Цветом можно подчеркнуть свою идею еще больше.
Таким образом, вы можете влиять на изображение многими способами, вот лишь некоторые:
До сих пор ищете способ для развития ваших способностей? Посмотрите на этот список и убедитесь, что вы можете что-то сказать о каждом из них. Есть что-нибудь, что вызывает трудности?
Как применить все эти знания в текстурировании?
Мы можем распределить текстуру аналогичным образом на примере о частотах звука, которые могут иметь низкие частоты (бас) и высокие частоты. Изображение может иметь графическую аналогию.
Если вы еще не видели эту иллюзию, то идея в том, что это изображение Эйнштейна, но если вы уменьшите картинку или переместите её далеко – вы увидите Мэрилин Монро. Это частоты изображения, которые дают нам разделение там, где задумал автор. Мы смотрим на Эйнштейна при высоких частотах и Мэрилин Монро при низких.
Вот еще несколько аспектов образа, которые мы можем использовать для изменения видимого изображения:
Создание процедурной текстуры камня
Давайте приступим к работе и применим всё вышесказанное на практике создания процедурной текстуры камня. Вы найдете стартовый учебный файл здесь (заготовки объектов и нодов), это поможет вам начать создание шейдера в Cycles. В этом файле есть почти всё что мне нужно для начала создания любой процедурной текстуры. Урок с более подробной информацией вы можете найти здесь (на английском).
Низкие частоты
Сначала это просто нод текстуры шума, который имеет стандартные настройки и проходит через нод ColorRamp. Градиент снижает контраст за счёт более светлого самого низкого уровня черного и более темного наивысшего уровня белого, отсюда получается сокращение цветовых диапазонов.
Обратите внимание на значение искажения, которое я выделил белым прямоугольником. На самом деле здесь нам не нужна настройка размытия (BLUR), поэтому любой из тех нодов сейчас бесполезен и на самом деле мы могли бы их удалить. Но я оставлю их здесь просто на всякий случай. Маленькие окна предварительного просмотра, соединённые с текстурой Musgrave, наглядно показывают влияние новых нодов на нашу текстуру Musgrave при добавлении нодов.
Высокая частота
Для высоких частот это довольно легко. Градиентная карта просто ставится перед финальным нодом, чтобы позволить наивысшей частоте проявиться немного больше (при масштабе шума в 200). В противном случае детали будут частично утеряны в ярких частотах, которые уже есть.
Царапины / трещины / разводы
Для некоторых видов эрозии, например: царапин, трещин, разводов и тому подобного, – мы можем использовать группу нодов из урока по созданию трещин. Для загрузки соответствующего файла нажмите сюда.
До тех пор, пока текстура чёрно-белая – её слияние с нодом ColorRamp и переназначение чёрно-белой гаммы в цветную – наша цель. Здесь я просто взял цветовые пробы из эталонной фотографии камня и аккуратно, убеждаясь в соответствии с чёрно-белой гаммой (настройки HSV), разместил их на градиентной карте.
Эрозия
Этот раздел является опциональным, но вам следует быть в состоянии воспользоваться этим, поскольку это позволит вам создать: пыль, грязь, изношенность или другой эффект,– в укромных местах и трещинах на вашей модели. Для этого нужно будет смоделировать объект соответственно. В основном это означает лишь наличие петель рёбер рядом с острыми краями.
От этого зависит имеющееся количество цветовых наборов, чаще всего их два, которые вы можете увидеть на картинке ниже (оранжевая шапка). Результат вы можете увидеть правее на картинке соответственно настройкам. Фактура умножается на основную текстуру и в результате образуются изношенности на краях.
Диффузия, рельеф и отражения
Сейчас мы почти закончили с текстурированием, осталось только добавить реалистичных свойств шейдеру. Здесь вы увидите нод Bump, который подсоединен к трём нодам (входам normal), отвечающим за отражение. Нод MixRGB, размещённый перед Bump отвечает за его высоту. Первый разъем – низкая частота и смесь текстуры Musgrave, которую мы уже видели, он наложен на второй высокочастотный нод с масштабом 60 (выглядит ужасно, но на самом деле это просто две картинки с наложением и очень разным параметром частот).
Конвертирование в полированный камень / мрамор
Остался последний штрих – взять всё сделанное и перенастроить в качестве другой, несколько схожей поверхности – подобие мрамора / полированного камня. Так вот, я добавил нод MixRGB, который работает в режиме Overlay, и сделал его зелёным цветом. Нод Bump сейчас неактивен, потому что я отключил его от всех входов normal. Потом я настроил отражения и значение Френеля, проходящее через отражение и с общим наложением на него. Это делается путем увеличения яркости на первом ползунке (first socket) нода MixRGB, который размещён перед узлом Mix Shader.
Тропическая сцена в Blender
Это будет достаточно простой урок в рамках которого мы создадим простенькую тропическую сцену. В уроке будут задействованы модификаторы, шейдеры, UV-развертка и простое моделирование.
Финальный результат
Видеоурок
Текстовый урок
Новички 100% будут смотреть видео, а бывалые ребята смогут и по картинкам быстро воссоздать сцену 😉
Водичку мы будем делать из подразделенного кубика с помощью модификатора Wave. Чтобы он воздействовал лишь на верхнюю часть куба, создайте группу вершин и укажите их.
Песок на порядок проще. Простая геометрия, которой вручную придана нужная высота.
Для зеленой части острова снова создадим плотную геометрию и сместим ее с помощью модификатора Displace. Для смещения воспользуемся текстурой Noise.
При создании лодочки отлично поможет модификатор Mirror. Ну и Subsurfe для гладкости и плавности. После Mirror применим, чтобы он в последствии не зеркалил нам текстуру.
Сидения создадим из кубиков, весла из цилиндров. Для весел Subsurfe не повредит, а вот для сидений он не нужен. Будет лишь лишняя геометрия.
В завершении мелкие детали и веревка созданная с помощью кривой. Итого наша лодка будет привязана к берегу и готова к развертке и настройке материалов.
Займемся пальмами. Проэкструдируйте постепенно сужающийся цилиндр и искривите его с помощью кривой.
Листочки для пальмы создаются точно так же, как основание лодки. Кокосы вовсе ICO-сферы.
При создании камней был взят подразделенный куб, которому изначально была придана форма сферы, а впоследствии форма камней с помощью текстуры Noise и модификатора Displacement.
Кусты, это уменьшенные копии листьев пальмы расставленные по сцене.
Плоскость в качестве пола и лампа в качестве источника света.
Также для мира настроена HDR-карта (ссылочка в начале статьи).
Приступаем к шейдерам. Водичка проста до безобразия.
Для песка создадим легкий шум при помощи текстуры Noise.
Для травы создана вариативность как по цвету, так и по нормалям. На финальном рендере видно не особо, но сделать было несложно.
Для пола создан мягкий градиент. С ним сценка выглядит значительно ярче.
Для лодки и всех ее объектов создана UV-развертка и используется PBR-текстура дерева (ссылочка в начале статьи). Процедурно дерево парой нодов не настроишь 😉
Все то же самое для ствола пальм, только текстуры другие (ссылочка в начале статьи).
Для листьев пальмы достаточно одной текстуры (ссылочка в начале статьи). Связка нодов до безобразия проста. Здесь нам даже модификатор Mirror на руку играет.
У кокосов снова вариативность по цвету и нормалям с помощью текстур Noise.
Для камней можно использоваться сплошной цвет, либо создать вариативность по цвету с помощью… Ну и кусты. Шейдер вы видите на картинке ниже.
Сцена простая, но за счет большого количества деталей требует на себя какое-то время. А это именно то, что нужно начинающему. Набить руку и не зависать по долгу на каждом объекте.
Обязательно делитесь своими результатами в комментариях. Всегда интересно смотреть на ваши результаты, особенно с долей креатива в них 😉
Работа с материалами в Blender
Привет, меня зовут Сергей Мингулин, я — 3D-художник и преподаватель курса по созданию стилизованных 3D-персонажей в XYZ. Посмотреть на мои проекты можно здесь. Это — первая статья из цикла о визуализации в Blender.
Сегодня поговорим о том, как настраивать материалы, и какие дополнительные программы и расширения облегчат работу. А ближе к финалу я дам небольшой туториал по созданию интересного эффекта свечения на примере иллициев мутанта — выростов на голове для приманивания добычи.
Дополнительные программы для удобства
Substance Painter — программа для текстурирования 3D-моделей или создания текстур/текстурных карт для них. По ходу работы мы будем импортировать текстуры отсюда.
Node Wrangler — аддон, который содержит разнообразные инструменты для улучшения и ускорения воркфлоу, основанного на нодах (node-based workflow).
Активируется он следующим образом:
Переходим во вкладку «Edit», заходим в настройки «Preferences» и в «Add-ons» ставим галочку на соответствующей вкладке. Для удобства ищем аддон через поисковую строку.
Как работать в Material Editor
После того как портировали нужную модель в Blender, находим вверху вкладку Editor Type и выбираем Shader Editor. Нас перебрасывает в меню.
Material Editor имеет 2 режима:
1.Редактирование «мира» сцены.
Здесь есть две настройки:
Surface (поверхность) — сюда можем подключить обычный background (включен по умолчанию) и поменять его цвет или же добавить HDRI текстуру (удалить нод background и добавить Environment texture через Shift+A ). Я остановился на обычном бэкграунде.
Volume (объём) — здесь я добавил шейдер principled volume, который отвечает за «туман» или условную прозрачность атмосферы вокруг объекта.
2. Редактирование объектов, с которым мы и будем сегодня работать.
Чтобы создать нод, нажимаем Shift-A — этот хоткей вызывает панель с вкладками настроек. Мы можем как вручную искать во вкладках интересующую нас, так и ввести название в строку «search», после чего нод появится в меню.
Пример создания пустого материала
Чтобы создать новый материал без названия и настроек, нажимаем вкладку Material Properties и щёлкаем «+».
Здесь же нажимаем «new», и у нас появляются базовые ноды: Material Output и Principled BSDF, с помощью которых мы будем проводить изменения.
Важно: не забываем активировать Node Wrangler.
Выделяем базовый шейдер и нажимаем Shift+Control+T. Комбинация откроет нам меню выбора файлов. Выделяем нужные нам текстуры и подгружаем.
Если по умолчанию в названии файла текстуры есть приписка с её назначением, прога сама привязывает соответствующие файлы к параметрам.
Редактировать эти приписки (или суффиксы/тэги) можно в меню:
Если значение определилось неверно, изменить привязку можно самостоятельно, соединив мышкой output нода и input шейдера.
Кроме того, текстуру можно так же вручную перетянуть из окна в программу и прилинковать.
Назначить материал для модели можно, снова перейдя в 3D Viewport. Выделяем нужный объект, и пакет назначается автоматически. Если нам нужен другой, жмём крестик, а затем вкладку «new» или выбираем из уже имеющихся сохранённых.
Настройка материала высокополигональной модели
Стоит оговориться, что речь пойдёт о модели хайполи с высокой плотностью сетки, которая призвана проиллюстрировать навык дизайнера в рамках портфолио.
В связи с этим, геометрия позволяет нам не использовать отдельную карту под 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 и т.д. в зависимости от вашей сборки
Также, в зависимости от того, в каком пайплайне мы работали в Substance Painter и какой там пресет на экспорт текстур (под OpenGL или DirectX), может потребоваться «флипнуть» зелёный канал в Normal Map.
Для этого нажимаем Shift-A, находим Separate RGB и подключаем к нему output Color. Как понятно из названия, этот нод даёт нам провести необходимую манипуляцию с одним из каналов (Red, Green, Blue). Теперь, чтобы инвертировать зелёный канал (G), добавляем нод Invert со значением Fac «1.000» и подключаем обратно через Combine RGB.
Эту конструкцию мы затем подключаем к Normal в Principled BSDF. Roughness (чёрно-белая карта, не требует манипуляций с каналами) подключается в соответствующий слот шейдера, так же как и Albedo (Base Color).
Вот так выгладит готовая сборка материала:
Фиолетовое поле — это наш Normal Map. Не обращаем внимания на неприлинкованные окна.
В случае с зубами настройки всё те же. Также флипаем при необходимости зелёный канал в нормалке.
Пошаговое создание светящихся иллициев
Иллиций — особый ловчий вырост («удочка») на вершине головы у костистых рыб отряда удильщикообразные, служащий для приманивания добычи. Нечто похожее есть и у нашей модели.
Примеры в референсах.
Рассмотрим, как распределить свечение по всей длине иллициев, — от наибольшей интенсивности к наименьшей.
Наши «удочки» будут состоять из:
нижнего слоя — овалы внутри, дающие основное свечение на концах;
среднего слоя — так же светящиеся трубки;
верхнего слоя — внешняя оболочка иллициев.
a) Нижний слой
Material Output нижнего слоя состоит из Principled BSDF, который идёт в Surface объекта, и Principled Volume, подсоединённого к параметру «внутреннего объёма».
Так как геометрия объектов простая, Normal Map нам не нужен, и его значения мы оставляем «по умолчанию». Основные манипуляции будем проводить с названными выше нодами.
Первый — это Principled BSDF. Здесь мы задаём Base Color значением HSV (Hue, Saturation, Value), оставляем Roughness по умолчанию и переходим к настройке прозрачности. Так как наш объект будет скрыт под другими слоями, и основное свечение будет исходить из внутреннего объёма, ставим значение Transmission «1.000» — это даёт нам полностью прозрачный объект. А параметр Transmission Roughness позволяет выбрать, насколько матовой или глянцевой будет поверхность (чем больше значение, тем меньше глянца).
Переходим к работе с Volume. Здесь мы задаём цвет внутреннего «тумана» и его плотность, выставив значение Density на 10.000.
Настройки материала нижнего слоя.
Как настроить свечение?
На скриншоте выше мы видим, что Emission поверхности — чёрный. Это значит, что свечение будет исходить не от неё, а от Volume. Для этого мы и задавали максимальную прозрачность оболочки. Так как этот слой будет ещё под двумя, задаём большое значение в параметре Emission Strength («сила излучения») — «1700.000».
b) Средний слой
Ноды этого слоя те же, что и у предыдущего. В Principled BSDF значение Roughness мы выставляем меньше, примерно в 3 раза, что даёт нам более глянцевую поверхность. Значение IOR (индекса преломления) оставляем по умолчанию. Transmission, в случае второго слоя, у нас контролируется через Color Ramp и Layer Weight.
Настройки материала среднего слоя.
Layer Weight — нод, из которого мы берём значение Френелевского отражения.
В зависимости от того, под каким углом мы смотрим на поверхность объекта, сам объект кажется нам в большей или меньшей степени прозрачным. Коротко этот эффект можно описать так: чем ближе к 90° угол между направлением взгляда и поверхностью прозрачного объекта, тем более прозрачным он кажется.
Пример: рыба из референса. Мы видим, как поверхность всё больше теряет прозрачность и обретает цвет по краям.
Color Ramp — по своей сути, аналог уровней в Photoshop, с помощью которого мы можем:
1) инвертировать цвета — по умолчанию белый цвет справа, чёрный слева; перетягивая ползунки друг на друга, обращаем цвета.
2) настроить контрастность — чем меньше расстояние между ползунками, тем она больше.
Теперь, соединив этот нод с Transmission, мы получаем следующие параметры: чем ближе к белому цвет, тем прозрачнее будет отображаться материал на рендере.
От настройки поверхности переходим к свечению. Оно берётся из нода Principled Volume, который мы также подключаем к Material Output (Volume). Цвет тумана — красный, испускаемого света — оранжевый. Выбираем значение плотности — «1.000», и Emission — «400.000».
Таким образом, получаем плавный переход от более интенсивной точки свечения, расположенной на прозрачном участке, к менее интенсивному по всей длине менее прозрачного стержня.
c) Верхний слой
Наконец, настройки внешней оболочки выглядят следующим образом:
Общий принцип остаётся тот же: Principled BSDF, к которому подсоединяем Bace Color с Color Space sRGB, и упрощённая настройка volume — Volume Absorption.
На последнем останавливаться нет смысла, затронем основные моменты настройки Principled BSDF.
Для Roughness была использована готовая текстура из Substance Painter.
Аналогично применяем готовый градиент к Transmission и миксуем его с уже описанным Layer Weight (откуда берём френель) + Color Ramp (инверт LW).
Чтобы смешать прозрачность по френелю и по градиенту, создаём нод MixRGB и выбираем вариант смешивания Multiply, линкуем их к нему (Color1 и Color2), после чего соединяем нод Multiply с Transmission.
И не забываем инвертировать зелёный канал в Normal Map при необходимости.
Так выглядит наша модель на рендере. В следующий раз поговорим о том, как выставить свет в соответствии с задачами, и правильно её подать.
Если хочешь научиться создавать стилизованных 3D-персонажей — записывайся на курс STYL. Стартуем 1 октября — если записаться сейчас, можно успеть получить скидку.
Все подробности по ссылке: https://www.school-xyz.com/styl