Документация/Статьи/Обзор редактора моделей

From NeoAxis 3D Engine Wiki

Jump to: navigation, search
Перейти на уровень выше

Contents

Описание

Редактор 3D моделей является составной частью редактора ресурсов. Предназначен для настройки 3D моделей, позволяет следующее:

  • просматривать .mesh файлы,
  • перемещать, поворачивать и масштабировать 3D модели,
  • просматривать и генерировать уровни детализации (LOD - Level of Detail) моделей,
  • просчитывать векторы касательных (Tangent Vectors),
  • просматривать текстурные развертки (UV channels), привязанный к модели скелет и анимацию.
Редактор моделей

Редактирование

Для того, чтобы перейти в режим редактирования, необходимо нажать правой кнопкой мыши на файле модели в окне ресурсов и выбрать пункт Edit.

MeshEditor 002.jpg

Перемещение, поворот, масштабирование

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

MeshEditor 003.jpg

Для перемещения модели нужно нажать на кнопку Move. В появившемся диалоге указывается относительное смещение модели по трем координатам — X, Y и Z.

MeshEditor 004.jpg

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

MeshEditor 005.jpg

Для масштабирования модели нужно нажать на кнопку Scale. В появившемся диалоге указываются коэффициенты масштабирования, соответствующие трем осям — X, Y и Z. Для увеличения модели вдвое, требуется указать коэффициент 2. В то же время коэффициент 0.5 указывает на двукратное уменьшение модели. Кроме того, в диалоге имеется флаг Proportional Scaling, отключив который можно указать коэффициент для каждой оси.

MeshEditor 006.jpg

Любая из трансформаций (перемещение, поворот или масштабирование) может быть применена к скелету, на который ссылается данная модель. За применение трансформации к скелету отвечает флаг Apply to skeleton.

Присвоение материала

Каждая модель содержит в себе один или несколько сабмешей (Sub mesh), которые представляют собой подмножества вершин и полигонов модели. Каждому сабмешу можно назначить свой материал.

Чтобы присвоить материал редактируемой модели, необходимо развернуть вкладку SubMeshes в окне свойств. Далее выбрать параметр MaterialName у нужного сабмеша и нажать кнопку "...". Геометрия выбранного сабмеша при этом подсвечивается зеленым цветом.

MeshEditor 007.jpg

В появившемся окне необходимо выбрать файл материала, который будет ассоциирован с сабмешем.

MeshEditor 008.jpg

Если для модели используется материал с картой нормалей (Normal Mapping), то редактор может сообщить о том, что требуется просчет касательных векторов (Tangent Vectors). Для расчета касательных векторов нужно нажать кнопку Channels в окне свойств.

MeshEditor 009.jpg

Затем в открывшемся окне Mesh Vertex Channels, в группе элементов Tangent vectors, нужно нажать кнопку Generate.

MeshEditor 010.jpg

Скелет и анимации

Модель может ссылаться на файл скелета (.skeleton), путь к которому указывается в свойстве SkeletonName.

MeshEditor 013.jpg

Чтобы увидеть скелет, нужно отметить галочку Show skeleton, которая находится внизу окна свойств.

MeshEditor 013.jpg

При наведении курсора на кость можно увидеть её имя и список вершин, на которые она влияет.

MeshEditor 014.jpg

Для просмотра анимаций используется выпадающий список Animations в окне свойств. Если данный объект не анимирован, то в списке будет находиться единственный пункт None.

MeshEditor 015.jpg

Настройка уровня детализации (LOD)

Уровни детализации (Level of Detail или LOD) используются для повышения производительности приложения. Обычно, когда объект находится на некотором удалении от камеры, нет смысла прорисовывать его в полной детализации. Для этих целей модель может содержать в себе несколько моделей с разным количеством вершин и треугольников. Для каждого уровня детализации указывается расстояние до камеры.

Существует два способа настройки LOD:

  • Автоматический. Редактор моделей сам сгенерирует упрощенные варианты модели.
  • Ручной. Разработчик выбирает низкодетализированные модели ссылаясь на другие .mesh файлы.

