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

UNIGINE 2.16: магазин ассетов, интеграция Vulkan и DirectX 12, ROS, двойная точность в Community, .NET 6, новый оконный менеджер

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

  • Поддержка DirectX 12 и Vulkan API (экспериментальная).
  • Двойная точность в Community edition.
  • Полностью обновленный оконный менеджер.
  • Интеграция .NET 6 (C # 10).
  • Редактор графиков материалов: поддержка постэффектов и водяных деколей, другие улучшения.
  • Улучшения в рендере: отражения в пространстве экрана, цветение, размытие при движении, эффекты камеры и т.д.
  • Улучшенная потоковая передача и другие обновления для ландшафтной среды.
  • Обновление UX / UI инструмента Sandworm.
  • API редактора: ресурсы.
  • Новый редактор текстур на основе кисти.
  • Интеграция с ROS (операционной системой робота).
  • Отслеживание рук Varjo XR.
  • Улучшения IG для вертолетов.
  • SDK Browser 2.
  • Хранилище ресурсов.
  • Демонстрационная версия Mars в Community edition.

UNIGINE 2.16 предназначен для использования с новым SDK Browser v2 (не поддерживается в старом SDK Browser).
Если у вас нет нового SDK Browser v2, пожалуйста, загрузите его и установите.

В этом выпуске вы получите долгожданную версию double precision в Community edition, поддержку Vulkan и DX12 (экспериментальные версии), новый редактор текстур вместе с огромным набором улучшений редактора, включая API для управления активами, а также обновления IG, улучшения рендеринга и многое другое.

DirectX 12 и Vulkan (экспериментальные версии)

Еще пара вещей, которых вы ждали и просили много раз - экспериментальные версии движка DirectX 12 и Vulkan доступны для всех, начиная с 2.16. Можно спросить: зачем так долго ждать, DX12 существует с 2015 года, а Vulkan вышел в 2016 году? Что ж, на это были причины.:

  • Низкое качество драйверов - не секрет, что именно драйвер определяет производительность и надежность любого графического API для конечного пользователя. Плохая поддержка со стороны поставщиков на ранних стадиях, недоделанные драйверы варьировались от очень нестабильных до почти нефункциональных (иногда драйверы Vulkan вызывали команды OpenGL внутри).
  • Негативный опыт переноса игр AAA, которые страдали от проблем с драйверами (случайные зависания, сбои приложений, нестабильное поведение и т.д.).
  • В начале нет новых библиотек, технологий и инструментов для DX12 и Vulkan.
  • Неясная выгода в отношении производительности - поначалу ни один из этих API не давал существенного прироста производительности (что приводило к низкой мотивации их поддерживать).
  • Windows 7, которую нам пришлось поддерживать, поскольку многие наши корпоративные клиенты придерживались ее использования и не очень стремились переключаться (имеется в виду отсутствие DX12, поскольку для нее требуется как минимум Win10).

Итак, неясная прибыль наряду с высокими рисками и затратами (включая время) сделали всю задачу непрактичной в то время. Теперь все изменилось, оба API созрели вместе с драйверами, и пришло время вместе с мотивацией:

  • Поддержка новых платформ, включая консоли (например, XBox использует DX12), мобильные устройства и т.д.
  • И Vulkan, и DX12 - это низкоуровневые API, которые дают разработчикам больше контроля, меньше создают помех и обеспечивают прямой доступ к оборудованию с минимальными накладными расходами. Эти API обеспечивают значительный прирост производительности процессора, что критически важно для многих приложений, поскольку они обычно имеют узкое место в процессоре (управление огромным количеством объектов, особенно сложных, требует больших ресурсов процессора).
  • Аппаратно-ускоренная трассировка лучей DXR / VKRay (следует отметить, что программная трассировка лучей использовалась в UNIGINE задолго до появления Vulkan и DX12) наряду с другими новыми технологиями, недоступными для DX11 / OpenGL, такими как VRS, сетчатые шейдеры, асинхронные вычисления, встроенные Wave и т.д.
  • Vulkan намного быстрее, чем OpenGL, который является единственным вариантом для Linux (используется многими нашими корпоративными клиентами). Помимо того, что OpenGL медленный, ему требуется намного больше времени и усилий для реализации тех же функций движка, разработанных для DirectX, и обеспечения их работы, что замедляет процесс разработки.

Что мы имеем сейчас

Vulkan может увеличить производительность процессора на 100-200% и графического процессора на 30% по сравнению с реализацией OpenGL.

DirectX 12 - предлагает не так уж много, но это все равно хороший плюс - до 15-60% процессора по сравнению с DirectX 11. Сначала мы тестируем новые версии в наших внутренних проектах.

Дальнейшая разработка

Версии движка Vulkan и DX12 еще не готовы к выпуску, и некоторые функции будут отсутствовать в 2.16 (например, оба terrains, SRAA, запросы на блокировку и поддержка нескольких окон).

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

Движок также портируется на игровые консоли. Версии Xbox Series X / S и PlayStation 5 выглядят практически функционально завершенными.

Улучшенные отражения

Мы значительно улучшили внешний вид отражений в пространстве экрана (SSR). Небо и облака теперь отображаются в отражениях, что еще больше улучшает визуальную согласованность конечного изображения наряду со значительным шумоподавлением и четкими отражениями мелких объектов. Старый Blinn-Phong BRDF был заменен на GGX, что делает отражения на шероховатых поверхностях более естественными.

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

Теневые шахты в пространстве экрана

Добавлены объемные тени в пространстве экрана. В пространстве экрана для Солнца и Луны могут быть сгенерированы теневые столбы (они же световые столбы) для имитации эффекта сумеречных лучей в реальном мире или атмосферного затенения при рассеянии в атмосфере. Эти лучи могут добавить глубины и реалистичности вашим сценам. Новые теневые полосы в пространстве экрана заменяют предыдущую реализацию, поскольку они влияют на дымку и окружающую среду, не вызывают чрезмерного затемнения конечного изображения и работают как для Солнца, так и для Луны.

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

Улучшенное размытие при движении

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

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

Обновлены тени в пространстве экрана

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

Улучшения Bloom

Новая реализация использует данные фрейма перед применением TAA. Эффект теперь будет сильнее воздействовать на более светлые области, в то время как на более темные будет влиять меньше, именно так, как и должно быть. Эффект дает 100% правильный результат, когда временная фильтрация отключена, но даже когда она включена, потеря яркости незначительна.

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

Новые эффекты камеры

Постэффекты хроматической аберрациии, шума и виньетки теперь доступны для вашего удобства с соответствующими настройками, добавленными в разделе Camera Effects окна Settings.

Вы также можете управлять этими эффектами с помощью соответствующих консольных команд (render_vignette_mask, render_chromatic_aberration, render_noise) или через API. Соответствующие примеры добавлены в набор Art Samples.

Постэффекты и водные декали в Графе материалов

Теперь вы можете создавать свои собственные постматериалы на основе графов в редакторе материалов

Вы можете указать, когда ваш материал должен быть отрисован, выбрав желаемый этап в раскрывающемся списке Render Sequence Order. Для вашего удобства мы сделали два пользовательских режима: Artist Friendly (упрощенный ненужными этапы скрытые) и Technical Artist Friendly (с использованием всех имеющихся стадий, перечисленных).

В набор Art Samples, входящий в SDK, добавлен новый пример Custom Post Effect.

Начиная с версии 2.16, вы также можете использовать редактор визуальных материалов для создания графических материалов для водных деколей (тех, что проецируются на поверхность воды). Этот тип деколей можно использовать для создания таких эффектов, как волны в кильватерной струе корабля или смыв ротора с поверхности воды с вертолета, пена, масляные пятна и многое другое. Просто выберите воду с наклейкой в раскрывающемся списке Тип в общих настройках.

Обновленный оконный менеджер и интеграция с движком

Движок UNIGINE поддерживает большое разнообразие выходных данных, включая конфигурации с несколькими мониторами, панораму, стерео, виртуальную реальность и так далее. Кроме того, он поддерживает встраивание в различные сторонние приложения (SDL, WPF, Qt и т.д.), Что означает, что мы создаем множество окон для рисования, часто с графическим интерфейсом, наряду с обработкой событий.

Было множество нерешенных проблем с управлением окнами, обработкой событий и инициализацией графического контекста из-за множества вариантов интеграции и сложности реализации с дублированием функциональности. Проблемы варьировались от отсутствия поддержки определенных раскладок клавиатуры (например, акцентов / умляутов) до неуправляемого ввода пользовательского интерфейса в многооконных приложениях или невозможности использовать VR в приложениях Qt, включая проблемы, связанные с платформой и полноэкранным режимом, и т.д.

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

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

Основа завершена, но в следующих выпусках еще предстоит внести некоторые сопутствующие изменения - в настоящее время мы работаем над созданием комбинации плагинов для нескольких мониторов и проекции (Wall, Projection) и объединением всех плагинов VR в один вместе с добавлением поддержки OpenXR для упрощения добавления новых устройств.

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

Интеграция с движком

Мы заменили старый рабочий процесс на основе CustomApp на новый. Новая концепция CustomSystemProxy, которая будет использоваться вместо CustomApp, включает в себя определение доступных функций (создание и управление Windows, управление вводом, дополнительные функциональные возможности, такие как диалоги, буфер обмена и т.д.).) вместе со всеми необходимыми переопределениями. Функциональность некоторых подсистем движка должна определяться в зависимости от набора функций, предоставляемых пользователем. Этот класс формирует основу для работы WindowManager, ввода, графического интерфейса, дисплеев и т.д. Для каждой среды интеграции требуется отдельная реализация прокси (SystemProxySDL, SystemProxyQt, SystemProxyWPF и т.д.).

