В этой статье мы увидим, как мы реализуем подключаемый модуль Unity Mujoco для создания сцены, визуализируемой с помощью Intel Xe Graphics.
Что делает подключаемый модуль Mujoco?
Проект Deepmind Mujoco с открытым исходным кодом. Этот плагин позволяет нам моделировать (подробнее об этом позже).
У него есть различные среды для моделирования, такие как
- Муравей
- Хоппер
- Гепард
- Уокер-2д
Объекты показаны на рисунке ниже.
Платформа для программирования
Поскольку теперь Mujoco имеет открытый исходный код и доступен подключаемый модуль Mujoco-Unity, именно поэтому мы можем использовать C# для программирования и взаимодействия с объектами через создаваемую нами сцену (основное внимание в нашей статье здесь уделяется графике Intel Xe).
Как мы используем подключаемый модуль Mujoco в Unity
Плагин Unity использует физический движок mujoco, который, в свою очередь, может быть применен к активам Unity, реализующим игровую логику и использующим игровой объект, а также имеет доступ к полному API Mujoco.
Плагин Unity включает в себя package.json, и мы добавляем его из диспетчера пакетов, который распознает пакет, который импортирует кодовую базу C# в наш проект.
Unity необходимо добавить библиотеку mujoco, чтобы мы могли использовать все эффекты физического движка Mujoco.
Визуализированный поток Pipeline
Приступая к работе с физикой mujoco, необходимо выполнить определенные шаги.
Шаг 1. Нам нужно создать сцену в редакторе Unity.
Шаг 2. Нам нужно перейти в меню ресурсов редактора Unity.
Шаг 3: Далее нам нужно узнать, что в редакторе Unity доступна опция импорта сцены Mujoco.
Сцена Import Mujoco вызывает объект элемента mujoco внутри редактора Unity.
Возможны ошибки при добавлении файла пакета!
В консоли может появиться сообщение об ошибке, если мы не храним библиотеку dll в нужном месте. Та же структура файла должна следовать, как показано ниже.
Шаг 4. Импорт сцены Mujoco позволяет нам добавить XML-файл, представляющий собой объект, содержащий все возможности физического движка Mujoco.
Примечания: XML-файл
Mujoco загружает файлы XML, которые могут быть созданы в двух форматах.
i) Один из них — собственный формат MJCF.
ii) Другим будет формат URDF.
Файл XML имеет схему, связанную со структурой.
Общий способ распознавания файла модели показан ниже.
XML-файл в целом является очень важной частью интеграции физического движка Mujoco в Unity.
Есть шаги, которые управляют созданием всего дерева.
1 – XML-схема
XML-схема формирует основу организации XML-файла. Следовательно, очень важно учитывать 1-ю иерархию в дереве. Он состоит из всей необходимой информации о том, как структура выглядит в реальности.
Вторые XML-элементы и атрибуты
XML-элементы и атрибуты — необходимый способ разделения всего файла модели.
3-й MJCF
Формат файла MJCF лежит в основе физического поведения Mujoco.
В MJCF есть все, что необходимо для создания очень важной связи, соединяющей все возможные способы поведения Mujoco, и известно, что это уникальный элемент верхнего уровня с именем mujoco.
Он представлен как mujoco — → (!)
Уникальный элемент верхнего уровня идентифицирует файлы XML как файлы MJCF.
Четвертая схема mj_print
Модели MJCF генерируются функцией mj_print schema, которая печатает внутреннюю XML-схему в виде простого текста или HTML с дополнением стиля или  .
5-я пользовательская схема
Из функции мы печатаем пользовательскую схему, которая действует как мост между элементами XML и файлами MJCF.
Парсеры 6th
Пользовательская схема использует синтаксические анализаторы. Парсеры помогают хешировать правильное дерево регулярных выражений файла MJCF в XML и наоборот.
7. Файл модели
Анализатор, в свою очередь, проверяет файлы модели.
Примечания
Unity активно поддерживается физическим движком Nvidia. В PhysX каждое твердое тело является свободным телом.
Mujoco требует явного определения суставов для обеспечения подвижности.
Принципы проектирования с графикой Intel Xe.
Поскольку быстрый рендеринг является очень важным требованием для быстрого моделирования и визуализации. Графика Intel Xe подходит для очень быстрой обработки вывода.
Графика Intel Iris Xe Max
Графика Intel Iris Xe Max улучшает взаимное соответствие между элементами MJCF и компонентами Unity.
Теперь мы увидим, как Intel XE Graphics улучшает симуляцию в сцене единства.
Сканирование в сцене Mujoco в Unity является очень важным критерием, поскольку оно проходит через иерархию, и в начале рендеринга используется графика Intel Xe, которая улучшает сканирование иерархии игровых объектов для компонента Mujoco, а также других компонентов Physx вместе. Вся комбинация результатов была очень многообещающей для окончательного рендеринга, он был значительно улучшен с помощью Intel Xe Graphics и улучшил всю симуляцию.
Игровой движок Unity и сцена
Чтобы начать работу с Unity, нам сначала нужно создать 3D-проект.
Убедитесь, что проект находится в корневой папке.
Прежде чем начать работу с Mujoco, нам нужно импортировать файл package.json, который можно загрузить с
Нам нужно добавить файл package.json.
Чтобы сначала перейти к файлу package.json, нам нужно найти менеджер пакетов, который находится в опции окна.
Изучение других файлов XML.
Я использовал файл ant.xml из пакета Open AI GYM.
Нам придется импортировать сцену mujoco в единство.
Затем импортировал файл ant.xml внутри единства.
Поскольку файлы ant.xml были доступны, убедитесь, что MjGeom (скрипт), который имеет экстент плоскости, обнулен.
Добавьте плоскость 3D-объекта из параметра «Игровой объект». Удалите камеру слежения с торса.
Просто увеличьте масштаб самолета, так как мы будем добавлять к нему дополнительные активы.
Перетащите объект муравья в папку с ресурсами, чтобы он стал сборным.
Теперь нам нужно добавить скрипт C# для префаба Unity, чтобы он работал во время выполнения. Чтобы было интереснее, я добавил префабы по кругу.
Сценарий приведен ниже.
using UnityEngine; public class CircleFormation : MonoBehaviour { // Instantiates prefabs in a circle formation public GameObject prefab; public int numberOfObjects = 12; public float radius = 5f; void Start() { for (int i = 0; i < numberOfObjects; i++) { float angle = i * Mathf.PI * 2 / numberOfObjects; float x = Mathf.Cos(angle) * radius; float z = Mathf.Sin(angle) * radius; Vector3 pos = transform.position + new Vector3(x, 0, z); float angleDegrees = -angle*Mathf.Rad2Deg; Quaternion rot = Quaternion.Euler(0, angleDegrees, 0); Instantiate(prefab, pos, rot); } } }
Префаб — это префаб муравья, который мы создали. Результаты показаны ниже.
Пока я просматривал сцену, я сделал фрагмент обоих графических процессоров в своей книге ASUS Vivo. Результаты
Заключение.
Графика Intel Iris Xe Max помогла мне в результатах моделирования, поскольку она давала более потрясающие визуальные эффекты, а рендеринг вывода был быстрее.
Он смог объединить как Nvidia PhysX, так и Mujoco Physics в тандеме.
Дальнейшая работа над Unity ML с графикой Intel Xe будет продолжена. Следите за обновлениями.