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

UNIGINE 2.16.1: Screen-Space Haze Global Illumination, улучшенный API импорта, усовершенствования для VR

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

  • Глобальное освещение дымки в экранном пространстве
  • Улучшенные динамические отражения
  • Оптимизированный рендеринг теней
  • Улучшенный API импорта ассетов
  • В редакторе улучшено множество инструментов
  • Стабилизация инструмента Sandworm
  • Оптимизированные волны пробуждения
  • Набор новых примеров C++
  • VR-шаблон на основе Qt
  • Улучшения интеграции Varjo XR
  • VR-Плагин для UnigineEditor

Этот релиз обеспечивает большую стабильность и оптимизацию наряду с пакетом улучшений рендеринга, включая новый эффект Screen-Space Haze Global Illumination, улучшенный и более гибкий API для импорта ресурсов во время выполнения.

Глобальное освещение экранно-пространственной дымки

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

Представляем Screen-Space Haze Global Illumination (SSHGI) - это новый эффект экранного пространства, обеспечивающий согласованность цвета дымки с текущим цветом глобального освещения. Эффект обеспечивает реалистичный результат "из коробки" и имеет довольно простой набор параметров. Эта функция доступна только для Physically Based режима градиентной дымки (другие режимы планируется удалить в следующих релизах).

Все текстуры рассеяния LUT были обновлены для обеспечения более естественных и физически корректных цветов рассеяния и теней.

Набор параметров SSHGI доступен в соответствующей группе настроек среды (Settings->Render->Environment).

Доработанный API для импорта ассетов в процессе работы приложения

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

Source code (C++)
class MyPlugin : public Unigine::Plugin
{
    FbxParameters *fbx_params = {new FbxParameters};
    StpParameters *stp_params = {new StpParameters};

protected:
    int init() override
    {
        Unigine::Import::registerImporter("Unigine", "FbxImporter", "fbx", &createFbxImporter, fbx_params, 1);
        Unigine::Import::registerImporter("Unigine", "FbxImporter", "obj", &createFbxImporter, fbx_params);
        Unigine::Import::registerImporter("Unigine", "ObjImporter", "stp", &createStpImporter, stp_params);
        Unigine::Import::registerImporter("Unigine", "ObjImporter", "brep", &createBrepImporter, nullptr);
    }
};
Importer *createFbxImporter(void *opaque) { auto fbx_params = reinterpet_cast<FbxParameters *>(opaque); ... }
Importer *createStpImporter(void *opaque) { auto stp_params = reinterpet_cast<StpParameters *>(opaque); ... }
Importer *createBrepImporter(void *) { ... }

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

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

Улучшенные динамические отражения

Иногда, когда зеркальные блики от глянцевых поверхностей попадают в датчики динамической среды, может появиться очень яркое мерцание освещения от них. Новая опция смещения шероховатости (Settings -> Render -> Dynamic Reflections) позволяет окружающим материалам выглядеть более матовыми для зонда окружающей среды, чем они есть на самом деле, уменьшая такие артефакты мерцания. Эта опция также доступна с помощью консольной команды render_reflection_dynamic_roughness_offset.

Оптимизированный рендеринг теней

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

Улучшения интеграции Varjo

При разработке приложений XR и MR может потребоваться маскировать определенные объекты, чтобы они действовали как "окно" в реальный мир. Это особенно полезно, если вы хотите увидеть элементы реального мира, такие как инструменты или контроллеры, в виртуальной среде (например, Windows в автосимуляторе).

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


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

Также был внесен ряд других улучшений:

  • Добавлена автоматическая коррекция баланса белого для смешанной реальности, обеспечивающая согласованное результирующее изображение.
  • Оптимизированный рендеринг для HMDS, имеющих дисплеи context (с низким разрешением) и focus (с высоким разрешением), доступен через новый режим рендеринга для стереофонической периферии, позволяющий экономить производительность теней и отражений наряду с другими оптимизациями, снижающими нагрузку на рендеринг, такими как уменьшенное разрешение текстур.
  • Добавлена поддержка Stereo Hidden Area для Varjo HMDS, которая позволяет пропускать пиксели, невидимые в виртуальной реальности, для повышения производительности.
  • Добавлен режим отладки, позволяющий видеть замаскированные области при ношении HMD.
  • Velocity была переименована в Motion Prediction, чтобы соответствовать настройкам Varjo.

