This page has been translated automatically.
Последние новости:
Содержание:

UNIGINE 2.18.1: Апскейлеры, оптимизированные настройки, потоковое видео в приложениях, интеграция MATLAB

Ключевые изменения

  • Поддержка апскейлинга: NVIDIA DLSS 3 и AMD FSR 2.2 (экспериментальная)
  • Интеграция CUDA для Vulkan и DirectX 12.
  • Оптимизированные настройки качества с повышением производительности до 80–90%
  • Обновлена ​​интеграция MATLAB через ROS
  • Воспроизведение видеопотоков в приложении
  • Улучшенный инструмент «Профилировщик поверхности».
  • Отслеживание зависимостей для runtime-нод
  • Многоязычный интерфейс в Редакторе и Браузере SDK
  • Упрощенный импорт сцен из проектов Unity
  • Обновление бесплатного учебного курса

Апскейлинг: DLSS и FSR (экспериментальный)

Мы продолжаем повышать производительность нашего движка, добавляя новые функции, поддерживая увеличивающееся разрешение и повышая реалистичность конечного изображения, и все это в рамках того же строгого бюджета кадров. В этом контексте важность апскейлеров невозможно переоценить; они уменьшают необходимость рендеринга большего количества пикселей для более высоких разрешений, тем самым высвобождая ресурсы для других важных улучшений и поддерживая приемлемый уровень производительности. С этой целью мы интегрировали поддержку NVIDIA DLSS 3 (Deep Learning Super Sampling) и AMD FSR 2.2 (Fidelity FX Super Resolution). Эти технологии позволяют повышать разрешение изображения на широком спектре устройств разных производителей и использовать различные настройки качества как для статических, так и для динамических сцен.

Эта функция в настоящее время находится на экспериментальной стадии и поддерживает только конфигурации с использованием Windows и DirectX 12. Подробные требования и ограничения совместимости для каждого апскейлера изложены в сопроводительной документации.

Оптимизированные настройки качества

UNIGINE Engine включает в себя широкий набор настроек и параметров, предназначенных для управления рендерингом, многие из которых специфичны для определенных случаев и сцен и могут не понадобиться в других. Для реализации различных сценариев мы предлагаем обширные возможности оптимизации. Мы доработали настройки качества для нашего пакета примеров UnigineScript, а также для пакетов примеров C++ и C#, включенных в качестве демонстраций в SDK. Эти оптимизации обеспечивают плавную работу как высокопроизводительных систем, так и менее мощных платформ, предоставляя все необходимые параметры и настройки, необходимые для оптимальной производительности.

Средний прирост производительности от такой оптимизации для сэмплов C++, C# и UnigineScript составил 80-90% (тестовая конфигурация при разрешении 1920x1080: Intel i3-4160; NVIDIA GTX 1050 Ti (4 ГБ); 8 ГБ ОЗУ).

Улучшения VR

В систему UNIGINE Core VR был реализован ряд улучшений и исправлений, призванных повысить ее стабильность и надежность. Эти улучшения включают в себя:

  • Исправлена ​​проблема, из-за которой отдельные окна просмотра не использовали общий уровень автоматической экспозиции и баланса белого , что приводило к визуальной несогласованности периферийных дисплеев на шлемах Varjo HMD.
  • Исправлен сбой при переключении vr_foveated_rendering_enabled несколько раз при использовании Varjo VR API.
  • Исправлена ​​проблема с отключенным по умолчанию режимом периферийного рендеринга в VR (возвращено включенное состояние по умолчанию).
  • Исправлены некоторые предупреждающие сообщения Вархо.
  • Исправлены проблемы с vr_mirror_mode 1 и 2, вызывающие множество отладочных сообщений о неправильном прямоугольнике отсечения в режиме отладки видео на Vulkan.

Мы также оптимизировали настройки качества для шаблонов проектов VR, чтобы обеспечить оптимальную производительность на каждом уровне качества.

Начиная с версии 2.18, Vulkan является основным полнофункциональным графическим API для Linux, а версия 2.18.1 знаменует прекращение поддержки OpenGL для VR. Единственный оставшийся вариант для VR на OpenGL — использовать устаревшие плагины, такие как OpenVR, Varjo и Oculus.

Интеграция ROS + MATLAB

Мы добавили базовый пример модели усовершенствованной системы помощи водителю (ADAS), разработанной с использованием MATLAB, которая взаимодействует с симуляцией транспортного средства на базе UNIGINE через ROS (Robot Operating System). По сути, сценарии MATLAB используются для управления виртуальным транспортным средством в 3D-приложении реального времени на базе UNIGINE через сеть с использованием протокола связи ROS. Подобное моделирование играет важную роль в создании транспортных средств, оснащенных ADAS, или полностью автономных транспортных средств.

