Последние новости
Руководство по импорту и обновлению Datasmith-контента в Unreal EngineGround of Descent: предложение арт-центра под землёй в БургасеСоздание переиспользуемого эффекта Fresnel с помощью Material Function в Unreal EngineПреобразование mesh и volume в Blender: настройки voxel и разрешенияАрхитектурные чертежи в Rhino 8: Make2D и экспорт в PDFВышла Substance 3D Painter 12.2: новые инструменты для покраски cage и выделенияСоздание сечений командами Contour и Section в Rhino 8Расширение Bass Museum: Johnston Marklee спроектировала приподнятые галереиРуководство по рельефу в Vectorworks 2025: контуры, текстуры и растенияMistral и NVIDIA связывают физический ИИ с инженерным моделированием
УрокиUnreal Engine

Создание переиспользуемого эффекта Fresnel с помощью Material Function в Unreal Engine

В этом руководстве мы создадим настраиваемый эффект Fresnel с помощью Material Function в Unreal Engine, научимся использовать функцию в нескольких материалах и публиковать её в библиотеке.

Мягкие световые акценты подчёркивают края поверхностей в современном интерьереИИ-изображение
Иллюстрация создана с помощью ИИ.Изображение: 3dsınıfı / FCA AI

Коротко

  1. Material Function позволяет сохранить сеть узлов материала как отдельный ресурс и использовать её повторно.
  2. В примере функция Fresnel управляет эффектом, зависящим от угла, с помощью входных параметров экспоненты и интенсивности.
  3. Узлы Function Input и Function Output позволяют передавать данные в функцию и получать результат.
  4. Изменения существующей Material Function могут повлиять на материалы, в которых она используется.

Чему вы научитесь в этом руководстве?

Вместо того чтобы снова и снова собирать одну и ту же сеть узлов в разных материалах Unreal Engine, её можно объединить в Material Function. Тогда сложный фрагмент можно будет использовать в виде одного вызова функции, добавляемого в другие материалы. Следуя примеру Fresnel от Epic Games, мы создадим эффект, подчёркивающий края и позволяющий настраивать интенсивность и характер затухания.

Эффекты типа Fresnel можно применять, чтобы выделять края поверхности в зависимости от угла обзора и делать силуэт заметнее в темноте. Это не физическая симуляция освещения, а способ добавить визуальную информацию к материалу. Основная задача — поместить вычисления внутрь функции, чтобы пользователю оставалось настраивать только необходимые параметры.

Требования

Пошаговое руководство по Fresnel в источниках подготовлено для Unreal Engine 4 и опубликовано на странице документации для версии 4.27. Поэтому названия меню и интерфейс примера приведены в соответствии с этим руководством. В источниках не указаны требования к созданию аккаунта, аппаратные требования или цена продукта.

Для работы понадобятся Content Browser и Material Editor, а также Material Function и Material. В примере используются следующие узлы: Constant 3 Vector, Transform, Camera Vector WS, Dot Product, Clamp, OneMinus, Power и Multiply. Чтобы функцию можно было настраивать, мы добавим два узла Function Input, а для вывода результата — Function Output.

Пошаговое создание Material Function с эффектом Fresnel

  1. Создайте ресурс функции. Щёлкните правой кнопкой мыши в Content Browser и выберите New > Materials & Textures > Material Function. Дайте функции название, описывающее её назначение. Использованное в примере имя Custom_Fresnel наглядно показывает, что делает функция.

  2. Соберите первую часть вычисления угла. Откройте Material Function и добавьте в граф узлы Constant 3 Vector, Transform, Camera Vector WS и Dot Product. Установите значение синего канала узла Constant 3 Vector на 1,0. Подключите его выход к входу Transform и настройте Transform для преобразования из Tangent Space в World Space. Подключите выход Transform к входу A узла Dot Product, а выход Camera Vector WS — к входу B. Это вычисление использует соотношение между направлением поверхности и направлением камеры.

  3. Ограничьте результат и получите эффект по краям. Подключите выход Dot Product к узлу Clamp и задайте диапазон значений от 0 до 1. Затем подключите выход Clamp к узлу OneMinus. Так получается инвертированное значение, которое передаётся на следующий этап и помогает усилить эффект по краям, как в примере.

  4. Задайте входные параметры функции. Добавьте два узла Function Input. Назовите один Fresnel Exponent, другой — Fresnel Intensity; в полях описания можно указать, за что отвечает каждый вход. Установите для обоих входов тип Scalar. Узлы Function Input позволяют передавать значения в функцию извне; позже их можно будет подключить в материале, использующем эту функцию.

  5. Подключите управление экспонентой и интенсивностью. Добавьте по одному узлу Power и Multiply. Подключите выход OneMinus к входу Base узла Power, а вход Fresnel Exponent — к входу Exp. Подключите выход Power к входу A узла Multiply, а Fresnel Intensity — к входу B. Таким образом, параметр экспоненты управляет распределением эффекта по краям, а интенсивность — его уровнем.

  6. Задайте выход и скомпилируйте функцию. Подключите выход узла Multiply к Function Output. Затем нажмите Apply на панели инструментов, чтобы скомпилировать Material Function. В исходном руководстве указано, что после успешной компиляции кнопка Apply становится неактивной. Если появляется ошибка, сначала проверьте соединения и типы входов.

  7. Проверьте функцию в материале. Создайте новый Material в Content Browser и откройте его, затем добавьте функцию Custom_Fresnel в граф. Как в примере, подключите узел Constant 3 Vector к Base Color и задайте красный цвет: R 1,0; G 0; B 0. Для настроек, помимо основного цвета, используйте четыре узла Scalar Parameter. Установите Metallic на 1,0, Roughness на 0,5, Fresnel Intensity на 1,0 и Fresnel Exponent на 5,0. Подключите выход функции к входу Emissive Color материала и скомпилируйте его. Эти значения служат начальными настройками примера; их можно менять для получения другого визуального результата.

  8. При желании опубликуйте функцию в библиотеке. Щёлкните по пустой области графа Material Function, чтобы снять выделение узлов; основные свойства функции появятся на панели Details. Включите параметр Expose to Library, добавьте описание и укажите подходящие категории. После этого функцию можно будет найти в Material Function Library внутри Material Editor. Чтобы новая функция появилась в списке, может потребоваться перезапустить редактор.

