HandMeshObserver Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt Gitterupdates für jeden Frame bereit, der die erkannte Form einer Hand nachverfolgt.
public ref class HandMeshObserver sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 524288)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class HandMeshObserver final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 524288)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class HandMeshObserver
Public NotInheritable Class HandMeshObserver
- Vererbung
- Attribute
Windows-Anforderungen
Gerätefamilie |
Windows 10, version 1903 (eingeführt in 10.0.18362.0)
|
API contract |
Windows.Foundation.UniversalApiContract (eingeführt in v8.0)
|
Hinweise
Beim Erstellen eines HandMeshObservers werden Handgitterupdates für eine bestimmte SpatialInteractionSource abonniert, die die erkannte Form dieser Hand nachverfolgt.
Wenn Benutzer direkt mit virtuellen Objekten mit ihren Händen interagieren, möchten Sie möglicherweise eine Visualisierung der Hände rendern, um das Vertrauen des Benutzers in seine Interaktionen zu erhöhen. Durch Erstellen eines HandMeshObservers können Sie einen festen Indexpuffer für die Hand-up-Front abrufen, indem Sie GetTriangleIndices und dann einen aktualisierten Vertexpuffer für jeden Frame aufrufen, indem Sie GetVertexStateForPose aufrufen. Mit diesen Puffern können Sie eine Livevisualisierung der Hand des Benutzers rendern.
Der Indexpuffer des Handgitters ändert sich während der Lebensdauer des HandMeshObservers nicht. Der Inhalt des Vertexpuffers des Handgitters wird bei jedem Frame aktualisiert, während die Vertexanzahl nicht erfolgt. Sie können daher bei jedem Frame den gleichen Vertexpuffer auffüllen.
Sie erstellen einen HandMeshObserver für eine bestimmte Interaktionsquelle, indem Sie SpatialInteractionSource.TryCreateHandMeshObserverAsync oder SpatialInteractionSource.TryCreateHandMeshObserver aufrufen. Es kann mehr als einen Frame dauern, um das App-Abonnement für Handgitterupdates zu initialisieren. Sie sollten nur die synchrone Version der -Methode aus einem Hintergrundthread aufrufen. Wenn Sie von einem UI-Thread, Renderthread oder Updatethread aufrufen, sollten Sie stattdessen die asynchrone Version aufrufen.
Eigenschaften
ModelId |
Ruft eine Handgittermodell-ID ab, um denselben Indexpuffer für mehrere Quellerkennungs- und Verlustereignisse zu identifizieren. |
NeutralPose |
Ruft den aktuellen neutralen HandPose für diese Hand ab. |
NeutralPoseVersion |
Ruft die Version von NeutralPose für diese Hand ab. |
Source |
Die SpatialInteractionSource , deren Handgitter von diesem HandMeshObserver nachverfolgt wird. |
TriangleIndexCount |
Ruft die Anzahl der Elemente im Indexpuffer für dieses Handgittermodell ab. |
VertexCount |
Ruft die Anzahl der Scheitelpunkte für diese Hand ab. |
Methoden
GetTriangleIndices(UInt16[]) |
Füllt einen Indexpuffer für dieses Handgittermodell aus. |
GetVertexStateForPose(HandPose) |
Ruft den Vertexpuffer und anderen Zustand ab, der zum Rendern des Handgitters für die Handposition eines bestimmten Frames oder für die neutrale Pose des Handgitters erforderlich ist. |