Перейти к содержимому

Настройка материалов в Corona Render

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

Материалы — одна из тех сложных тем, которую легче понять самому, чем объяснить кому-нибудь, но я попробую (а раньше, во времена v-ray вообще жопа была с материалами).

Далее в тексте вся информация представлена о CoronaLegaсyMtl.

Что такое PBR

Сейчас в большинстве рендер-движков используется принцип PBR, что это такое читаем здесь, а для тех кто прям закопаться хочет — здесь и здесь. Если кратко и грубо — это набор картинок, которые указывают, где свет на модели должен сильнее отражаться (прям вам в глаз). Ещё этот набор не обязательно должен состоять из изображений, это могут быть числовые значения и параметрические карты.

Так выглядят карты

Обычно набор карт такой:

  • Diffuse — задаёт цвет объекта, на карте не должно быть теней и бликов (карта только про цвет);
  • Reflection — задаёт, силу отражений на объекте;
  • Reflection Glossiness — задаёт шероховатость обьекта и, следовательно, степень размытости отражений;
  • Bump и/или Normal — добавляет мелкие рельефные детали, но не изменяет геометрию модели;
  • Displacement — добавляет рельефные детали и изменяет геометрию модели — это карта высот, указывающая где объект будет больше выпирать относительно своего первоначального состояния;

🧱 Настраиваем материал кирпича

Если вы хотите настроить материал какой-нибудь другой поверхности — без проблем, просто скачайте себе другие текстуры с любого сайта или сборника, процесс не будет сильно отличаться. Например, на сайте polyhaven.com полно бесплатных текстур разных поверхностей.

Первым делом идём и скачиваем набор карт для материала кирпича, например здесь. Все карты нам не нужны, достаточно скачать:

  • Diffuse
  • Displacement
  • Normal
  • Roughness

Качайте эти карты, достаточно в формате jpg размером 4k

Все доступные материалы и карты можно создать несколькими способами:

  • Нажать правой кнопкой мыши в области редактирования материалов;
  • Вытащить из столбика слева;
  • Вытащить из слота материала (кружочек на плашке материала).

Слева столбик с материалами. Можно использовать не только коронавские, но и стандартные

Теперь открываем окно настройки материалов в максе (можно просто нажать “M” на клавиатуре) и создаём пустой материал CoronaMtl перетаскиванием его из списка доступных в область редактирования (ищем во вкладке Materials, в подвкладке Corona).

Слева вытаскиваем CoronaMtl, можно назвать его “Bricks” раз мы скачали текстуры кирпичной стены

Ок. Материал создали, теперь нужно провести небольшую первоначальную настройку материала — включить отражения. Хз почему, но почему то в CoronaMtl они выключены по-умолчанию. Просто крутим параметр Reflection level на 1,0.

Здесь крутим Reflection level

Далее нужно подключить текстуры, которые мы скачали ранее, к материалу. Добавляем текстуры — создаём карту CoronaBitmap и указываем путь к текстуре (ищем CoronaBitmap во вкладке Maps, в подвкладке Corona). Можно использовать и обычный Bitmap, но разработчики короны говорят, что их карта работает лучше и быстрее, да и крутилок там побольше на будущее.

Как создать карту или материал кликом правой кнопки мыши

Когда всё вытащите, должно быть так

Теперь присоединяем карты в нужные слоты материала — тянем от кружочка карты линию до кружочка материала:

  • В слот Diffuse вставляется карта, задающая цвет материала, она может называться Diffuse, Albedo или Base Color. (разные источники по-разному называют текстуры).

  • В слот Reflection color вставляется карта, задающая силу отражения, она может называться Reflection, Specular, Metallic.

  • В слот Reflection glossiness вставляется карта, задающая размытость отражений/шероховатость материала. Она может называться Glossines или Roughness. При использовании в короне карты Roughness её нужно инвертировать — добавляем карту Output и ставим галочку “Invert” или отмечаем эту же галочку в настройках самой CoronaBitmap.

  • В слот Bump вставляется карта, задающая плоский рельеф материала. Она может называться Bump или Normal (или может быть сразу оба варианта). Карта Normal должна быть подключена в слот Bump через еще одну карту — CoronaNormal с включенной галочкой “Add gamma to input”. В слот “Additional bump” можно вставить карту Bump, если она у вас есть.

  • В слот Displacement вставляется карта, задающая настоящий, объемный рельеф. Она может называться Displacement или Height.

Должно получиться примерно так

Включаем превью

