Импульсный шейдер — MRTK2

MRTK_SpatialMesh_Pulse

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

Шейдер и материал

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

  • MRTK_Pulse_SpatialMeshBlue.mat
  • MRTK_Pulse_SpatialMeshPurple.mat
  • MRTK_Pulse_ArticulatedHandMeshBlue.mat
  • MRTK_Pulse_ArticulatedHandMeshPurple.mat

Предварительные требования

Для примера пространственной сетки убедитесь, что параметр MRTK_Pulse_SpatialMeshBlue.mat или MRTK_Pulse_SpatialMeshPurple.mat назначен в разделе Объект MixedRealityToolkit —> Профиль пространственной осведомленности —> Параметры отображения —> Видимый материал.

Для примера сетки рук убедитесь, что MRTK_Pulse_ArticulatedHandMeshBlue.mat или MRTK_Pulse_ArticulatedHandMeshPurple.mat назначено в файле ArticulatedHandMesh.prefab, который должен быть назначен в разделе Параметры MRTK —> Входные данные —> Отслеживание рук —> Заготовка сетки рук.

Принцип работы

Шейдер сетки рук использует UV для сопоставления импульса вдоль сетки рук и для затухания запястья. Шейдер реконструкции поверхности использует положения вершин для сопоставления импульса.

Пример пространственной сетки — PulseShaderSpatialMeshExample.unity

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

Скрипт PulseShaderSpatialMeshHandler.cs создает импульсное воздействие на пространственную сетку в позиции точки попадания, если PulseOnSelect имеет значение true. Свойство Auto Pulse также может иметь значение true в самом материале для повторяющейся анимации. В примере сцены этот скрипт присоединяется к заготовке PulseShaderSpatialMeshParent. Эта заготовка ссылается в профиле пространственной осведомленности через свойство Prefab пространственной сетки среды выполнения. Во время выполнения заготовка PulseShaderSpatialMeshParent создается и добавляется в иерархию пространственной сетки (только на устройстве такое поведение невозможно наблюдать в редакторе).

Пример сетки рук — PulseShaderHandMeshExample.unity

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

Скрипт PulseShaderHandMeshHandler.cs создает импульсное воздействие на назначенный материал. По умолчанию установлен флажок Pulse On Hand Detected (Обнаружен пульс в руке).