Synchronizacja systemu współrzędnych za pomocą komunikacji zdalnie holograficznej i interfejsu API Windows Mixed Reality
Za pomocą interfejsu API Windows Mixed Reality system współrzędnych użytkownika jest opakowany w element SpatialStationaryFrameOfReference.
Porada
Prosty przykład można znaleźć w przykładach zdalnych i odtwarzaczy w repozytorium GitHub przykładów holographic Remoting.
Usuń komentarz #define ENABLE_USER_COORDINATE_SYSTEM_SAMPLE
wewnątrz plików SampleRemoteApp.h i SamplePlayerMain.h, aby włączyć przykładowy kod.
Ustawianie i aktualizowanie systemu współrzędnych użytkownika w aplikacji odtwarzacza
Aby ustawić i zaktualizować system współrzędnych użytkownika, wywołaj UpdateUserSpatialFrameOfReference
kontekst odtwarzacza i przekaż do niego element SpatialCoordinateSystem .
Element SpatialCoordinateSystem może na przykład być elementem SpatialStationaryFrameOfReference, SpatialLocatorAttachedFrameOfReference lub SpatialAnchor.
// In the Player app:
// Create a stationary frame of reference
winrt::Windows::Perception::Spatial::SpatialStationaryFrameOfReference spatialFrameOfReference = nullptr;
winrt::Windows::Perception::Spatial::SpatialLocator spatialLocator = winrt::Windows::Perception::Spatial::SpatialLocator::GetDefault();
if (spatialLocator != nullptr)
{
spatialFrameOfReference = spatialLocator.CreateStationaryFrameOfReferenceAtCurrentLocation(float3(0.0f, 0.0f, 0.0f), quaternion(0, 0, 0, 1), 0.0);
}
...
// Update the user coordinate system with the coordinate system of the spatial frame of reference
try
{
SpatialCoordinateSystem userCoordinateSystem = spatialFrameOfReference.CoordinateSystem();
m_playerContext.UpdateUserSpatialFrameOfReference(userCoordinateSystem);
}
catch (...)
{
}
Uwaga
W przypadku przykładowego elementu SpatialStationaryFrameOfReference należy wywołać w regularnym interwale, UpdateUserSpatialFrameOfReference
aby uniknąć dryfowania po utracie śledzenia urządzeń, nawet jeśli system współrzędnych użytkownika nie uległ zmianie.
Pobieranie systemu współrzędnych użytkownika w aplikacji zdalnej
Aby uzyskać dostęp do systemu współrzędnych użytkownika, wywołaj GetUserSpatialFrameOfReference
kontekst zdalny.
GetUserSpatialFrameOfReference
zwraca element SpatialStationaryFrameOfReference, który reprezentuje układ współrzędnych użytkownika.
// In the Remote app:
winrt::Windows::Perception::Spatial::SpatialStationaryFrameOfReference spatialUserFrameOfReference = m_remoteContext.GetUserSpatialFrameOfReference();