Требования к 3D моделям
Данная статья описывает рекомендуемые принципы импорта 3D геометрии (3D моделей) в UNIGINE посредством редактора UnigineEditor.
Геометрия#
Рекомендуемым форматом файла для работы с 3D геометрией является формат FBX. Экспорт геометрии в файлы формата .fbx поддерживается большинством популярных редакторов: Autodesk Maya, Autodesk 3ds Max, Blender, Modo, Softimage и др.
После импорта файла геометрии .fbx в UNIGINE он автоматически конвертируется во внутренний формат MESH. Созданный .mesh файл сохраняется в папку data/.runtimes, которая создается в одной директории с оригинальным .fbx файлом.
Импортированный в UnigineEditor файл является Ассетом, "рабочей элементом" разработки виртуального мира. Добавленная геометрия (как и любой объект в сцене) является узлом (node) и виден в окне Nodes. Каждый отдельный материал, назначенный на данную геометрию, является отдельной поверхностью (surface) данного узла (поверхности находятся во вкладке Surfaces окна Parameters). Максимальное количество вершин на поверхность — 4294967295 для любого mesh объекта.
В качестве примера рассмотрим модель автомобиля: допустим, в стороннем 3D редакторе автомобиль состоит из пяти частей (корпуса и четырех колес). На корпус назначено два разных материала (краска и стекло), а на каждое из колес — один и тот же материал (резина). После экспорта данной модели в .fbx формат и последующего импорта в UNIGINE, будет создано пять различных .mesh файлов (по количеству частей модели в 3D редакторе). Каждый из четырех объектов колёс будет иметь по одной поверхности, так как был назначен один материал, корпус будет иметь две поверхности, так как было назначено два материала. Имена поверхностей при импорте будут соответствовать именам назначенных материалов в 3D редакторе. При этом материалы в UNIGINE будут созданы автоматически при импорте .fbx файла и имена также будут соответствовать именам материалов в 3D редакторе.
Текстурные координаты#
UNIGINE поддерживает 2 UV-канала для геометрии. В настройках материалов можно указать, какой из UV-каналов использовать. Например: первый UV-канал можно использовать для непрерывно повторяющихся текстур (tiling) и текстур детализации, а второй — для карты освещения (light map).
Уровни детализации#
При создании нескольких вариантов одного объекта с различными уровнями детализации (далее, LOD) рекомендуется создавать их в качестве отдельных поверхностей. Это позволит уменьшить количество узлов в иерархии и упростить настройку видимости уровней детализации. Количество полигонов в соседних уровнях детализации должно отличаться минимум в 2-3 раза. Оптимальное количество уровней детализации — 2 или 3 (большее количество создаст лишнюю нагрузку на CPU).
Для того, чтобы LODы (разные объекты) были импортированы из 3D редактора в UNIGINE как отдельные поверхности одного узла, при импорте необходимо выбрать опцию merge static meshes.
Текстуры#
В UNIGINE доступен импорт большинства популярных растровых форматов для текстур: .dds, .tga, .png, .jpg, .tif, .psd, .ppm, .pgm, .sgi, .rgb, .rgba, .hdr с поддержкой:
- 8, 16 и 32 битной точности на канал;
- альфа-канала;
- запеченных MIP-уровней.
Для использования текстур в проекте, необходимо создать папку uncompressed для исходных текстур. При использовании (назначении) текстур из этой папки, движок UNIGINE автоматически создаст .dds файл для данной текстуры со сжатием и MIP-уровнями.
Разрешение текстур должно быть кратным степени двойки, например: 128×128, 256×256, 512×512, 1024×1024, 2048×2048 и т.п. Поддерживаются как квадратные, так и прямоугольные текстуры (например, 256×1024 пикселей).
Важную роль играет постфикс в названии текстуры. Благодаря постфиксу, движок UNIGINE знает, для чего будет использоваться та или иная текстура и будет использовать соответствующие алгоритмы сжатия и работать с определенными цветовыми каналами.
К примеру, постфикс _alb предназначен для текстур альбедо (albedo), постфиксы _n и _nrgb для текстур нормалей (normal map), и т.д. Ознакомиться с полным списком постфиксом можно по ссылке.
Анимация#
В UNIGINE поддерживается skinned mesh анимация (вершинам 3D модели соответствуют кости, а у костей есть веса). Анимированная 3D модель может храниться двумя способами:
- только в .mesh файле, который содержит в себе и кости (и их веса) и геометрию 3D модели. Данный вариант подходит для простых объектов с одним типом анимации (например, двери лифта);
- отдельно в двух файлах: .mesh, который содержит только геометрию 3d модели и .anim, который содержит только кости и их веса. Данный вариант удобен для сложных 3D моделей с множеством анимаций (например, персонаж).
Для сохранения анимации в .fbx формате, при экспорте из 3D редактора необходимо активировать опции Animation и Bake Animation и указать, какие кадры необходимо запечь перед экспортом. При импорте .fbx файла с анимацией в UnigineEditor, будет создан .mesh содержащий геометрию, и отдельно .anim файл содержащий анимацию для этой геометрии.
Максимальное количество костей на поверхность — 128. Максимальное количество весов на вершину — 4.
Имена#
Желательно использовать в именах файлов и поверхностей английский язык, нижний регистр, без пробелов.