Новый рабочий процесс на основе CustomSystemProxy решил следующие проблемы:

  • невозможность создать окно без использования зависящего от платформы кода;
  • невозможность создать отдельное окно рендеринга без каких-либо плагинов;
  • дублирование кода (одинаковая функциональность создания окна во всех приложениях);
  • для других окон доступна только часть функциональности главного окна (графический интерфейс, ввод, ...);
  • невозможность получения информации о физической конфигурации дисплеев (разрешение монитора, основной монитор и т.д.);
  • отсутствует концепция "окна" и, как результат, неясный API;

Мы упростили наши собственные плагины для приложения *, убрав аналогичную функциональность и устранив проблемы, связанные с интеграцией в приложения, созданные на основе сторонних фреймворков (например, невозможность использовать VR в приложениях Qt или WPF).

Система ввода

Для унификации обработки ввода с мыши и клавиатуры мы расширили класс ввода. Новые функциональные возможности охватывают методы, которые использовались для ввода в классе App. Все клавиши клавиатуры и кнопки мыши были перенесены в этот класс. Теперь используется буфер ввода, чтобы избежать пропуска событий ввода при низкой частоте кадров. Входные события могут приниматься в виде буфера, вы можете создавать пользовательские события и отправлять их в движок через Input::SendEvent(). Также доступен фильтр событий ввода, позволяющий отклонять определенные события ввода для движка и получать необходимую информацию обо всех событиях ввода. Этот фильтр настраивается с помощью ввода::setEventsFilter(). Фильтр событий также доступен для WindowManager (см. WindowManager::setEventsFilter()), позволяющий получать все события для Windows, поступающие из SystemProxy, и отфильтровывать их.

