Pulse shader - MRTK2

MRTK_SpatialMesh_Pulse

Usare lo shader pulse per animare un effetto 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 -> Impostazioni di visualizzazione -> Materiale visibile.

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

Funzionamento

Il mesh shader della mano usa le UV per mappare l'impulso lungo la mesh della mano e per sfumare il polso. Lo shader di ricostruzione della superficie usa le posizioni dei vertici per eseguire il mapping dell'impulso.

Esempio di mesh spaziale - PulseShaderSpatialMeshExample.unity

Analogamente all'esperienza shell di HoloLens 2, è possibile puntare e toccare aria con il raggio della mano per generare un effetto pulsante sulla mesh spaziale. La scena di esempio contiene l'oggetto ExampleSpatialMesh, che è un test dei dati della mesh spaziale per la modalità di 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 nella proprietà Spatial Awareness Profile 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 mesh a mano - PulseShaderHandMeshExample.unity

Questa scena di esempio illustra la visualizzazione della mesh manuale usando pulse shader. Quando una mano viene rilevata 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 pulse sul materiale assegnato. Per impostazione predefinita, viene selezionata l'opzione 'Pulse On Hand Detected'.