Holografik Uzaktan İletişim ve Windows Mixed Reality API'siyle Sistem Eşitlemesini Koordine Etme
Windows Mixed Reality API'si ile kullanıcı koordinat sistemi SpatialStationaryFrameOfReference içine sarmalanır.
İpucu
Holographic Remoting örnekleri github deposunun içindeki uzak ve oyuncu örneklerinde basit bir örnek bulunabilir.
#define ENABLE_USER_COORDINATE_SYSTEM_SAMPLE
Örnek kodu etkinleştirmek için SampleRemoteApp.h ve SamplePlayerMain.h dosyalarının açıklamasını kaldırın.
Player Uygulamasında Kullanıcı Koordinat Sistemini Ayarlama ve Güncelleştirme
Kullanıcı koordinat sistemini ayarlamak ve güncelleştirmek için yürütücü bağlamında çağrısı UpdateUserSpatialFrameOfReference
yapın ve içine bir SpatialCoordinateSystem geçirin.
SpatialCoordinateSystem, örneğin SpatialStationaryFrameOfReference, SpatialLocatorAttachedFrameOfReference veya SpatialAnchor olabilir.
// 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 (...)
{
}
Not
Örnek SpatialStationaryFrameOfReference ile, UpdateUserSpatialFrameOfReference
kullanıcı koordinat sistemi değişmemiş olsa bile cihaz izleme kaybından sonra kaymayı önlemek için düzenli aralıklarla çağrılmalıdır!
Uzak Uygulamada Kullanıcı Koordinat Sistemini Alma
Kullanıcı koordinat sistemine erişmek için uzak bağlamda öğesini çağırın GetUserSpatialFrameOfReference
.
GetUserSpatialFrameOfReference
kullanıcı koordinat sistemini temsil eden spatialStationaryFrameOfReference döndürür.
// In the Remote app:
winrt::Windows::Perception::Spatial::SpatialStationaryFrameOfReference spatialUserFrameOfReference = m_remoteContext.GetUserSpatialFrameOfReference();