Сетки, материалы, шейдеры, освещение, оптимизация и многое другое.
Специально для тех, кто ищет полноценный аналог Unity или Unreal Engine, мы продолжаем серию статей о безболезненном переходе на UNIGINE с зарубежных движков.
Во втором эпизоде мы рассмотрим миграцию Unity с точки зрения 3D-художника.
Ресурсы
Система ресурсов в UNIGINE очень похожа на систему в Unity. Прежде всего, давайте посмотрим на окно Обозреватель активов - аналог окна Проект в Единстве.
Содержимое папки находится здесь данные - все ресурсы проекта.
Сюда во время импорта копируются текстуры, модели и другие ресурсы.
Как и в Unity, ресурсы можно обновлять с помощью сторонних приложений (исправлять текстуру или модель), и изменения автоматически подхватываются в редакторе UNIGINE. Привычных Пакетов здесь нет, как и менеджера пакетов — набор возможностей определяется редакцией SDK, а также плагинов движка и редактора.
Сообщество y Edition сама по себе представляет собой полноценную среду разработки, и Инженер г и Сим содержат дополнительные опции для конкретных требований.
- Пакеты в редакторе UNIGINE - ресурсы *.
upackage
— позволяют удобно переносить наборы ассетов со всеми зависимостями между проектами; они импортируются в проект как обычные ресурсы, а содержимое распаковывается на месте.Дополнительные наборы контента в UNIGINE доступны как дополнения в браузере SDK.
- Набор стандартных ресурсов - материалы, шейдеры, текстуры - находится в папке.
основной (содержимое архива core.ung ).
- конфиги — текстовые файлы конфигурации проекта, здесь, например, можно задать запуск мира по умолчанию.
Компоненты против узлов
В Единство главный объект сцены - Игровой объект - по сути это просто точка в пространстве сцены с трансформацией.Компонентный подход, принятый в Единство , подразумевает, что любая функциональность Игровой объект определить назначенные ему компоненты, являются ли они стандартными или нет. В UNIGINE подход к элементам мира более строгий.
Все узлы имеют свой тип и делятся на группы : Есть объекты , источники освещения , наклейки , объекты для дизайна уровней и так далее.
Вы можете назначить компонент C# (или C++) всем узлам, чтобы применить логику программы или расширить базовую функциональность узлов.
Все узлы доступны в меню Создавать ( Shift + ПКМ в окне просмотра):
Узел-пустышка похоже на пустой Игровой объект , который можно использовать для группировки объектов и в логике.
Вероятно, это один из наиболее часто используемых узлов в проектах, поэтому стоит запомнить горячую клавишу Ctrl+Г , который создает новый фиктивный узел (если нет выделения) или группирует выбранные узлы.
Многие объекты дизайна уровней (некоторые из них доступны в Unity в URP/HDRP или в сторонних пакетах) включены в UNIGINE «из коробки»:
Кучево-дождевые облака над террейном
Иерархия в Unity
Мировые узлы в UNIGINE В окне Мировые узлы представлен весь мировой контент. Среди важных отличий от Unity: отображается только содержимое загруженного в данный момент мира, а отключение родительского узла строго влияет на все дочерние узлы.
Сетки
То же, что и в Единство , сетка — основной графический примитив в UNIGINE. Вы можете использовать модели FBX из проектов Unity, не меняя масштабирования — 1 единица в UNIGINE также равна 1 метру.Но UNIGINE имеет правостороннюю систему координат: ось Z+ направлена вверх, а ось Y+ — вперед. Если важно, чтобы модель имела правильную ориентацию по умолчанию, это необходимо учитывать при экспорте геометрии из 3D-пакетов.
Рекомендации по наиболее популярным пакетам — в нашем документация .
Левая система координат Unity
Правая система координат UNIGINE После импорта в проект ассет FBX становится доступен в Обозреватель активов и является контейнером для всех хранящихся в нем сеток.
В Редактор Unity Чтобы получить доступ к содержимому актива FBX, используйте кнопку со стрелкой, расположенную рядом с ним:
Сетки и материалы внутри ресурса FBX в редакторе Unity В UNIGINE вы можете сделать то же самое, дважды щелкнув ресурс:
Сетки внутри ресурса FBX в UNIGINE Каждая отдельная геометрия в модели FBX представлена исполняемым активом в формате .
сетка .
При необходимости отдельные объекты можно объединить в один, настройки импорта модели довольно гибкий.
Материалы и текстуры (если они присутствуют в сцене и при условии, что включен их импорт) располагаются в папке рядом с ассетом.
Как и в редакторе Unity, вам просто нужно перетащить ресурс FBX в область просмотра, чтобы расположить объект на сцене.
В UNIGINE это добавит узел Сетка объекта Статическая в мировую иерархию для каждой отдельной сетки — аналогично GameObject с компонентами Сетчатый фильтр И Сетчатый рендерер в Единстве.
Групповые узлы Объект представляют собой основные строительные блоки виртуального мира.
Например, Статическая сетка представляет сетки, геометрия которых не изменится, Динамическая сетка для деформируемой геометрии (из кода или с использованием физики).
Похожие параметры сетки в Unity и UNIGINE Здесь в игру вступают поверхности ( Поверхности ).
UNIGINE разбивает исходную сетку на группы полигонов в соответствии с назначенным материалом (при моделировании в 3D-пакете) — поверхностями.
Это используется при оптимизации вызовов отрисовки и позволяет настраивать параметры видимости и освещения для каждой поверхности отдельно.
А чтобы использовать разные материалы (прозрачный/непрозрачный, блестящий металл/человеческая кожа) на разных частях объекта, нужно разделить меш на поверхности (т.е.
назначить разные материалы полигонам в 3D-редакторе).
Но если части геометрии должны двигаться отдельно (например, вращающиеся колеса автомобиля), то они должны быть представлены отдельными сетками.
Для удобства поверхности можно организовать в иерархию и выключите.
Уровни детализации (LOD)
В Единство компонент ЛОД Групп Отвечает за работу с несколькими уровнями детализации геометрии.Активный уровень детализации определяется диапазоном, основанным на отношении высоты экранного пространства сетки к общей высоте экрана.
ЛОД Групп В UNIGINE уровни детализации представлены поверхностями с настройки видимости на основе расстояний от камеры — на более низком уровне, чтобы обеспечить точную настройку.
Вы можете выбрать минимальное и максимальное расстояние просмотра от камеры для каждой поверхности.
Для плавное переключение между лодами ( Перекрестное затухание ) вам необходимо установить минимальное и максимальное расстояние отображения (Минимальное затухание/Максимальное затухание) .
Настройки уровня детализации поверхности Важный! Эти параметры поддерживают значения -инф и инф (-infinity и +infinity) для указания минимального и максимально возможного значения, чтобы, например, последняя жила была видна на произвольно большом расстоянии от камеры.
UNIGINE предлагает автоматическое создание уровней детализации для каждой сетки с возможностью автоматического сглаживания нормалей при импорте модели.
Если вам нужен полный контроль над геометрией лодок, вы можете использовать опцию Объединение по постфиксам и объединить объекты из импортированной сцены FBX по постфиксам в их именах: например, сетки car_lod_0, car_lod_1 и car_lod_2 превратятся в поверхности с выбранными расстояниями видимости.
Подробнее читайте в Руководство по импорту FBX .
Анимация
Unity поддерживает как скелетную анимацию, так и анимацию ключевых кадров основных свойств объекта.Модели FBX с анимацией костей при импорте включают анимационные клипы.
В UNIGINE такие клипы представлены ресурсами .
аним , отдельный ресурс для каждого клипа.
UNIGINE импортирует только скелетную анимацию.
Объект Сетка со шкурой является аналогом компонента Unity Средство рендеринга скиновой сетки для обработки скелетной анимации: помимо сетки в ней можно указать клип для проигрывания анимации.
Для создания синематиков и произвольной анимации любых объектов и свойств в UNIGINE используйте инструмент Трекер .
Unity предоставляет систему анимации Меканим с поддержкой конечного автомата, который управляет состояниями анимации и переходами между ними.
Система скелетной анимации UNIGINE основана на работе со слоями анимации: вы можете настроить несколько слоев с разными клипами (как для всей модели, так и для ее частей) и выполнять смешивание между ними с помощью программного API.
Пример анимации с использованием двух слоев Для получения дополнительной информации см.
следующие статьи:
- Требования к модели
- Справочник по API классов ObjectMeshSkinned
- Раздел анимации примеры на C#
BlendShapes
Точно такой же объект Сетка со шкурой поддерживает морфинг.Если включено Импортировать цели морфинга , из FBX будет импортировано морфинг объектов для каждой поверхности.
В компоненте Unity Средство рендеринга скиновой сетки предоставит доступ к blendshapes в параметрах:
В UNIGINE вы можете назначить произвольное количество слоев морфинга из существующих объектов морфинга и управлять их смешиванием с помощью Методы API .
Материалы и шейдеры
Как и в Unity, затенение в UNIGINE основано на физически правильных свойствах материала ( ПБР ).Хотя для тех, кто привык управлять зеркальными бликами материалов по старинке, UNIGINE предлагает Зеркальный рабочий процесс , похоже на шейдер Стандартный ( Зеркальная установка ) в Юнити.
В Unity материалы реализуют определенный выбранный шейдер в зависимости от совместимости этого шейдера с типом компонента.
Рендерер .
Например, для Сетчатый рендерер используются материалы, реализующие стандартный физически корректный поверхностный шейдер (или Горит в URP/HDRP).
В UNIGINE система материалов состоит из базовые материалы и унаследовал от них нестандартные материалы .
Материалы в конвейере рендеринга UNIGINE Базовый материал — это нередактируемый набор параметров и текстур, которые передаются в шейдеры фрагментов, вершин и геометрии в ходе нескольких проходов рендеринга.
Базовый материал можно использовать только для узлов или поверхностей определенного типа.
Для всех типов узлов в UNIGINE есть готовый библиотека основных материалов и стандартные шейдеры для моделирования практически любого реального материала.
Все материалы указаны в окне Материалы (меню: Окна -> Иерархия материалов).
Основные материалы на высшем уровне.
mesh_base — это базовый PBR-материал в UNIGINE с впечатляющим списком стандартных эффектов и настроек, используемых для сеток.
Его основные параметры:
- Альбедо ,
- Металличность ,
- Шероховатость (шероховатость поверхности вместо Гладкость в Единстве),
- Зеркальный (для тонкой настройки бликов на диэлектриках),
- Микрофибра (для имитации ворсистых поверхностей).
Давайте сравним идентичные режимы с режимом рендеринга в Unity:
- Непрозрачный – Непрозрачный;
- Вырез – Альфа-тест;
- Прозрачный – Альфа-смесь.
Создание нового материала в Обозреватель активов подбираем основной материал, тем самым определяя тип совместимых предметов.
Все материалы могут образовывать иерархия для удобства: изменяя параметры родительского материала, можно изменить сразу всю ветку всех дочерних материалов, только переопределенные параметры «детей» остаются прежними.
Это очень полезно в больших проектах, когда художник готовит базовый материал для определенного типа поверхности (скажем, дерева или окрашенного металла), а затем от него наследуются новые материалы с небольшими изменениями, подстраиваемыми под объекты.
Вы можете собрать свой базовый материал со сложными эффектами для сеток и декалей, используя визуальный интерфейс.
В отличие от Unity Shader Graph, на выходе мы получаем не шейдер, а материал.
Мастер-стек с контекстами Vertex и Fragment отсутствует, основной узел Материал , который включает опции для вершинных и фрагментных шейдеров.
Вы можете начать изучать возможности с примеры графиков материалов .
Смотрите также:
Текстуры
UNIGINE поддерживает те же форматы текстур, что и Unity: 2D, 3D, Cubemap и 2D Array, но типы текстур (представленные предустановками настроек в UNIGINE) другие.В проекте есть пресеты практически для всех текстурных приложений: PBR-текстуры, маски, карты высот и так далее.
Мы настоятельно рекомендуем использовать правильные пресеты текстур, так как это обеспечит наиболее подходящее сжатие и правильные настройки импорта.
Для удобства пресеты применяются автоматически на основе постфиксы названий текстур : файл mytexture_alb.png будет распознан как текстура альбедо, и mynormal_c.hdr - как кубическая карта.
UNIGINE также позволяет импортировать и использовать текстуры «как есть», без изменений.
В некоторых случаях сжатие текстур принесет только вред — например, при использовании текстур вершинной анимации или пользовательских карт hdr — поэтому вы можете пометить эту текстуру как Без изменений .
Несколько слов о подготовке текстур.
Текстура Затенение Для mesh_base должен иметь следующий формат канала:
- Р – Металличность;
- Г – Шероховатость;
- Б – Зеркальный (при необходимости);
- А – Микрофибра (при необходимости).
Карты нормалей в UNIGINE - Д- (Обычный стиль DirectX).
Если вы берете текстуры непосредственно из проектов Unity, в которых используются карты нормалей Y+ (в стиле OpenGL), вы можете использовать флаг Инвертировать G-канал для комфорта.
UNIGINE использует двухканальные карты нормалей (вычисляется третья координата вектора нормалей), а третий канал может использоваться для карты прозрачности или другой информации при необходимости.
UNIGINE использует собственный формат представления касательного пространства ( Касательное пространство ), используемый для отображения нормалей, не полностью совместим с Unity. Обычно вы можете импортировать касательное пространство непосредственно из FBX, но нужно быть осторожным — разные пакеты моделирования используют разные касательные пространства.
В целом 3D-художники дают следующие рекомендации по запеканию карт нормалей:
- Попробуйте создать разрыв УФ-островков и края без сглаживания ( Жесткий край ) в местах, где углы контакта многоугольников острее 45 градусов;
- Всегда запекайте карты нормалей на триангулированной сетке, чтобы предотвратить искажение нормалей в будущем, когда триангуляция изменится во время импорта;
- Соблюдайте расстояние между УФ-островками.
В этом случае нет необходимости сохранять касательное пространство при экспорте модели в FBX — UNIGINE автоматически рассчитает его при импорте модели.
Также для каждой назначенной текстуры в параметрах материала доступны настройки ограничения текстур по осям (clamping) и флаг отключения анизотропной фильтрации.
Общие настройки текстур (качество и разрешение) доступны в настройках рендеринга.
Освещение и атмосфера
Так же как и в Единство UNIGINE имеет как динамическое (в реальном времени), так и статическое (заранее рассчитанное) освещение.Инструментарий позволяет объединить оба подхода.
Источники света
В Единство источники света представлены компонентом Свет .
UNIGINE предоставляет несколько типов источники света , аналогичный тем, которые используются в Unity.
Тени
В Единица y источники света могут находиться в режимах В реальном времени ( в реальном времени ), Смешанный ( смешанный ) И Запеченный ( запеченный ), а также по умолчанию отбрасывает тени в реальном времени (с использованием популярной техники Shadow Mapping).Когда дело доходит до запекания света (включая тени), рабочий процесс Единство подразумевает использование световые карты ( Карты освещения ).
Вклад Игровой объект Освещение для выпечки определяется его флагом.
Статический (Внести вклад GI).
Теги: #Разработка игр #туториал #Работа с 3D-графикой #3d-графика #3d-движок #рендеринг в реальном времени #gamedev #unigine
-
Волгоград
19 Oct, 24 -
Поиск Веб-Хостинга Для Вашего Сайта
19 Oct, 24 -
Переезд Офиса В Дата-Центр
19 Oct, 24 -
Рейтинг Ix, 2017 Год
19 Oct, 24 -
Мы Используем Социальные Сети В Личных Целях
19 Oct, 24