Управление временем жизни виджетов

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

Вы можете найти более подробную информацию в справочнике по API для классов Widget и UserInterface.

Клавиша консоли

Мы изменили клавишу по умолчанию, открывающую консоль, добавив больше гибкости для настройки и решив ряд проблем с ее использованием в различных макетах, таких как немецкий макет (QWERTZ). Клавиша по умолчанию для консоли остается прежней (BACK_QUOTE), но вы можете переназначить ее на любую пользовательскую клавишу, которую вы хотите (из значений KEY_###, определенных в классе Input), плюс вы также можете использовать модификатор, если это необходимо (из значений MODIFIER_###, определенных в классе Input). Это можно сделать с помощью соответствующих параметров пользовательского конфигурационного файла (data/configs/default.user):

Вы можете указать несколько ключей по имени или номеру, разделенному запятой:

Source code (XML)
<console_key>17,F1</console_key>

Версии движка и редактора

Информация о текущей версии движка, редактора и ядра может быть полезна во многих случаях (например, при написании собственных плагинов движка и редактора, проверке совместимости ваших пользовательских инструментов и т.д.). Версия представлена в виде четырехкомпонентного номера - A . B . C. D.

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

  • возьмите это из файла data/core/version в виде строки (например, "2.16.0.2");
  • или, если вы используете C++, включите заголовок UnigineVersion.h и используйте определенные константы.

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

  • Добавлен флаг, позволяющий сделать ваши окна самыми верхними (расположенными над всеми другими окнами) и поддерживать это состояние даже при деактивации. Флаг доступен через EngineWindow::setAlwaysOnTop() (EngineWindow.Метод AlwaysOnTop для C #). Этот флаг также доступен для окна вашего приложения в классе CustomSystemProxy.
  • Добавлен пакет полезных улучшений в плагин FMOD, включая возможности управления панорамированием, высотой тона, частотой, приоритетом каналов, а также их отключением / включением, возможность выгрузки блоков, улучшенное управление событиями и многое другое.
  • Исправлена проблема с асинхронным обновлением нод. Зависимое обновление (на основе иерархии) теперь корректно обрабатывает Node Reference: если Node Reference является дочерним элементом ноды, зависящей от иерархии (например, ObjectParticles), зависимая нода, хранящаяся в этой Node Reference, обновляется в соответствии с обновлением родительской ноды.
  • Выполнена дополнительная оптимизация многопоточного обновления нод. Теперь каждый дочерний узел того же родительского обновляется в отдельном потоке (если таковой имеется).
  • Исправлены утечки памяти при запуске самозванцев на графических процессорах NVIDIA.
  • Исправлены визуальные артефакты, отображаемые на графических процессорах NVIDIA в графическом изображении материала с деколью PBR.
  • Исправлена проблема с неправильным распределением света от статических источников Omni из-за неверных текстур глубины, используемых для теней (видимая, когда опция автоматического переброски для статических теней отключена).
  • Проецирование теней для Omni источников света теперь учитывает преобразование источника света так же, как и для Proj lights.
  • Опция локального пространства в Environment Probes теперь работает и для прозрачных объектов.
  • Оптимизированный рендеринг динамических зондов среды позволяет пропускать зонды за пределы видимости, экономя производительность.
  • Исправлена проблема с объемными объектами, использующими материал volume_cloud_base, при включенной опции Использовать освещение окружающей среды, что приводило к резким переходам освещения на границах. Параметр "Использовать освещение окружающей среды" больше не влияет на параметры ослабления.
  • Исправлена ошибка, из-за которой SSAO некорректно работал с объектом "Вода", вызывая визуальные артефакты.
  • Исправлена ошибка с параметром Масштаба уклона травы, приводившая к исчезновению травинок при переворачивании камеры вверх дном.
  • Исправлены визуальные артефакты, появляющиеся при рендеринге облаков с низким количеством выборок, вызванные отображением тонов, примененным на этапе TAA.
  • Исправлена проблема с рисованием карт нормалей, функция полностью функциональна.
  • Исправлена проблема с некорректным отображением дампов микропрофайлов в Google Chrome.
  • Исправлена проблема с GBuffer Normal в сценах, содержащих объект с ландшафтным рельефом, приводившая к искажению нормалей объектов в буфере из-за интерференции нормалей рельефа.
  • Исправлена проблема с выборкой значений высоты для ландшафтного рельефа в точках вдоль границ карт слоев низкой плотности.
  • Исправлена проблема с неправильным отображением теней в пространстве экрана на объекте Landscape Terrain.
  • Исправлены проблемы с вводом текста с некоторых клавиш цифровой панели.
  • Исправлена проблема с неправильной обработкой одновременных нажатий кнопок мыши (например, влево и вправо одновременно).
  • Исправлена проблема с автоматическим выбором режима отображения по размеру окна, теперь выбирается максимально возможная частота, как и должно быть.
  • Исправлены проблемы с неправильным положением экрана для виджетов, которые возвращались в определенных случаях при вызове соответствующих методов API.
  • Исправлен маршалинг для аргументов сложного типа функций обратного вызова на стороне C #, приводящий к получению неверных данных из-за неправильного выравнивания памяти (например, обратные вызовы textureddraw для ландшафтной местности).
  • Исправлена проблема с создателем текстур, используемым в режиме рисования текстур, в результате чего для текстур записывались абсолютные пути к файлу материала вместо их идентификаторов GUID. Исправлена проблема, из-за которой окно движка всегда открывалось при первом отображении конфигурации с несколькими дисплеями в Linux вместо того, чтобы открываться на том, который установлен в качестве основного.
  • Исправлен сбой приложения, основанного на системном прокси WPF, после выполнения команды show_displays в Windows7.
  • Добавлена дополнительная опция отладки для использования отладочных шейдеров для обоих типов двоичных файлов (debug и release). Вы можете переключать шейдеры отладки для вашего приложения с помощью аргумента запуска video_debug_shader, значение по умолчанию равно 0, что означает, что используются шейдеры выпуска.
  • Добавлена возможность проверять, наведен ли в данный момент курсор мыши на стандартный манипулятор движка: эта функция доступна с помощью метода WidgetManipulator::isHoverAxis().
  • Исправлена проблема с уменьшением разрешения эффекта цветения.
  • Исправлена проблема со сбросом значений параметров командной строки запуска для приложений BuildTool, RuntimesGenerator и SandwormNode.
  • Исправлен пример интеграции ImGui C # в Linux, теперь он работает на всех поддерживаемых системах Linux.

Редактор Unigine

Более быстрый запуск

Оптимизирован "горячий" запуск редактора для тяжелых крупномасштабных проектов с большим количеством контента. "Холодный" запуск - это первый раз, когда вы открываете свой проект в редакторе, когда выполняется проверка всех метаданных и другие операции, все последующие запуски редактора считаются "горячими". Оптимизация позволяет сократить время загрузки на 30-35%. Однако для небольших проектов не будет никакой разницы: чем больше контента в вашем проекте, тем заметнее эффект.

Плагин VR для редактора

Вывод виртуальной реальности теперь доступен в редакторе с помощью нового плагина VREditorPlugin. Программа автоматически обнаружит, что вы запускаете редактор с подключаемым модулем виртуальной реальности (например, с помощью аргумента запуска -extern_plugin), и добавит новый пункт в меню Windows, позволяющий вам открыть окно просмотра, отображающее изображение с вашего HMD. Как и в любом другом окне просмотра, вы можете переключаться между всеми доступными в настоящее время камерами, дополнительные элементы управления (например, коэффициент суперсэмплирования фокуса или режим окна просмотра) добавляются автоматически в зависимости от типа оборудования (Oculus, OpenVR или Varjo).

Улучшена проверка ресурсов и сред выполнения

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

Улучшения Cleaner

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

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

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

Управление компонентами / свойствами для нескольких нод

Теперь вы можете добавлять и назначать компонент или свойство нескольким нодам одновременно. Просто выберите их в окне просмотра или в окне World Nodes и нажмите Add New Component or Property в окне Properties. Затем перетащите нужный компонент / свойство в соответствующее поле, чтобы назначить его. Позже вы сможете выбрать несколько нод, имеющих один и тот же компонент / свойство, и заменить его другим, просто перетащив его в соответствующее поле или введя его название в этом поле.

Назначение нескольких элементов для параметров свойств типа массива

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

Четкая структура: заголовки групп и вложенность

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

Копирование нод в буфер обмена

При создании миров часто бывает необходимо скопировать определенные ноды и вставить их куда-нибудь еще, в пределах текущего мира или в другой мир вашего проекта. Мы сделали доступным копирование в буфер обмена для нод, вы можете использовать его для копирования выбранных нод, групп нод и иерархий, что позволяет выполнять операции копирования-вставки с нодами внутри или между мирами вашего проекта (Ctrl + C и Ctrl + V - как обычно).

Новые помощники

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

  • Недвижимый - для выделения неподвижных (статичных) объектов.
  • Заклинатели теней мира - для подсветки всех поверхностей, настроенных на отбрасывание теней от текущего источника света мира.
  • Статика сетки - для выделения всех статических сеток в сцене.
  • Динамика сетки - для выделения всех динамических сеток в сцене.
  • Кластеры - для выделения элементов сетчатого кластера.

Значки справки

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

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

UnigineEditor теперь проверяет совместимость версий при запуске и игнорирует все плагины, не пройдя эту проверку, избегая сбоев при попытке запустить редактор с плагином, имеющим несовместимую версию precision (например, плавающая версия редактора + двойная версия плагина).

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

Source code (C++)
Q_PLUGIN_METADATA(IID "com.unigine.EditorPlugin" FILE "YourPlugin.json")

вот этой:

Source code (C++)
Q_PLUGIN_METADATA(IID UNIGINE_EDITOR_PLUGIN_IID FILE "YourPlugin.json")

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

Пользовательская временная фильтрация для постэффектов на основе графиков

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

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

Неиспользуемые параметры материала

Параметры ваших графиков материалов, которые никогда не использовались (т.е. не имеют связи с нодой Material), теперь будут иметь (неиспользуемый) маркер на панели параметров.

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

  • Исправлена проблема с ошибкой компиляции шейдеров при подключении константы к Mip-входу графического узла с Resolution текстуры.
  • Исправлены предупреждения о конфликте GUID при клонировании нод в редакторе Material Graph.
  • Исправлен неправильный поворот предварительного просмотра ноды в редакторе Material Graph.
  • Исправлена проблема с отображением групп параметров в редакторе Material Graph, приводившая к исчезновению параметров и групп, размещенных после пустой группы в иерархии параметров материала.
  • Были добавлены следующие новые подграфы:
    Смещение шероховатости
    зеркального плавающего
    зеркала, настройки ультрафиолетового
    излучения, цвет солнца
    Настройки глобальной подсветки физического пространства экрана,
    настройки интенсивности Mie рассеяния дымки,
    Настройки интенсивности Mie рассеивания дымки на лицевой стороне,
    настройки рассеивания дымки, Mie мощности Френеля

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

  • Теперь UnigineEditor автоматически загружает плагины FbxImporter и FbxExporter по умолчанию.
  • Окно просмотра движка в UnigineEditor стало обычным главным окном движка, созданным с помощью Engine API для упрощения реализации и обеспечения того, чтобы тестирование логики на основе скриптов в редакторе было идентичным запуску его как приложения. Единственное отличие теперь заключается в том, что окно просмотра движка больше не может стекироваться с другими окнами редактора.
  • Исправлена ошибка, из-за которой редактор выполнял миграцию ресурсов в режиме монтирования только для чтения при запуске.
  • Исправлен сбой при импорте FBX-модели с количеством костей, превышающим максимальный предел на поверхность.
  • Исправлена проблема с удалением .meta текущего мира при сохранении его в редакторе.
  • Исправлен сбой редактора при создании групп в иерархии World Nodes и отмене изменений с помощью отмены (Ctrl + Z).
  • Исправлена проблема с отключением опции сжатия для световых карт после перезагрузки мира.
  • Исправлена проблема с окном движка, создававшимся и открывавшимся при запуске консольных приложений (RuntimesGenerator / BuildTool / SandwormNode).
  • Исправлено взаимодействие мыши с всплывающими окнами в режимах рисования кластером / маской беспорядка.
  • Selected Node Info была перемещена в нижний левый угол окна просмотра, чтобы не закрывать сам выбранный узел. Путь к активу теперь отображается вместо пути к среде выполнения.

  • Исправлены проблемы с переключением параметров в меню Помощники / Отладка рендеринга при открытии выпадающего списка.
  • Исправлена проблема с выбором объекта для рисования в режиме рисования текстур.
  • Исправлена проблема с некорректным поведением диалогового окна modal Texture Creator, блокирующего пользовательский интерфейс после перекрытия его окном редактора.

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

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

VR-шаблон на основе Qt

Теперь вы можете создавать свои собственные плагины на основе Qt на основе VR Template - просто выберите VR Template и выберите C ++ (на основе Qt) в качестве API + IDE при создании нового проекта.

Улучшения в инструменте Sandworm

  • Исправлен сбой при создании ландшафта с несколькими источниками данных в слое маски.
  • Добавлено смешивание нескольких источников данных в одной маске.
  • Исправлено дублирование названий точек границ.
  • Исправлены проблемы с редактированием границ области экспорта.
  • Реализовано включение раздела "Границы" при добавлении нового URL-адреса TMS.
  • Исправлена проблема с управлением (обнаружением и сохранением) несохраненными изменениями в проекте.
  • Исправлены проблемы с отменой / повтором при выборе источников рельефа и объектов.
  • Исправлены проблемы с параметрами использования цвета изображения и длины разделения для зданий в автоматическом режиме.
  • Исправлены швы для ObjectTerrainGlobal, созданные с использованием встроенных проекций и EPSG: 3395.
  • Исправлена ошибка при отмене / повторе для источников данных масок и объектов.
  • Исправлены проблемы с некорректной генерацией ландшафта в режиме без головы.
  • Исправлен сбой инструмента при закрытии редактора UNIGINE.
  • Исправлена неправильная генерация крыши skillion.
  • Исправлены проблемы с изменением типа местности в существующем проекте.
  • Реализовано скрытие границ области экспорта при использовании средства выбора цвета.
  • Исправлен сбой при работе с фильтрами, установленными для источника маски.
  • Исправлена проблема с неправильным перепроецированием источников после изменения системы координат.
  • Исправлено неправильное распределение растительности в соответствии с маской.
  • Исправлен сбой при создании дорог с корректировками (при включенном флаге Регулировать высоту местности и маски).
  • Исправлены проблемы с распределенной генерацией.
  • Переработана логика выбора элементов пользовательского интерфейса.
  • Незначительные улучшения пользовательского интерфейса.

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

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

В набор образцов C ++ Samples добавлен набор примеров, демонстрирующих некоторые типичные варианты использования, включая следующие:

  • Реализация режима разделенного экрана с использованием WidgetSpriteViewport, позволяющего управлять перемещением двух кубов, каждый из которых имеет свой собственный вид на одной клавиатуре (WASD для вида сверху и клавиши со стрелками для нижней части), как в старых гоночных играх.
  • Реализация вида в стиле CAD, демонстрирующая разделенный экран с несколькими видами, объединяющий виды (спереди, сбоку, сверху и в перспективе) с камер, имеющих разные матрицы проекции, как в программном обеспечении CAD.
  • Нисходящий контроллер, реализующий некоторые элементы стратегической игры "сверху вниз", позволяющий выбирать один или несколько объектов, панорамируя вид, поворачивая камеру и плавно фокусируя ее на текущем выбранном объекте.
  • Реализация Widget Manipulator, позволяющая использовать движковые манипуляторы для перемещения, поворота или масштабирования выбранного в данный момент объекта. Вы также можете блокировать / разблокировать оси манипулятора, ограничивающие текущие преобразования, и переключаться между локальными и мировыми координатами.
  • Виджет Target Marker, реализующий HUD с маркером, всегда указывающим на цель, когда она находится в поле зрения, или отображающим стрелку, указывающую направление на цель, когда она вне поля зрения (выровнена по границам экрана).
  • Пример кластера, показывающий, как удалить выбранные элементы из кластера сетки и добавить новые в местах, указанных курсором мыши при нажатии левой кнопки мыши.
  • Преобразователь беспорядка в кластер пример, демонстрирующий создание объекта Mesh Clutter и его преобразование в Mesh Cluster одним щелчком мыши.
  • Основанная на физике анимация, демонстрирующая реализацию различных режимов передвижения кошки и простую игру, в которой кошка гоняется за лазерной указкой (используются различные функции ослабления).

Некоторые из этих примеров (Top-Down Controller, Cluster, Clutter-to-Cluster Converter и Target Marker) также были реализованы на C # и добавлены в пакет C# Samples.

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

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

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

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

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

Build: ()