Расширенный набор обратных вызовов

Отныне доступен доступ к широкому спектру обратных вызовов событий ввода: МЫШЬ, КЛАВИША, ТЕКСТ, КАСАНИЕ и IMMEDIATE_INPUT. Обратный вызов для ввода текста позволяет получить символ в формате Unicode. Пользователь получает символ без знака, затем он преобразуется в соответствующий код (например: если нажать Shift + q, то мы получим “Q”, а не просто символ клавиши).

Новые ключи и физические коды

Список КЛАВИШ теперь содержит коды сканирования кнопок в соответствии с раскладкой QWERTY (с указанием физического положения на клавиатуре). Это обеспечивает стандартизацию элементов управления с одинаковой раскладкой для каждого типа клавиатуры, с одинаковой кнопкой, открывающей консоль везде. Вы можете получить символ, соответствующий клавише, с учетом текущей раскладки клавиатуры (QWERTY, QWERTZ, AZERTY), модификаторов и т.д. с помощью метода keyToUnicode() или с помощью unicodeToKey(), чтобы получить код сканирования для определенного символа unicode. Для работы с ключами используйте IsKeyDown(), isKeyPressed() и isKeyUp().

Более того, парные клавиши (Ctrl, Alt, Shift и т.д.) Теперь разделены (LEFT_SHIFT, RIGHT_SHIFT, LEFT_ALT и т.д.), что упрощает определение любой нажатой клавиши на клавиатурах QWERTY, QWERTZ и AZERTY.

Работа с несколькими дисплеями

Новый класс Displays позволяет получать информацию о подключенных дисплеях. Вы можете получить количество отображений экрана и индекс основного из них. С помощью этих индексов вы можете определить их положение и размер в пикселях. Также доступен доступ к названию и текущему dpi. Помимо этого, существуют функции для получения доступных режимов отображения. Вы можете узнать количество режимов и по их индексу получить разрешение и частоту обновления.

Оконный менеджер

Для создания Windows мы добавили новый класс EngineWindow. Все операции по управлению окнами выполняются с помощью этого менеджера, позволяющего получить доступ к любому окну приложения, групповым или стековым окнам, создавать различные диалоговые окна и т.д.

В Sim SDK добавлен набор примеров для демонстрации различных аспектов использования (samples/Api/WindowManager).

Плагин Interface удален

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

Редактор текстур

Сделайте вашу среду уникальной буквально одним движением с помощью богатого набора кистей, дающего гибкий контроль над внешним видом вашего реквизита. Новый редактор текстур позволяет вам рисовать текстуры материалов, применяемых к объектам, прямо в окне просмотра, экономя вам много времени и усилий на точную настройку каждого реквизита в соответствии со сценой и придание ему естественного, последовательного и точно такого, как вы хотите. Инструмент в основном используется для рисования масок, которые можно использовать для смешивания различных материалов вместе, но также помогает редактировать существующие текстуры: добавлять детали или исправлять ошибки.Ускорение GPU обеспечивает высокую производительность даже при работе с текстурами 4K.

Отображение потоковой карты в редакторе в реальном времени

Рисование кривизны в реальном времени

Редактор текстур доступен, когда на панели инструментов выбран режим рисования текстур:

Пользовательская текстура поверхности

Мы добавили возможность назначать пользовательскую текстуру для любой поверхности статической сетки, предоставляя вам широкий спектр возможностей для настройки и позволяя оптимизировать количество материалов, одновременно расширяя визуальное разнообразие. Например, вместо настройки набора похожих материалов для разных поверхностей вы можете назначить каждой поверхности уникальную пользовательскую текстуру и использовать один материал, окончательный вид которого зависит от пользовательской текстуры. Вы можете либо назначить уникальную текстуру каждой поверхности, либо использовать пользовательскую текстуру с других поверхностей. Эта опция предназначена для использования с LOD-модулями, имеющими одинаковые UV-карты.

Настраиваемая текстура может быть указан для любой статической сетки поверхности с помощью параметров из окна (см. текстура поверхности пользовательские группы). Вы можете нарисовать его с помощью нового редактора текстур и использовать в редакторе Material Graph Editor через узел Surface Custom Texture Пользовательская текстура.

Тот же материал с уникальной пользовательской текстурой, назначенной для каждой коробки

Новый формат выполнения текстур

DDS для UNIGINE - это внешний формат, поэтому он не позволяет нам использовать наше собственное сжатие и хранить дополнительные данные для текстур. Чтобы избавиться от ограничений и оптимизировать управление текстурами, мы разработали наш собственный формат для ресурсов текстур (.texture). Формат .texture будет использоваться в качестве формата среды выполнения по умолчанию для ресурсов текстуры вместо .dds. Все среды выполнения должны быть автоматически восстановлены редактором. Вы все еще можете использовать DDS, если хотите (просто установите флаг Неизмененного для ваших dds-текстур).

Вы можете преобразовать любой графический ресурс в формат .texture с помощью контекстного меню прямо в редакторе. Также стало доступно преобразование в формат TIFF (.tiff).

Улучшения ландшафта

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

Расширенный отбор

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

Набор новых расширенных параметров отбора позволяет точно настроить процесс для каждого конкретного проекта и камеры. Вы можете управлять распределением нагрузки между CPU и GPU, определяя участки (плитки), которые будут обрабатываться на CPU и GPU, расстояние отбора для карт небольших слоев, обеспечивать более эффективное разделение LOD-файлов без каких-либо пробелов в геометрии и многое другое.

