# SDK VUFORIA + UNITY



**Ключевые слова:** _Vuforia sdk, Vuforia Developer Portal, Unity, Prefab, GameObject_

Разберём работу sdk Vuforia для игрового движка Unity. Широкий спектр возможностей Vuforia sdk, позволяет реализовать большинство потребностей на рынке разработки и приложений дополненной реальности.&#x20;

Перейдем к подготовке к работе и начнем с требований к 3d моделям.

* Правило бюджета полигонов: используются **низко полигональные** модели​
* Правило текстурной карты: текстурную карту лучше размещать в рамках **одного UV-**\
  **пространства**
* Правило квадрата: текстурная карта должна представлять из себя **квадрат** (512\*512,\
  1024\*1024, 2048\*2048)&#x20;
* Рекомендуемые форматы: **obj, fbx**\


На примере изображений импортируемых объектов, рассмотрим **правило бюджета полигонов** (Рис. 1).

![](https://i.postimg.cc/LsZ3fdj3/2022-04-27-163904.png)

Рис. 1 Полигональное соотношение

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

**Правило текстурной карты.** Текстуры объекта должны быть собраны на одном изображении. Это уменьшает нагрузку на движки при сборке 3d моделей (Рис. 2).

![](https://i.postimg.cc/kXJrys1b/2022-04-27-164841.jpg)

Рис. 2 Текстурная карта\


**Правило квадрата.** На квадратных текстурах легче всего располагать какие-либо элементы UV-развертки импортируемых объектов. Они легче распознаются и накладываются на 3d-модели (Рис. 3). &#x20;

![](https://i.postimg.cc/K8sRbRk0/2022-04-27-165205.jpg)

Рис. 3 Текстура\


**Основные форматы:**

* Obj – это простой формат данных, который содержит только 3Д-геометрию, а также параметры,​которые создают полигоны. Текстуры придется перекидывать в ручную и то же самое с анимацией.
* Fbx – формат данных, обеспечивающий совместимость различных программ 3Д-графики и позволяющий передавать информацию о моделях, текстурах и анимации.

**Где же можно найти 3d модели для проектов?**

* [Asset Store Unity : lowpoly модели](https://assetstore.unity.com/3d?\&free=true). Встроенный в unity магазин, у которого также есть веб-версия. В наличие не только 3d модели, но и 2d, видео и музыка.
* [Sketchfab](https://sketchfab.com/tags/free). Большой выбор бесплатных 3d моделей
* [CGTrader](https://www.cgtrader.com/ru)\


Программное обеспечение, необходимое для создания приложений в дополненной реальности.

* Unity 3D - установка через Unity Hub​
* Visual Studio Code с поддержкой C#
* Vuforia SDK - установка через Unity
* Blender
* GIMP\


Требований к изображению, чтобы оно впоследствии смогло стать полноценным **маркером** не много, однако не соблюдение этих правил зачастую приводит к ошибкам.

* Не периодичная структура паттернов, отсутствие радиальной симметрии​
* Печатное изображение должно быть не менее 10х10см
* Большое количество "углов" - контрастных перепадов цветов\


Основные понятия модуля:

**Asset** — любой объект или сущность, которую вы можете использовать в своей работе в Unity. Ассеты могут быть как импортированными файлами (аудио-файлы, сторонние 3d-модели, текстура), так и созданы в самой Unity (примитивы, game objects, клипы анимации, материалы).\
**Prefab** — лучше всего воспринимать, как заготовку, в которой находится ассет или группа ассетов, обладающих какими-то свойствами, параметрами. При добавлении такого префаба в сцену создается объект, находящийся в зависимости от исходного префаба. То есть при внесении любых изменений в сам префаб, они сразу же будут внесены и в объекты-наследники.\
**Asset Store** — онлайн-библиотека платных и бесплатных ассетов, доступная любому пользователю Unity.\
**GameObject** — основная сущность в сцене Unity. Любой GameObject — это контейнер (или точка в пространстве), которому присвоены какие-то свойства и параметры. От этого зависит его суть, что он из себя представляет, какую функцию выполняет в сцене.\
**UV-развертка** — соответствие между координатами, точками на поверхности трехмерного объекта координатам на двумерной текстурной карте. Развертка обычно создается вручную в программе трехмерного моделирования, но может быть сгенерирована там и автоматически, при этом качество ее будет скорее всего низким. При подготовке собственной модели к экспорту в Unity необходимо создать или сгенерировать UV-развертку, иначе при работе с такой моделью в Unity будут возникать ошибки. В библиотеках ассетов из Asset Store все модели уже обладают текстурами и UV развертками.

**Список использованных источников и литературы**

1. Unity User Manual \[Электронный ресурс] // Официальная страница Unity. – URL:[https://docs.unity3d.com/Manual/index.html](https://www.blender.org/support/tutorials/).
2. Официальная страница Unity ([https://unity.com/ru](https://www.blender.org/))