Если мы посмотрим, что у нас получается, то увидим, что кирпич какой-то плоский. Т.е. рельеф вроде-бы есть, но он как на стрёмных обоях из двухтысячных с текстурой кирпича. Чтобы исправить это крутим до приемлемого значения параметр “Max level” в разделе “Displacement” настроек материала.

Настройка уровня “выдавливания”

Правильный кирпич с Displacementом

Получился норм кирпич.

Настройка материала без использования текстур

Всё, что мы делали выше, получилось легко и просто, благодаря тому, что все нужные карты у нас уже были. А что делать, если нужно настроить какой-нибудь простенький материал без текстур, чтоб просто был определенного цвета и блестел/не блестел так, как нам нужно? А для всего этого нужно задать определенные циферки в настройках материала! Давайте разбираться, какие цифры на что влияют.

Основные параметры материала

Далее рассмотрим каждый параметр отдельно

Цвет объекта

Diffuse — влияет на цвет объекта. Можно вставить карту или просто настроить цвет. А можно вообще выключить, указав 0,0 в разделе Diffuse level (обычно ноль задают у металлов и стекла).

При diffuse level близком к 0 цвет становится черным

Перекраска текстуры

А что делать, если текстура, которую вы скачали, в одном цвете, а вам нужно покрасить его в другой или обесцветить? Если вы не хотите открывать ФШ или хотите сразу видеть результат, можно сделать это прям в максе и есть несколько способов. Давайте рассмотрим на примере материала ткани т.к. у них обычно сложный Diffuse и у них чаще всего меняют цвет.

Способ 1 — Color Correction

Подключаем карту Diffuse через еще одну карту Color Corretion и крутим параметр Hue Shift для изменения оттенка и другие параметры для изменения яркости/контрастности.

После использования карты Color Correction красный шарик стал желтым

Способ 2 — RGB Multiply

Обесцвечиваем исходную карту Diffuse и красим её в любой цвет. Для этого оставляем Color Correction как в первом способе, но выкручиваем Saturation на -100 (если карта стала слишком темной, то можно еще увеличить Brightness) и добавляем еще две карты как на скриншоте снизу — RGB Multiply и CoronaColor. В CoronaColor задаём нужный цвет и всё!

В этом способе больше телодвижений, но более контролируемый результат

Также важно отметить, что не бывает абсолютно белого и абсолютно черного цвета. Для черных объектов рекомендую минимальный уровень RGB = 5, а для белых максимальный RGB = 150-180.

Отражения

Reflection level — влияет на силу отражения, можно просто задать число от 0 до 1 и в дополнение к нему вставить карту или цвет — чем белее, тем больше отражает.

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

Тут прост сила отражения меняется

Reflection glossiness — влияет на размытость изображения, можно вставить карту или просто настроить число от 0 до 1 — чем белее, тем более четкое будет отражение.

При уровне 0,5 кажется, что шарик и не отражает ничего, но ведь он отражает! Сравните с первой картинкой, где мы крутили diffuse level

Reflection Frensel IOR — также влияет на силу отражения — чем больше число, тем сильнее отражение. В большинстве случаев оставляем как есть, можно увеличивать в металлических материалах и материале зеркала.

При IOR = 15 материал шарика похож на хром или зеркало

Преломление и прозрачность

Refraction level — используется для создания стеклянных материалов, материалов жидкостей и др. прозрачных материалов. Это не просто прозрачность — это степень преломления света материалом. Если наложить материал с refraction level = 1 на сферу, то свет, проходя через неё, будет менять свое направление.

Для наглядности добавил текстуру на задний план. Материал шарика справа похож на стекло

Refraction glossiness — влияет на размытость проходящего через материал света — чем меньше число (или чем чернее карта), тем мутнее будут внутренности материала.

Видно помутнение полосок на центральном и левом шариках

Refraction IOR — коэффициент преломления света — влияет на степень искажения света, при преломлении внутри объекта.

Происходит какая-то дичь. Меняйте это значение, если точно знаете, что делаете

Opacity — обычная прозрачность объекта. Чем белее карта (или ближе к 1 число), тем более непрозрачным будет объект.

Шарик просто пропадает, как крутить прозрачность в ФШ

Рельеф

Displacement — как мы выяснили выше, эта функция выдавливает настоящую геометрию из объекта, может сделать плоскую стену объемной. Min level задает минимальное отклонение от изначальных границ объекта (это насколько выдавятся черные части карты, которую вы засунете в слот displacement), max level задает максимальное отклонение (для белых частей карты displacement).

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