В окне свойств с помощью выпадающего списка LODs можно посмотреть определенный уровень детализации.

Автоматическая настройка LOD

Автоматическая генераций уровней детализации отнимает у разработчика минимум времени. С другой стороны результат автоматической генерации может быть неудовлетворительным. В таком случае нужно подготавливать уровни детализации вручную.

Для автоматической генерирации уровней детализации нужно нажать кнопку Generate LODs в окне свойств (Properties).

MeshEditor 016.jpg

В появившемся окне указывается количество генерируемых уровней детализации, дистанция до камеры (в метрах) и процент граней, убираемых на каждом уровне по отношению к предыдущему.

MeshEditor 017.jpg

К примеру, в модели имеется 994 грани (faces). Установив количество генерируемых уровней детализации в 3, расстояние в 20 и процент граней убираемых на каждой итерации в 40%, можно получить три дополнительные модели. В итоге получится четыре уровня детализации одной модели. При отдалении от камеры на каждые 20 метров загружается более низкодетализированная модель. Ниже — пример того, как они могут выглядеть:

Ручная настройка LOD

Второй способ настройки уровней детализации — ручной. В данном случае модели уровней детализации должны находиться в отдельных .mesh файлах. Для их подключения необходимо воспользоваться свойством ManualLODs. Выберите свойство и нажмите кнопку "..." напротив него.

MeshEditor 022.jpg

Чтобы добавить уровень детализации, нужно нажать кнопку Add. В настройках указываются параметры FromDepth (расстояние до камеры, с которой включается уровень) и MeshName (имя модели).

MeshEditor 023.jpg

Слои текстурных координат (UV Channels)

С помощью выпадающего списка UV Channels окна свойств увидеть текстурные координаты сабмешей модели.

MeshEditor 026.jpg
Текстурная развертка камня

Развертка

Слой с текстурными координатами может быть помечен как UV Unwrap. Такой пометкой указывается слой текстурных координат, который является разверткой. Слой с разверткой нужен для расчета статичного освещения (lightmaps). Чтобы установить флаг UV Unwrap для одного из слоев текстурных координат, нужно воспользоваться окном настройки каналов, который открывается по кнопке Channels.

Развертку можно рассчитать автоматически с помощью встроенной утилиты, хотя она далека от идеала и рассчитана только для тестирования. Лучше рассчитывать развертку в пакете 3D моделирования. Утилита находится в окне настройки каналов, которое открывается по кнопке Channels

MeshEditor 028.jpg

Для расчета нужно нажать кнопку Generate в группе элементов UV Unwrap.

MeshEditor 029.jpg

Расчет Ambient Occlusion

Инструмент Calculate Ambient Occlusion позволяет рассчитать статичное освещение (Ambient Occlusion) для данной модели. Инструмент открывается по кнопке Utils окна свойств.

MeshEditor 032.jpg

Включает в себя следующие параметры:

Параметр Описание
Options
Blur Включить/выключить размытие после расчета.
IterationCount Количество итераций. Чем больше итераций будет произведено, тем качественнее будет расчет.
MapSize Размер текстуры освещения.
Power Яркость освещения. Чем выше значение, тем сильнее контрастность текстур освещения.
RayLength Длина луча от источника света.
Output
OutputFileName Имя выходного файла с текстурой освещения.
SplitBySubMesh Включить/выключить разделение текстур по сабмешам. Если выбрано значение True, то для каждого сабмеша будет создана отдельная текстура.

Настройки редактора

MeshEditor 034.jpg

Настройки редактора находятся в окне настроек редактора ресурсов, которые открываются через меню Tools -> Options.

Настройки включают в себя следующие параметры:

Параметр Описание
General
Background Color Цвет фона рабочего окна. Фон виден в случае, когда свойство SkyBox не настроено.
Show Axes Включить/выключить отображение координатных осей.
Show Grid Включить/выключить отображение сетки. Размер одной клетки по умолчанию равен 1 метру.
Sky Box Skybox (небо), отображаемое в качестве фона редактора.