Pulse Shader – MRTK2

MRTK_SpatialMesh_Pulse

Verwenden Sie den Puls-Shader, um einen visuellen Pulseffekt über die Oberflächenrekonstruktion, das Handgitter oder andere Gitter zu animieren.

Shader und Material

Die folgenden Materialien verwenden SR_Triangles Shader. Sie können verschiedene Optionen wie Füllfarbe, Linienfarbe und Pulsfarbe konfigurieren.

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

Voraussetzungen

Stellen Sie für das räumliche Gitterbeispiel sicher, dass MRTK_Pulse_SpatialMeshBlue.mat oder MRTK_Pulse_SpatialMeshPurple.mat unter MixedRealityToolkit -Objekt -> Räumliches Bewusstseinsprofil> - Anzeigen Einstellungen> - Sichtbares Material zugewiesen wird.

Stellen Sie für das Handgitterbeispiel sicher, dass MRTK_Pulse_ArticulatedHandMeshBlue.mat oder MRTK_Pulse_ArticulatedHandMeshPurple.mat in ArticulatedHandMesh.prefab zugewiesen wird, was selbst in MRTK Einstellungen> - Eingabe> - Handverfolgung - Handverfolgung> - Hand-Mesh Prefab zugewiesen werden soll.

Funktionsweise

Der Handgitter-Shader verwendet UVs, um den Puls entlang des Handgitters zuzuordnen und das Handgelenk auszublenden. Der Surface-Wiederaufbau-Shader verwendet die Vertexpositionen, um den Puls zuzuordnen.

Räumliche Mesh Beispiel - PulseShaderSpatialMeshExample.unity

Ähnlich wie die Schalenerfahrung HoloLens 2 können Sie mit dem Handstrahl auf einen pulsierenden Effekt auf das räumliche Gitter zeigen und tippen. Die Beispielszene enthält exampleSpatialMesh-Objekt, das eine Test-Räumliche Gitterdaten für den Spielmodus von Unity ist. Dieses Objekt wird auf dem Gerät deaktiviert und ausgeblendet.

PulseShaderSpatialMeshHandler.cs script generiert den Pulseffekt auf das räumliche Gitter an der Trefferposition, wenn PulseOnSelect wahr ist. Die Auto Pulse Eigenschaft kann auch auf "true" im Material selbst für eine wiederholte Animation festgelegt werden. In der Beispielszene wird dieses Skript an die PulseShaderSpatialMeshParent Prefab angefügt. Dieser Prefab wird über die Runtime Spatial Mesh Prefab-Eigenschaft unter dem Räumlichen Bewusstseinsprofil verwiesen. Während der Laufzeit wird die PulseShaderSpatialMeshParent Prefab instanziiert und der räumlichen Gitterhierarchie hinzugefügt (nur auf dem Gerät kann dieses Verhalten im Editor nicht beobachtet werden).

Hand Mesh Beispiel - PulseShaderHandMeshExample.unity

In dieser Beispielszene wird die Handgittervisualisierung mithilfe des Puls-Shaders veranschaulicht. Wenn eine Hand vom HoloLens Gerät erkannt wird, wird die Pulsanimation einmal ausgelöst. Dieses visuelle Feedback kann die Interaktionssicherheit des Benutzers erhöhen.

PulseShaderHandMeshHandler.cs script generiert Pulseffekt auf das zugewiesene Material. Standardmäßig ist "Pulse On Hand erkannt" aktiviert.