Список других обновлений для отбора включает:

  • Улучшен расчет границ плиток и исправлены проблемы с отбраковкой для областей рельефа с отрицательными значениями высоты, а также проблемы, наблюдаемые при узком поле зрения (<10dg).
  • Пакетное удаление исправлений позволяет сразу пропускать большие области (наборы исправлений), что позволяет уменьшить размер исправления.
  • Заполнение усеченного элемента было удалено, поскольку теперь учитывается смещение для отбраковки усеченного элемента.
  • Отбраковка фоновой поверхности также была удалена из-за низкой эффективности.

Улучшенный стриминг

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

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

Список других улучшений включает:

  • Узкие значения поля зрения (менее 1 градуса) больше не увеличивают плотность геометрии ландшафта, это обеспечивает приемлемую частоту кадров даже в экстремальных условиях.
  • Исправлены различные проблемы с циклической “бесконечной” потоковой передачей данных о ландшафте местности по разным причинам (движущиеся карты слоев, узкий обзор, большой размер местности), а также с использованием кэша CPU и GPU.
  • Плитки теперь загружаются асинхронно в заранее определенном порядке в соответствии с их расстоянием от камеры (вместо случайного порядка, который использовался ранее).

Геометрия

  • Удалена безграничная черная равнина на нулевом уровне, которая больше не влияет на потоковую передачу в виртуальную текстуру и не вызывает артефактов z-файтинга.
  • Улучшенное геоморфирование с правильным и плавным смешиванием уровней детализации теперь доступно вместо менее эффективной функциональности Fade LOD.
  • Карты слоев, не имеющие нижележащих слоев, теперь должны игнорировать значения непрозрачности, поскольку их не с чем смешивать.
  • Представлен новый параметр Detail Max Height (изначально был внутренним), ограничивающий смещение деталей по высоте и позволяющий эффективно распределять 8 бит данных, чтобы избежать эффекта ступеньки в случае недостаточной разрядности (геометрия ограничена высотой при сохранении нормалей).

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

Улучшения для биноклей

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

Интеграция с ROS (операционной системой робота)

(Доступно только для Sim SDK edition)

Существует множество типов роботов - от пылесосов до автономных комбайнов, дронов и т.д. Большинство из них состоят из исполнительных механизмов (предметов, которые движутся), датчиков (предметов, которые воспринимают окружающий мир) и систем управления (мозг робота) Есть способ упростить сложный процесс обеспечения совместной работы этих компонентов - операционная система робота (ROS). Это набор бесплатных программных библиотек и инструментов с открытым исходным кодом, помогающих создавать приложения-роботы. ROS позволяет быстро создавать компоненты и легко подключать их с помощью сообщений. Эти сообщения можно отправлять в различные инструменты визуализации или телеоперации, чтобы вы могли работать с имитируемым роботом вместо реального (цифрового двойника). Итак, с помощью ROS вы можете создавать сложные распределенные системы с несколькими узлами для различных задач (элементы управления, генерация изображений и т.д.), она поддерживает аппаратные интерфейсы для многих распространенных компонентов робота, таких как контроллеры двигателей, лидары и камеры. Весь фреймворк позволяет вам сосредоточиться на реализации вашей логики, а не изобретать велосипед. Список задач, которые могут быть эффективно решены с помощью ROS, включает ведение журнала и диагностику, управление автопарком, сбор данных глубокого обучения (training), тестирование и обеспечение качества и многое другое.

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

Для вашего удобства мы добавили новую демонстрационную версию ROS, демонстрирующую имитацию управления автомобилем с помощью ROS и имитацию датчиков (камер и лидаров), установленных на автомобиле. Демо-версия доступна только для SIM edition и включает в себя несколько модулей (узлов ROS).:

  • Simulator - визуализирует симуляцию и имитирует физику (UNIGINE также может использоваться как генератор изображений с физикой и моделью транспортного средства, рассчитанной на отдельных узлах)
  • Teleop - обрабатывает ввод (нажатые клавиши управления) от пользователя и передает его другим узлам ROS. Для одновременного управления двумя транспортными средствами вы можете запустить два приложения Teleop на одном компьютере или на разных компьютерах в локальной сети. Вместо Teleop для управления транспортными средствами в симуляторе можно использовать другое управляющее приложение (например, вашу собственную реализацию системы управления автономным транспортным средством).

Приложение симулятора отправляет данные с камер и лидаров в инструмент визуализации RViz 3D для ROS (входит в оригинальный пакет ROS2), который визуализирует облако точек на основе полученных данных датчика.

Упрощенный рабочий процесс внедрения роботизированной системы с использованием новой интеграции ROS в UNIGINE заключается в следующем:

  1. Спроектируйте своего робота, определите все датчики и исполнительные механизмы.
  2. Внедрите систему управления вашим роботом.
  3. Создайте 3D-модель и внедрите объект для вашего робота в UNIGINE (и другие объекты, если необходимо).
  4. Подключите свою систему управления вместо узла Teleop.
  5. Подключите RViz 3D или другие инструменты визуализации для обработки и отображения данных с датчиков робота.

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

Мы также планируем дальнейшее развитие интеграции ROS в UNIGINE.