Этот пример доступен в виде шаблона проекта в UNIGINE 2 Sim SDK.

Интеграция CUDA для Vulkan и DirectX 12

UNIGINE Sim SDK теперь включает новый набор примеров, демонстрирующих, как взаимодействовать с внешним графическим API с использованием новых классов ResourceExternalMemory и ResourceFence в UNIGINE API). В примерах показано взаимодействие с NVIDIA CUDA Toolkit , но вы можете использовать их в качестве основы для интеграции графических API Движка (Vulkan, DX11, DX12) с другими графическими API (OpenGL, DX, CUDA и т.д.), которые могут принимать дескриптор и импортировать примитив синхронизации (например, внешний семафор в CUDA).

Этот подход позволяет взаимодействовать различным API с использованием разных графических API, например взаимодействие Media Foundation использующего DX11 с Движком, который использует DX12 или Vulkan.

В примерах также показано, как получать данные непосредственно из видеопамяти без обращения к процессору и обрабатывать их с использованием графического API, не связанного с движком.

Разница в производительности передачи текстур GPU -> CPU , выполняемой через CUDA 12.3 и средствами Движка, показана в таблице ниже (проверено на наших рабочих конфигурациях). Средний прирост производительности с CUDA составил х10 до х24 в зависимости от разрешения окна.

Вы можете проверить результаты на своем ПК, просто запустив новый сэмпл CUDATextureTransfer и включив Profiler .

В список сэмплов входят:

  • CUDAMeshDynamic : вершины общей динамической сетки обрабатываются на графическом процессоре с использованием CUDA.
  • CUDAStructuredBufferWrite : частицы в общем структурном буфере обновляются на графическом процессоре с помощью CUDA и растеризуются вручную с помощью материала Unigine с вычислительным шейдером (Compute Shader).
  • CUDATextureTransfer : общая текстура обрабатывается с помощью CUDA и копируется из видеопамяти в ОЗУ в Unigine Image .
  • CUDATextureWrite : общая текстура обрабатывается с помощью CUDA и отображается ны объекте Unigine.

Воспроизведение видеопотоков в приложении

Новый плагин UnigineVideoTexture делает доступным аппаратное декодирование видеопотоков с низкой задержкой из онлайн-источников в ваших приложениях, созданных на базе UNIGINE Sim SDK. Плагин можно скачать с Add-On Store.

В настоящее время плагин поддерживает графическое API DirectX 11 и операционные системы Windows 10+ и позволяет передавать потоковое видео из онлайн-источников RTSP/RTP в кодировке VP9 в текстуру UNIGINE (звуковые данные игнорируются). Эту текстуру можно использовать в любом материале и применять к различным объектам вашей сцены (например, для вывода видео на фоновую ТВ-панель в виртуальной студии или для создания системы видеонаблюдения с множеством камер).

Обращаем ваше внимание, что данное решение не является универсальным для декодирования видео в приложении и имеет ограниченную область применения.

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

Другие улучшения

  • Исправлена ​​проблема с классом SystemProxyQt, из-за которой содержимое окна становилось белым после вызова EngineWindow::minimize() (затронут демо-проект Viewer , сэмпл ViewportQt и шаблон проекта Qt-Based). Были добавлены обработчики событий окон Minimized, Maximized и Restored.
  • Исправлено обнаружение столкновений между частицами и коллизионными формами под углами 90 градусов и меньше.
  • Исправлен сбой проектов на основе QT при завершении работы при включении опиции Fast Shutdown.
  • Исправлена ​​проблема с игнорированием указанного gui_path при создании окна EngineWindow .
  • Исправлена ​​проблема, приводившая к сбоям и зависаниям при загрузке NodeReferences, содержащих Navigation Mesh .
  • Исправлена ​​проблема с мерцанием объектов Mesh Clutter (добавленных в качестве дочерних элементов Landscape Terrain) с включенной опцией Intersection в случае, если камера находится за их пределами.
  • Исправлена ​​проблема, приводившая к исключениям в случае использования элемента ParameterFile в C#-компоненте (добавлена ​​проверка типа Unigine.File при создании компонента из свойства).
  • Исправлен сбой на AMD RX 6800 (DX11) при включении Field Shoreline после создания текстуры береговой линии.
  • Исправлена отрисовка бликов для источников LightWorld/LightOmni/LightProj на DirectX12.
  • Исправлена ​​проблема с отрисовкой ObjectText, если его точка поворота находится за пределами усеченной пирамиды видимости камеры.
  • Исправлены визуальные артефакты, связанные с кешем текстур.

Упрощенный импорт сцены из Unity

