Импульсный шейдер — 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 Параметры - Input ->> Hand Tracking -> Hand Mesh Prefab.

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

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

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

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

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

Пример Mesh рук — PulseShaderHandMeshExample.unity

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

Скрипт PulseShaderHandMeshHandler.cs создает импульсный эффект на назначенный материал. По умолчанию проверяется "Pulse On Hand Detected".