Импульсный шейдер — MRTK2
Используйте импульсный шейдер, чтобы анимировать эффект визуального импульса при реконструкции поверхности, сетчатой сетчатой рук или любой другой сетке.
Шейдер и материал
В следующих материалах используется 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 (Обнаружен пульс в руке).