Смена технологии — важное и непростое решение, в первую очередь из-за времени, необходимого для воссоздания вашего проекта в новой среде. Переход с Unity на UNIGINE теперь стал значительно проще благодаря новому инструменту, разработанному одним из энтузиастов нашего сообщества. Этот инструмент облегчает автоматическую передачу всей иерархии сцен, которая включает в себя:

  • Меши Skinned и Static: перенос всех мешей вместе с их уровнями детализации (LOD).
  • Назначение материалов: применение материалов к объектам, со всеми используемыми текстурами.
  • Настройки физики: объединение настроек физики, таких как RigidBody , примитивные и сложные коллайдеры, а также матрицы коллизий.
  • Префабы и C#-компоненты: переносит префабы и компоненты C#, назначенные объектам.

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

Инструмент включает в себя два плагина:

  • Плагин к редактору Unity ( Unigine Exporter ), который экспортирует вашу сцену Unity в файл JSON (можно скачать на Unity Asset Store).
  • Плагин к редактору UNIGINE ( ​​Unity Importer ), который берет этот JSON-файл и генерирует аналогичную сцену в UNIGINE (можно скачать в магазине дополнений UNIGINE).

Редактор UnigineEditor

Отслеживание зависимостей для runtime-нод

Иногда может понадобиться отслеживать зависимости между runtime-нодами — нодами, которые на данный момент существуют в мире, открытом в UnigineEditor, включая те, которые хранятся только в оперативной памяти и еще не были сохранены в файл ( *.world/*.node ) на диске. Это поможет избежать случайного удаления нод, которые так или иначе используются другими нодами, а также проанализировать/проверить логику взаимодействия нод (например, проверить, правильные ли ноды используются в компонентах и ​​т.д.).

Теперь, чтобы найти все runtime-ноды, которые используют выбранную нодлу или группу нод, щелкните по ним правой кнопкой мыши в иерархии World Nodes и выберите Show World Nodes Using This One. Более подробную информацию можно найти в этой статье.

Улучшенный Профилировщик поверхностей

Профилировщик поверхностей стал более удобным, позволяя вам отслеживать все поверхности в текущем мире, а не только те, что в данный момент видны в окне просмотра. Просто выберите новый режим From World в выпадающем списке Location.

Другие улучшения Редактора UnigineEditor

  • Исправлено сохранение значения Particles Field Mask , устраняющее проблему со сбросом значения по умолчанию для этой опции после загрузки системы частиц из NodeReference .
  • Исправлены проблемы с запеканием масок Landscape Terrain и их редактированием в режиме Landscape Paint Mode .
  • Исправлена ​​проблема с применением изменений к материалам на основе графов после замены некоторых ассетов с помощью инструмента Replace Asset Links, такие материалы теперь перезагружаются автоматически.
  • Теперь в Редакторе доступно Окно просмотра VR при запуске с поддержкой VR (аргумент -vr_app ).
  • Исправлено некорректное запекание данных об освещении в карту освещения для односторонних материалов.
  • Исправлен сбой при изменении размера окна Material и переключении состояний в фильтрах.
  • Исправлен сбой редактора при повторном импорте ассета после его удаления (Debug-сборки).
  • Исправлены кисти для редактирования объекта Terrain Global в режиме Terrain Paint Mode.
  • Исправлен сбой при сохранении трека в инструменте Tracker .
  • Исправлен сбой при применении фильтра по маске в инструменте Content Profiler.
  • Исправлены сбои при работе в Texture Paint Mode , связанные с обновлением состояния (например, при создании дочернего материала для ObjectMeshSkinned и т.д.).
  • Исправлена ​​проблема с назначением вновь созданной текстуры в Texture Paint Mode, из-за которой текстуру нельзя было редактировать.
  • Исправлена ​​проблема с увеличением времени отпускания кистей после отпускания левой кнопки мыши при рисовании на сжатых текстурах.
  • Исправлено сохранение значения параметра Mask Terrain для Mesh Clutter , устраняющее проблему со сбросом маски при выборе ноды после перезагрузки мира.
  • Исправлена ​​проблема с выбором параметра Base для маппинга Detail UV в настройках материала.
  • Исправлен сбой после отключения опции Frame-Based для костей тела RagDoll.
  • Исправлена ​​проблема с невозможностью установить значения параметров соединения.
  • Исправлен сбой при замене сетки объекта Dynamic Mesh на объект с меньшим количеством поверхностей (Debug-сборки).
  • Исправлены проблемы с изменением GUID компонентов и идентификаторов нод внутри NodeReference после его редактирования.
  • Исправлена ​​проблема с редактированием ObjectTerrainGlobal кистями на Vulkan и DirectX12.
  • Исправлена ​​проблема с мерцанием объектов во вьюпорте при работе в Редакторе материалов .
  • Исправлена ​​проблема с перетаскиванием текстуры из Asset Browser в Редактор материалов, приводившая к ошибкам кэширования.
  • Исправлена ​​проблема с некорректным отображением значений сжатия при открытии проекта .sworm, а также с отображением объема памяти, необходимой для создания ландшафта в инструменте Sandworm .
  • Обновление инструмента Cluster Editor исправило все проблемы, связанные с освобождением ресурсов оперативной памяти, приводившие к чрезмерному потреблению памяти и сбоям при рисовании в Cluster Paint Mode с выбранным параметром Single Object.
  • Исправлен ряд проблем с масштабированием DPI, приводивших к некорректной отрисовке интерфейса в Windows и Linux.
  • Локализация редактора. Интерфейс UnigineEditor теперь поддерживает китайский, немецкий и русский языки.
  • Исправлены ошибки в консоли редактора при запуске ( версия Community ).
  • Обновлены элементы отладки рендеринга в соответствии с текущими именами буферов.
  • Исправлена ​​проблема, приводившая к невозможности захвата изображения инструментом VideoGrabber после изменения битовой глубины изображения.
  • Ассеты из пакета теперь импортируются в определенном порядке, исключая ошибки загрузки и создания графов материалов.
  • Исправлена ​​проблема с автоматическим включением копии отключенной ноды при ее вставке.
  • Исправлена ​​проблема с сохранением файлов конфигурации Редактора в некоторых случаях, приводившая к невозможности применить конфигурацию или восстановить отсутствующие файлы конфигурации.
  • Исправлен сбой при попытке редактирования сплайна в WorldSplineGraph .
  • Манипулятор масштабирования больше недоступен для сегментов WorldSplineGraph.

Обновления шаблона IG

Этот релиз также содержит ряд обновлений и исправлений для шаблона приложения IG, расширяющих его функциональность, делая его более стабильным и простым в использовании. Файл Конфигурации IG ( ig_config.xml ) теперь можно хранить вне папки вфеф, что позволяет использовать одну и ту же конфигурацию в разных проектах.

Расширение DIS Connector

Мы расширили поддержку протокола распределенного интерактивного моделирования DIS (Distributed Interactive Simulation) — стандарта IEEE для связи на уровне платформы в реальном времени между различными моделями на нескольких компьютерах. Интерфейс API класса DISConnector был расширен, что теперь позволяет вам:

  • инициализировать DISConnector с помощью пользовательского подключения, а также выключить DISConnector , не останавливая это пользовательское соединение.
  • оперативно управлять идентификаторами App, Site и Exercise.
  • отправлять пользовательские пакеты.
  • устанавливать собственную фильтрацию для пакетов и сущностей.

Более подробную информацию можно найти в Руководстве по миграции API.

Геокоординаты в редакторе

При работе с моделями реального мира в ваших приложениях, построенных с использованием ландшафтов с географической привязкой, например тех, которые создаются в UNIGINE с помощью Шаблона IG, вместо (X, Y, Z) логично размещать объекты по их географическим координатам (широта, долгота, высота). Эта функция теперь доступна в Редакторе вместе с визуализацией геодезического начала координат в случае загрузки плагина Geodetic.

Обновление бесплатного обучающего курса

Наш бесплатный вводный курс по UNIGINE обновлен до последней версии UNIGINE 2.18.1 SDK! Обновленное дополнение доступно в нашем магазине дополнений . Версия курса для C++ уже в разработке — следите за обновлениями!

Этот курс предназначен для использования с бесплатным UNIGINE Community SDK и доступен для всех — регистрация не требуется!

Готовы начать? Зарегистрируйтесь на бесплатный Community SDK, перейдите на https://learn.unigine.com/ прямо сейчас и отправляйтесь в обучающее приключение UNIGINE!

Документация

Добавлен ряд коротких обучающих видео Подсказки и советы на английском, китайском и русском языках:

2.19+ В работе

Версия 2.18.1 преимущественно сфокусирована на стабилизации открывая дорогу новому функционалу, разработка которого уже на финишной прямой в ветке 2.19. Вот список того, что можно ожидать:

  • Многопоточный рендерер, который значительно повышает производительность процессора.
  • Улучшенная система анимации персонажей.
  • Крупные оптимизации для сокращения объема использования оперативной памяти.
  • Асинхронная загрузка нод для повышения эффективности
  • Ускоренный запуск движка
  • Интеграция с .NET 8
  • Поддержка OpenXR
  • Упрощенное облачное развертывание
  • Плюс еще много новых функций!

Спасибо, что прочитали, и не пропустите обновления, поскольку мы продолжаем работать над тем, чтобы сделать UNIGINE еще лучше!

- Ваша команда UNIGINE

Build: ()