Pulse shader - MRTK2

MRTK_SpatialMesh_Pulse

Usare il pulse shader per animare un effetto dell'impulso visivo sulla ricostruzione della superficie, sulla mesh a mano articolata o su qualsiasi altra mesh.

Shader e materiale

I materiali seguenti usano SR_Triangles shader. È possibile configurare varie opzioni, ad esempio il colore di riempimento, il colore della linea e il colore dell'impulso.

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

Prerequisiti

Per l'esempio di mesh spaziale, assicurarsi che MRTK_Pulse_SpatialMeshBlue.mat o MRTK_Pulse_SpatialMeshPurple.mat sia assegnato in Oggetto MixedRealityToolkit -> Profilo di consapevolezza spaziale -> Visualizzazione Impostazioni -> Materiale visibile.

Per l'esempio di mesh della mano, assicurarsi che MRTK_Pulse_ArticulatedHandMeshBlue.mat o MRTK_Pulse_ArticulatedHandMeshPurple.mat sia assegnato in ArticulatedHandMesh.prefab, che deve essere assegnato in MRTK Impostazioni - Input -> Hand Tracking ->> Hand Mesh Prefab.

Funzionamento

Il mesh shader della mano usa le UV per mappare l'impulso lungo la rete a mano e per sfumare il polso. Lo shader di ricostruzione della superficie usa le posizioni del vertice per mappare l'impulso.

Esempio di Mesh spaziale - PulseShaderSpatialMeshExample.unity

Analogamente all'esperienza della shell di HoloLens 2, è possibile puntare e toccare con il raggio della mano per generare un effetto pulsante sulla rete spaziale. La scena di esempio contiene l'oggetto ExampleSpatialMesh che rappresenta un test dei dati della mesh spaziale per la modalità gioco di Unity. Questo oggetto verrà disabilitato e nascosto nel dispositivo.

Lo script PulseShaderSpatialMeshHandler.cs genera l'effetto dell'impulso sulla mesh spaziale nella posizione del punto di hit se PulseOnSelect è true. La Auto Pulse proprietà può anche essere impostata su true nel materiale stesso per un'animazione ripetuta. Nella scena di esempio questo script viene collegato al prefab PulseShaderSpatialMeshParent. Questo prefab viene fatto riferimento sotto il profilo di consapevolezza spaziale tramite la proprietà Runtime Spatial Mesh Prefab. Durante il runtime, il prefab PulseShaderSpatialMeshParent e viene creata un'istanza e aggiunta alla gerarchia della mesh spaziale (solo nel dispositivo, questo comportamento non può essere osservato nell'editor).

Esempio di mano Mesh - PulseShaderHandMeshExample.unity

Questa scena di esempio illustra la visualizzazione della mesh della mano usando pulse shader. Quando viene rilevata una mano dal dispositivo HoloLens, l'animazione a impulsi verrà attivata una sola volta. Questo feedback visivo può aumentare l'attendibilità dell'interazione dell'utente.

Lo script PulseShaderHandMeshHandler.cs genera l'effetto dell'impulso sul materiale assegnato. Per impostazione predefinita, viene controllato "Pulse On Hand Detected".