Распространённые ошибки

В первую очередь проверьте соединения входов и выходов: функция должна получать значения через Function Input и передавать рассчитанный результат через Function Output. Данные, подключаемые к вызову функции, должны соответствовать ожидаемому типу; например, подключение неподходящего типа ко входу, который ожидает Scalar, может привести к ошибке компиляции. Чтобы проверить промежуточный результат функции, щёлкните правой кнопкой мыши по узлу и выберите Start Previewing Node — так можно просмотреть граф вплоть до этого узла.

Другой риск — неосторожное изменение функции, уже используемой в проекте. Удаление узла Function Input может привести к исчезновению соответствующего входа в материалах, использующих эту функцию. Ошибка в функции или изменение её существующего поведения также могут повлиять на корректную компиляцию или работу подключённых материалов. Поэтому перед изменением опубликованной функции стоит проверить материалы, в которых она используется, и протестировать правки на примере материала.

Чем это полезно в архитектурной визуализации и рабочих процессах?

Если в архитектурной визуализации похожие эффекты поверхностей повторяются в разных материалах, перенос общей сети узлов в Material Function может упростить организацию и поддержку проекта. Когда меняется общий расчёт в функции, отпадает необходимость по отдельности обновлять множество скопированных графов. Выделение краёв можно использовать для визуальных экспериментов, особенно если нужно подчеркнуть силуэт модели. Однако источники не содержат сведений о влиянии функции на производительность архитектурного рендеринга, аппаратных требованиях или совместимости с разными версиями Unreal Engine. Перед внедрением общих функций студиям следует сначала проверить их в используемой версии и с текущей структурой материалов, а затем применять изменения под контролем.

Что делать дальше

Для начала меняйте значения Intensity и Exponent и изучите, как меняется результат на поверхности; добавьте одну и ту же функцию в несколько материалов, чтобы оценить, как повторное использование упрощает поддержку. Понятное название, описания входов и краткое описание в библиотеке помогут команде находить нужные функции. Преобразуя другие графы материалов в функции, также делайте входы и выходы понятными: скрытая внутри функции сеть узлов должна использоваться через ясный внешний интерфейс.

Источник и лицензия

Это руководство адаптировано на турецкий язык на основе документации Epic Games Material Functions Overview, Making Material Functions и Creating Material Functions. Исходные страницы опубликованы под свободной лицензией; пример рабочего процесса с Fresnel основан на документации Unreal Engine 4.27.

Источники

Источников: 3
D
dev.epicgames.comdev.epicgames.com/documentation/unreal-engine/unreal-engine-material-functions-overview
Пересказ
D
dev.epicgames.comdev.epicgames.com/documentation/unreal-engine/making-material-functions
Пересказ
D
dev.epicgames.comdev.epicgames.com/documentation/unreal-engine/creating-material-functions
Пересказ

Тексты источников не перепечатываются; короткие цитаты отмечены, остальное — наш пересказ и комментарий.

Мнение 3dsınıfı
3dОценка редактора

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

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

Частые вопросы

Для чего нужна Material Function в Unreal Engine?

Она позволяет сохранить сеть узлов материала как отдельный ресурс и повторно использовать её в других материалах. Сложную сеть можно добавить в граф материала как один вызов функции.

Какие параметры можно настраивать в Material Function с эффектом Fresnel?

В этом примере Fresnel Exponent управляет распределением эффекта, а Fresnel Intensity — его интенсивностью. Начальные значения примера для них в материале — 5,0 и 1,0 соответственно.

Как отобразить Material Function в библиотеке?

Включите параметр Expose to Library в основных свойствах функции и задайте её категории. Чтобы новая функция появилась в списке, может потребоваться перезапустить редактор.

Комментарии и форум — на турецком языке.Присоединиться к обсуждению
+

Похожие новости