Числа на скриншоте — условные

Bump — карта, которая создаёт рельеф на поверхности объекта, не меняя его геометрию. По-сравнению с displacement эта карта создаёт только видимость рельефа, на самом деле никакие дополнительные полигоны не создаются и не выдавливаются, много ресурсов не использует и не замедляет рендер.

В слот bump можно вставлять карты в оттенках серого, где черный цвет — наибольшее заглубление рельефа, а белый — выпирание соответственно. Также сюда можно вставлять специальные карты нормалей с помощью CoronaNormal, как мы рассматривали на примере материала кирпича.

Силу бампа можно задать цифрой от 0 до 100 в соответствующем разделе в самом низу настроек материала.

Чем больше число, тем более выражен эффект

Размер текстуры / UVW mapping / Развертка

Выше мы рассмотрели настройки материалов и какие текстуры в какой слот нужно кидать, но есть еще один не менее важный аспект — макс должен как то понять, куда должна ложиться текстура на объекте и какого размера она должна быть.

Представим, что вы замоделили некий объект, наложили на него материал дерева, включили рендер и… Получилась какая-то хрень:

Текстура легла криво

Для решения этого вопроса существует такая вещь как развертка. Грубо говоря, это развернутая на плоскость поверхность 3D-объекта. Развертку можно создавать несколькими, различающимися по точности способами.

Способ 1 — UVW Map

Наложить на объект модификатор UVW Map с параметром “Mapping” — Box и задать размер текстуры в единицах измерения вашего проекта.

Модификатор UVW Map

Если после наложения модификатора текстура ориентирована не в ту сторону, в которую вам нужно (обычно такое бывает именно с материалом дерева), модификатор можно повернуть так, как вам нужно — выбираем во вкладке модификатора Gizmo и крутим.

Повернули

Если вам нужно повернуть ориентацию древесных волокон на какой-то отдельной части объекта (а такое тоже часто бывает, например, при моделировании корпусной мебели) — накладываете модификатор Edit Poly, выбираете в нём нужные части объекта.

Выбрали части объекта, текстуру на которых мы хотим повернуть

Далее, не снимая выделения, накладываем еще один модификатор — UVW Xform. В параметрах модификатора задаём “Rotation” = 90. Таким образом мы повернули текстуру на выделенных элементах объекта на 90 градусов.

Крутим направление волокон с помощью UVW Xform

Теперь всё нормально лежит

В этом способе размер текстуры задаётся в параметрах модификатора UVW Map.

Способ 2 — Real-World Map Size

Второй способ почти идентичен первому. Единственное отличие — размер текстуры будет задаваться в самой текстуре, а не модификаторе UVW Map. У такого варианта есть свои преимущества — например, если у вас на один объект наложено несколько материалов (например на стенах в интерьере такое часто бывает) — при использовании этого способа удобнее будет настраивать размер текстур.

Просто на этапе наложения модификатора UVW Map жмем галочку “Real-World Map Size”. А размер текстуры настраиваем в параметрах самой текстуры CoronaBitmap (тоже нажав там галочку “Real-World Map Size”.

Включаем Real-World Map Size в модификаторе UVW Map

Включаем Real-World Map Size в карте

В итоге получается то-же самое, что и в первом способе, просто так удобнее управлять размером текстур в объекте с разными материалами на нескольких элементах.

Способ 3 — Corona Triplanar Map

Подключить текстуру через карту CoronaTriplanar. помогает в тех случаях, когда нужно наложить абстрактную текстуру на объект без развертки. Работает без каких-либо модификаторов. Крутить ориентацию текстуры на отдельных элементах неудобно (нужно создавать отдельный материал).

Настройка CoronaTriplanar

Получается так. Как видите, для дерева не очень вариант

Способ 4 — Развёртка

Сделать развертку модели, но это уже тема для отдельного поста 🙅.

💁 Готовые материалы

Если вы думаете также, то инфа ниже для вас

Если вы дочитали до этой части поста (вау, эти посты кто-то читает!) и вы всё равно-не понимаете/нет времени, как настроить нужный материал, у меня для вас хорошая новость — в короне есть большая встроенная библиотека материалов с удобными превью.

Есть несколько способов открыть библиотеку материалов. Самый удобный — нажать на специальную иконку из тулбара, который появился у вас после установки короны (надеюсь вы не закрыли этот тулбар).

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

Слева — куча категорий материалов, справа — куча материалов с превью.

Только там есть не все нужные материалы, иногда всё-таки нужно настраивать что-то самому.

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