Интеграция .NET 6 (C # 10)

Мы внедрили поддержку .NET 6, выпущенной в ноябре 2021 года (новые основные версии .NET планируются ежегодно, поэтому мы сохраняем темп). .NET 6 будет поддерживаться в течение трех лет в виде выпуска долгосрочной поддержки (LTS). Это обновление также содержит множество исправлений и новых функций:

  • Повышенная производительность: .NET 6 - это самая быстрая веб-платформа с полным стеком, которая снижает затраты на вычисления, если вы работаете в облаке.
  • Максимальная производительность: .NET 6 и Visual Studio 2022 обеспечивают быструю перезагрузку, новые инструменты git, интеллектуальное редактирование кода, надежные инструменты диагностики и тестирования и улучшенную совместную работу в команде.
  • Поддержка C # 10.0, предлагающая улучшения языка, такие как структуры записей, неявное использование и новые возможности lambda, в то время как компилятор добавляет дополнительные генераторы исходного кода. (для получения подробной информации, пожалуйста, перейдите по этой ссылке).
  • Упрощенная разработка: начать легко. Новые языковые возможности в C # 10 сокращают объем кода, который вам нужно написать. А инвестиции в веб-стек и минимальные API упрощают быстрое написание микросервисов меньшего размера.
  • Исправлены многочисленные ошибки и многое другое.

Для получения более подробной информации обратитесь к официальным примечаниям к выпуску .NET 6. Пожалуйста, обратите внимание, что минимальная требуемая версия Visual Studio - 2022 (только для проектов на C #, использующих систему компонентов).

Отслеживание рук Varjo XR

Расширенное отслеживание рук в виртуальной реальности теперь доступно для гарнитур Varjo VR и XR промышленного уровня с разрешением человеческого глаза. Позволяет создавать приложения XR, полностью реализуя их потенциал, естественным образом используя руки вместо некоторых сложных контроллеров. Новые функциональные возможности доступны с помощью нашего нового плагина интеграции "Ultraleap", поддерживающего пятое поколение программного обеспечения для отслеживания движения рук (SDK v5.0) с улучшенной точностью пальцев, производительностью для двух рук, более высокой надежностью отслеживания и множеством других улучшений.


Изображение любезно предоставлено Varjo

Пример C++ VR Sample был обновлен для демонстрации нового функционала.

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

Двойная точность в Community Edition

Вы просили об этом так много раз, что мы решили сделать 64-разрядные координаты с плавающей запятой двойной точности (они же Double) доступными для всех - буквально без каких-либо ограничений! Мы используем double precision в движке уже 10 лет. Все это время использование doubles было ограничено нашими корпоративными клиентами, но теперь каждый может создавать высокодетализированные практически неограниченные миры даже с Community SDK edition! Максимальные значения координат фактически в 536 870 912 раз больше, чем для 32-разрядной точности с плавающей запятой, открывающей масштаб всей Солнечной системы и за ее пределами.

Другие улучшения движка

  • Плагин FMOD теперь доступен для Linux.
  • Таблицы поиска (LUT) окружения были обновлены, чтобы сделать небо немного менее ярким, чтобы оно выглядело соответствующим облакам, а также чтобы Солнце выглядело менее желтоватым, когда оно находится в зените. Также было исправлено слишком яркое пятно на базовой текстуре, соответствующее зениту Солнца.
  • Начиная с 2.16 системное окно, которое ранее отображалось при нажатии на Esc на клавиатуре, теперь будет отображаться только при загрузке плагина Wall, Projection или Syncker и должно содержать настройки только для этих плагинов.
  • Исправлена проблема с применением угловой скорости к твердому телу колеса в шарнире колеса, приводившая к нарушению экстраполяции вращения колеса. Также были внесены определенные улучшения, чтобы избежать потери точности угла поворота колеса.
  • Исправлена ошибка, вызывавшая заметные скачки на этапе cpu_shader_wait, которые в основном наблюдались в Linux.
  • Исправлены проблемы с параллельным обновлением зависимых и независимых узлов, которые иногда приводили к сбоям движка.
  • Исправлены проблемы с неправильным переопределением зондов вокселей зондами среды, приводившие в некоторых случаях к несоответствию внешнего освещения.
  • Добавлено динамическое обновление для карты теней, используемой для функции вырезания тенью в динамических Environment Probes.
  • Добавлен новый параметр шкалы расстояний для зондов окружающей среды для управления дальностью видимости LOD отражения (аналогично параметру шкалы расстояний для Light Planar Probe).
  • Добавлена отдельная опция для отключения обрезки дальней плоскости для облаков, поскольку управление видимостью облаков путем увеличения расстояния до дальней плоскости значительно влияет на производительность (Dynamic Environment Probes и т.д.). Эта опция доступна с помощью консольной команды render_clouds_far_clipping или с помощью переключателя Cutout с помощью Far Clipping в Настройках-> Рендеринг-> Облака-> Общие.
  • Перенесено вычисление смещения облаков с использованием z в CPU, устранены проблемы с отображением облаков на графических процессорах AMD 6xxx.
  • Исправлены опции "Приведение глобальной подсветки" и включение в параметры "Environment Probes" для слоя облака объектов.
  • Исправлены проблемы с отображением плоских отражений в стереорежимах (VR), отражения теперь можно отображать для каждой камеры отдельно, вместо того, чтобы отображать их один раз для точки между камерами.
  • Исправлена ошибка при удалении материалов, созданных динамически после загрузки мира, из-за неправильного результата проверки (принадлежит ли материал ядру движка / редактора).
  • Реализация закадрового режима была перенесена из образца в движок и теперь доступна через опцию командной строки запуска video_offscreen.
  • Исправлены утечки памяти в ObjectParticles в OpenGL.
  • Исправлено тестирование глубины для ObjectGUI, трафареты теперь работают так, как ожидалось.
  • Исправлены проблемы с неправильным определением пересечения для глобального водного объекта.
  • Исправлены проблемы с неправильным применением изменений, внесенных в параметры Глобального водного объекта.
  • Исправлена проблема с проецированием водяных знаков на геометрию сетки при включенном состоянии эмиссии.
  • Исправлена проблема с неправильным отображением теней для самозванцев в OpenGL.
  • При размонтировании / монтировании точки монтирования все материалы, свойства и другие ресурсы, которые она содержит, должным образом удаляются и перезагружаются.
  • Исправлена проблема с некорректным отображением дампов микропрофайлов в последних версиях Google Chrome.
  • Исправлена проблема с dmat4.Scale (C #) - теперь все работает так, как ожидалось.
  • TextureCurve был переименован в TextureRamp для обеспечения согласованности, для получения дополнительной информации, пожалуйста, обратитесь к руководству по миграции API.
  • Улучшения системы компонентов C ++
    • Теперь доступны дополнительные макросы для объявления ваших компонентов C ++, позволяющие указать описание для вашего компонента, а также всплывающую подсказку, заголовок и группу для соответствующего свойства: COMPONENT_DESCRIPTION, PROP_TITLE, PROP_TOOLTIP, PROP_GROUP.
    • Добавлена возможность принудительной инициализации всех компонентов, не дожидаясь следующего кадра (выполнение WorldLogic::Update())).
    • Добавлена возможность включать и выключать методы update(), PostUpdate(), updatePhysics(), swap(), updateSync(), UpdateAsync() для всех компонентов одновременно (может быть полезно для оценки производительности и целей отладки).
    • Исправлены проблемы со ссылками на массивы внешних структур или классов в компонентах, теперь все работает так, как ожидалось.
    • Исправлены проблемы с завершением работы компонентов C ++ (класс ComponentBase), которые иногда приводили к сбоям движка.

UnigineEditor

Автоматическая миграция ресурсов

В соответствии со стандартным рабочим процессом содержимое проекта переносится в новейшую версию автоматически через браузер UNIGINE SDK или вручную с помощью сценария обновления.

Начиная с версии 2.16, вы также можете добавлять устаревшие ресурсы в обновленный проект прямо в редакторе (при импорте пакета ресурсов, перетаскивании ресурса в обозреватель ресурсов или копировании ресурса непосредственно в папку data вашего проекта), поскольку это позволяет автоматически обновлять их до текущей версии UNIGINE SDK. Эта функциональность также является частью поддержки инфраструктуры Asset Store, гарантируя, что загружаемые вами ресурсы и пакеты активов (которые могут быть устаревшими) будут обновлены при добавлении их в свой проект через редактор.

Вы можете управлять настройками автоматической миграции через окно Settings:

Для получения дополнительной информации, пожалуйста, прочтите эту статью.

API редактора: ресурсы

Скорее всего, ваши пользовательские инструменты, которые вы разрабатываете на основе функциональности UnigineEditor, каким-то образом будут управлять активами. Для этого выпуска мы создали удобный API для управления активами. Новый класс AssetManager, который расширяет функциональность файловой системы UNIGINE. позволяет проверять доступность ресурса с определенным идентификатором GUID, получать его путь, подписываться на сигналы для выполнения определенных действий при добавлении, перемещении, обновлении или удалении ресурса и отслеживать изменения ресурсов в режиме реального времени.

Для вашего удобства у нас также есть пример плагина, демонстрирующий реализацию базовых операций по управлению активами с использованием класса AssetManager. Это называется Assets Plugin и может использоваться в качестве шаблона для вашего инструмента. Новая статья поможет вам быстро освоиться. В справочник по API редактора добавлена информация о новых классах.

Эволюция API редактора продолжается, так что следите за обновлениями.

Улучшено редактирование кривой

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

Диапазоны масштабирования и панорамирования камеры были расширены для удобства, что касается параметров кривой в свойствах / компонентах, они больше не привязаны к нормализованному диапазону стандартного редактора кривых [0; 1], поэтому панорамирование практически не ограничено по обеим осям, так же как и масштабирование.

Теперь вы можете быстро сфокусироваться на выбранных точках или касательных, нажав F на клавиатуре. Нажатие F, когда ничего не выбрано, покажет вам всю кривую.

Обновления редактора графиков материалов

Изменение текстуры

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

Улучшенная обработка ввода

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

Улучшена навигация

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

Помощь всегда под рукой

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

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

Список других улучшений редактора материалов включает:

  • Добавлена поддержка SRAA в материале Mesh (mesh.abstmat).
  • Добавлен новый литой глобальное освещение вариант для прозрачных материалов, чтобы контролировать, является ли поверхность, которые должны быть приняты во внимание или игнорироваться при выпечке глобальное освещение (по аналогии с ТВ-поверхность отлита глобальное освещение опция). Может использоваться для одновременного игнорирования всех прозрачных поверхностей, имеющих один и тот же материал, при выпечке GI, вместо того, чтобы переключать их одну за другой.

  • Обновлены цвета узлов в редакторе материалов для лучшей визуальной дифференциации определенных типов узлов.

  • Исправлена проблема с созданием дочерних материалов для материалов на основе графиков через браузер ресурсов или окно параметров.
  • Исправлена ошибка с параметрами материалов на основе графиков, приводившая к изменению внешнего вида материала после перестановки параметров в редакторе материалов.
  • Исправлена проблема с добавлением нового параметра в выбранную группу.
  • Исправлена проблема с неправильной работой узла UV-смещения экрана преломления для тонких объектов.
  • Были добавлены следующие новые подграфы:
    Anisotropic Specular Brdf
    Bits Shift Left
    Bits Shift Right
    Bits Xor
    Blend By Height Simple
    Color Correction By Ramp
    Compose Matrix2 By Column
    Compose Matrix2 By Row
    Curvature
    Fast Position To Screen UV
    Fibonacci Hemisphere
    Fibonacci Sphere
    Flipbook
    Float Correction By Ramp
    Flowmap Panner
    Flowmap Panner Simple
    Ggx Brdf Importance Sampling
    Hair Shading
    Hammersley
    Hdri Raymarched
    Matrix2
    Pi05
    Pi2
    Replace Color
    Screen Space Subsurface Scattering
    Specular Ambient Occlusion
    Ssao Raymarched
    Ssgi Raymarched
    Surface Custom Texture
    Texture 2D Int
    Texture Buffer Clouds Screen
    Texture Ramp (R)
    Texture Ramp (RG)
    Texture Ramp (RGB)
    Texture Ramp (RGBA)
    Vertex Depth

    Смотрите Руководство по миграции контента для получения более подробной информации об изменениях в материалах на основе графов.

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

  • Настройки редактора теперь разделены на 2 группы: настройки пользователя и настройки проекта, последние применяются для каждого проекта и хранятся в отдельном файле (UNIGINE_PROJECT/data/editor2/settings/unigineeditor.generic.cfg).
  • Если при запуске рисования в редакторе кластеров не выбраны активные кластеры, вам будет предложено выбрать первый из списка доступных.
  • Добавлена возможность сбрасывать текущую анимацию или время воспроизведения для определенных узлов (SoundSource, ObjectWaterGlobal, WorldTransformPath, ObjectMeshSkinned, ObjectCloudLayer) на ноль при сохранении мира (текущие значения восстанавливаются после сохранения). Это устраняет проблему с большими различиями, генерируемыми системами контроля версий, в случае сохранения мира после открытия его в редакторе и простого воспроизведения анимации сетки, звуков или просто включения имитации частиц, воды и облаков (см. Соответствующий флажок в Настройках -> Редактор -> Настройки пользователя). По умолчанию эта опция включена.
  • Добавлена возможность импортировать исходную 2D текстуру в виде массива 2D текстур путем разделения его на равные квадратные фрагменты по вертикали (например, вы можете создать текстуру 256x1024, содержащую 4 блока 256x256, расположенных рядом друг с другом по вертикали, каждый из которых будет импортирован как элемент массива 2D текстур).
  • Обновлен макет пользовательского интерфейса для настроек цветокоррекции с параметрами резкости, перенесенными из эффектов камеры.
  • Исправлена проблема с отображением неправильного размера файла среды выполнения для текстур в предварительном просмотре.
  • Исправлены проблемы с копированием файлов .mgraph, приводившие к дублированию идентификаторов GUID.
  • Исправлены проблемы с обновлением условий параметров для компонентов C #, если новое ParameterCondition устанавливалось с помощью кода после изменения параметра в редакторе.
  • Исправлены проблемы с помощниками в предварительном просмотре.
  • Исправлена проблема с масками, приводившая к неправильному рисованию травы в режиме Clutter Mask Paint.
  • Исправлен сбой при попытке открыть настройки камеры после перемещения окна просмотра на другой дисплей.
  • Исправлен сбой при импорте пакета (.upackage), содержащего файлы .obj и .mtl.
  • Исправлена проблема с зависимостями при экспорте данных в пакет, приводившая к игнорированию некоторых зависимых ресурсов (например, игнорирование подграфа, используемого в материале на основе графиков, назначенном объекту при экспорте мира, содержащего этот объект, в пакет.
  • Исправлен экспорт FBX в местоположения за пределами пути передачи данных.
  • Параметры конфигурации для UnigineEditor теперь хранятся в отдельном файле в папке data/configs (editor.boot).
  • Внутренние материалы редактора больше не отображаются в окне Materials Hierarchy.

Обновление пользовательского интерфейса Sandworm Tool

До 2.16 в UNIGINE было два инструмента генерации ландшафта - "В конце концов, останется только один!"(c)

Основная проблема при разработке многоцелевого инструмента генерации рельефа заключается в том, что он предназначен для использования разными людьми, а не только ГИС-профессионалами. У предыдущего ландшафтного инструмента было много проблем в этом аспекте, с многочисленными нетривиальными задачами, сложным рабочим процессом, неясными процедурами и смешанными именами, в результате чего многие функции и опции терялись в пользовательском интерфейсе и никогда не были найдены некоторыми пользователями. Предыдущая итерация Sandworm преследовала цель использовать функциональность Landscape Tool и, следовательно, имела те же недостатки. Теперь, когда рассмотрено большинство функций, пришло время переработать инструмент с огромным обновлением пользовательского интерфейса. Мы посмотрели на это глазами обычного клиента, упростили рабочий процесс, снизили сложность операций, позаботились о том, чтобы все необходимое всегда было под рукой, в целом сделав интерфейс более простым, гораздо более интуитивно понятным и намного более удобным в использовании.

В дополнение к редизайну интерфейса мы сделали доступным разделение сетки для объектов растительности (ObjectGrass \ ObjectMeshClutter \ WorldClutter), созданных для масок растительного покрова, разделяя большие площади растительности на ячейки сетки меньшего размера, чтобы устранить артефакты, связанные с внутренней точностью mesh-объектов, аналогично разделению векторных объектов.

Список других улучшений включает:

  • Теперь поддерживаются источники TMS для масок и векторных данных.
  • Добавлена возможность разбивать сгенерированную растительность (объект Grass) на сетку из отдельных объектов меньшего размера для оптимизации производительности. Просто укажите длину разбиения сетки в метрах в настройках генерации растительности
  • Инструмент теперь также поддерживает материалы на основе графиков (.mgraph).
  • Слои теперь можно удалять с помощью горячей клавиши Del.

Начиная с версии 2.16, Sandworm полностью заменяет старый Landscape Tool.

Улучшения в генераторе изображений (IG)

Дополнение IG Aviation

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

Новое дополнение доступно только для Sim SDK edition. Вы можете загрузить его из Asset Store!

Пользовательские сетевые компоненты

Обычно, если вам нужно отобразить мир на нескольких компьютерах, синхронизированных по локальной сети, вы используете Syncker. Он отправляет много данных в каждом кадре от ведущего устройства ко всем подчиненным устройствам. Использование Syncker обеспечивает точную синхронизацию изображений, однако это не всегда необходимо. Шаблон IG теперь предоставляет функциональность, позволяющую уменьшить объем отправляемых данных и, следовательно, нагрузку на сеть. Например, чтобы повернуть объект, вы можете просто один раз передать скорость вращения от ведущего устройства к подчиненным устройствам. При реализации сетевого компонента вы определяете данные, которые будут передаваться по сети, и отправляете их только при необходимости: вы указываете методы, которые могут быть вызваны по сети (т. Е. на подчиненных устройствах), а затем вызываете их на главном устройстве, передавая необходимые данные. Эти методы также будут вызываться на подчиненных устройствах.

Чтобы создать сетевой компонент с пользовательской логикой приложения, используя функциональность шаблона IG, просто унаследуйте его от класса Unigine::Plugins::IG::NetworkComponentBase. Для получения дополнительной информации, пожалуйста, обратитесь к статье "Создание пользовательских компонентов".

Список других улучшений включает:

  • Добавлена поддержка символов CIGI в приложениях IG.
  • Добавлена поддержка маркировки объектов DIS.
  • Добавлены типы огней для наземных транспортных средств в соответствии со спецификацией DIS.
  • Исправлена проблема с отключением интерполяции объектов (сглаживания) при активации зажима заземления объектов CIGI (конформного и неконформного).
  • Исправлена проблема с отсоединением камеры от объекта после сброса CIGI.
  • Исправлена ошибка, приводившая к сбою приложения при получении сброса CIGI в случае получения объекта DIS.

Магазин ассетов (Asset Store)

Вы просили, мы выполнили: Магазин ассетов наконец-то здесь. На данный момент это экспериментальная версия, доступная для наших самых преданных пользователей: вас. Мы усердно работали над созданием хранилища активов и теперь готовы предоставить вам ранний доступ. Магазин ассетов UNIGINE используется вместе с SDK Browser 2. На данный момент в Магазине ассетов, доступны только бесплатные ассеты.

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

Новый SDK Browser

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

Представляем новый SDK Browser 2, полностью переработанный с нуля, поддерживающий полный набор функций предыдущей версии с улучшенной безопасностью, надежностью и расширенной функциональностью для поддержки дополнительных функций. И вишенкой на торте является возможность сворачивать SDK-браузер в системный трей.

Новый SDK Browser 2 считается готовым к работе и должен использоваться для работы с вашими проектами UNIGINE, начиная с версии 2.9 и выше. Набор новых функций еще предстоит добавить (следующие этапы интеграции хранилища ресурсов, упрощенная регистрация пользователей и многое другое) наряду с дальнейшими улучшениями пользовательского интерфейса, так что следите за обновлениями в будущем.

Вы можете скачать SDK Browser 2 здесь.

Вот краткое видео-руководство по работе с новым SDK Browser 2:

Более подробную информацию о дорожной карте для предстоящих выпусков можно найти на официальном форуме.

UNIGINE 2.16 SDK предназначен для использования с новым SDK Browser v2 (некоторые функции не поддерживаются в старом SDK Browser). Если у вас нет новой версии, пожалуйста, загрузите ее и установите. Выпуск UNIGINE 2.15.1 был последним для старого браузера SDK.

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

Демонстрации и сэмплы

Демонстрация Mars в сообществе

Каждый может проехать на марсоходе по поверхности Марса и осмотреть кратер Гейл, используя прицелы, начиная с 2.16, поскольку демо-версия также стала доступна в изданиях Community и Engineering. Исследуйте большой открытый мир, который трудно отличить от реальных изображений марсианского ландшафта, сделанных марсоходом NASA Curiosity!

Новые образцы

В набор художественных образцов добавлен набор новых образцов.

Пользовательские постэффекты

Этот новый образец контента демонстрирует два пользовательских постэффекта: имитацию искажения экрана и эффект выделения объекта с использованием данных из вспомогательного буфера.

Эффекты камеры и цветокоррекция

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

Течение реки и поток лавы

Два примера, демонстрирующие создание рек, вихрей и потоков лавы с использованием карт потоков, которые можно создавать и редактировать в редакторе текстур.

Визуализация автомобиля

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

Растушевка волос

Демонстрация реалистичного рендеринга волос и меха в UNIGINE с использованием функциональности нового узла Hair Shading.

Примеры API

Образец файла (Samples->API->Systems->File) был переименован в FileSample (Samples-> API->Systems->FileSample), чтобы избежать проблем с антивирусными системами.

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

Добавлены два новых видеоролика с кратким обзором, описывающих содержимое набора художественных образцов, включенного в SDK:

Скоро будут доступны другие подобные видеоролики о демонстрациях и образцах, доступных в SDK.

А также набор новых ультракоротких видеороликов с практическими рекомендациями на английском, китайском и русском языках:

Другие изменения в документации

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

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

Build: ()