Требования к 3D моделям
Данная статья описывает рекомендуемые принципы импорта 3D геометрии (3D моделей) в UNIGINE посредством редактора UnigineEditor.
GeometryГеометрия#
Рекомендуемым форматом файла для работы с 3D геометрией является формат FBX. Экспорт геометрии в файлы формата .fbx поддерживается большинством популярных редакторов: Autodesk Maya, Autodesk 3ds Max, Blender, Modo, Softimage и др.
После импорта файла геометрии .fbx в UNIGINE он автоматически конвертируется во внутренний формат MESH. Созданный .mesh файл сохраняется в папку data/.runtimes, которая создается в одной директории с оригинальным .fbx файлом.
Импортированный в UnigineEditor файл является Ассетом, "рабочей элементом" разработки виртуального мира. Добавленная геометрия (как и любой объект в сцене) является узлом (node) и виден в окне Nodes. Каждый отдельный материал, назначенный на данную геометрию, является отдельной поверхностью (surface) данного узла (поверхности находятся во вкладке Surfaces окна Parameters).
The mesh limitations set in UNIGINE:В UNIGINE установлены следующие ограничения для мешей:
Maximum number of vertices per meshМаксимальное количество вершин на меш | 4 294 967 295 |
Maximum number of surfaces per meshМаксимальное количество поверхностей на меш | 32 768 |
В качестве примера рассмотрим модель автомобиля: допустим, в стороннем 3D редакторе автомобиль состоит из пяти частей (корпуса и четырех колес). На корпус назначено два разных материала (краска и стекло), а на каждое из колес — один и тот же материал (резина). После экспорта данной модели в .fbx формат и последующего импорта в UNIGINE, будет создано пять различных .mesh файлов (по количеству частей модели в 3D редакторе). Каждый из четырех объектов колёс будет иметь по одной поверхности, так как был назначен один материал, корпус будет иметь две поверхности, так как было назначено два материала. Имена поверхностей при импорте будут соответствовать именам назначенных материалов в 3D редакторе. При этом материалы в UNIGINE будут созданы автоматически при импорте .fbx файла и имена также будут соответствовать именам материалов в 3D редакторе.
Texture CoordinatesТекстурные координаты#
UNIGINE поддерживает 2 UV-канала для геометрии. В настройках материалов можно указать, какой из UV-каналов использовать. Например: первый UV-канал можно использовать для непрерывно повторяющихся текстур (tiling) и текстур детализации, а второй — для карты освещения (light map).
Level of DetailsУровни детализации#
При создании нескольких вариантов одного объекта с различными уровнями детализации (далее, LOD) рекомендуется создавать их в качестве отдельных поверхностей. Это позволит уменьшить количество узлов в иерархии и упростить настройку видимости уровней детализации. Количество полигонов в соседних уровнях детализации должно отличаться минимум в 2-3 раза. Оптимальное количество уровней детализации — 2 или 3 (большее количество создаст лишнюю нагрузку на CPU).
Для того, чтобы LODы (разные объекты) были импортированы из 3D редактора в UNIGINE как отдельные поверхности одного узла, при импорте необходимо выбрать опцию merge static meshes.
TexturesТекстуры#
В 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), и т.д. Ознакомиться с полным списком постфиксом можно по ссылке.
AnimationАнимация#
В UNIGINE поддерживается skinned mesh анимация (вершинам 3D модели соответствуют кости, а у костей есть веса). Анимированная 3D модель может храниться двумя способами:
- только в .mesh файле, который содержит в себе и кости (и их веса) и геометрию 3D модели. Данный вариант подходит для простых объектов с одним типом анимации (например, двери лифта);
- отдельно в двух файлах: .mesh, который содержит только геометрию 3d модели и .anim, который содержит только кости и их веса. Данный вариант удобен для сложных 3D моделей с множеством анимаций (например, персонаж).
Для сохранения анимации в .fbx формате, при экспорте из 3D редактора необходимо активировать опции Animation и Bake Animation и указать, какие кадры необходимо запечь перед экспортом. При импорте .fbx файла с анимацией в UnigineEditor, будет создан .mesh содержащий геометрию, и отдельно .anim файл содержащий анимацию для этой геометрии.
The limitations set in UNIGINE:В UNIGINE установлены следующие ограничения:
Maximum amount of weights per vertexМаксимальное количество весов на вершину | 4 |
Maximum amount of bones per surfaceМаксимальное количество костей на поверхность | 128 |
Maximum number of active morph targets per surfaceМаксимальное количество активных morph targets на на поверхность | 7 for DX11 and OpenGL; unlimited for DX12 and Vulkan (100 is set by default)7 для DX11 и OpenGL; неограниченное количество для DX12 и Vulkan (по умолчанию задано 100) |
NamesИмена#
For file and surface names it is recommended to use English, low case, without spaces. Желательно использовать в именах файлов и поверхностей английский язык, нижний регистр, без пробелов.