Tracking-Map Yönetimi
Özet
HoloLens, oturumlar arasında hologram kararlılığını ve konumlarını korumak için fiziksel ortamın "Cihaz Paylaşılan" izleme modu adı verilen bir iç gösterimini sürekli olarak oluşturur. Ancak, çevresel değişiklikler zaman içinde izlemede yanlışlığa neden olabilir ve bu da yüksek doğruluk gereksinimlerine sahip uygulamalar için sorunludur. Bu sorunu gidermek için bir dizi yönetim API'siyle yeni bir "Uygulamaya Özel" izleme modu kullanıma sunulmuştur.
"Uygulamaya Özel" modu, uygulamaların izleme doğruluğunda bozulmadan temiz bir ortamda çalışmasını sağlar. Mod, gelecekteki oturumlarda uygulamanın belirli haritasını devam ettirmek için bir "uygulamaya özel oturum belirteci" verir.
Notlar:
"Özel Uygulama" modunun iki sınırlaması, bir kerede bu tür bir modun mevcut olması, önceki verileri silmesi ve disk depolama alanının "Cihaz Paylaşılan" modunun üçte biriyle sınırlı olmasıdır. Ancak, küçük sınır çoğu uygulama için hala yeterlidir.
"Uygulamaya Özel" modu için hedef senaryo, yüksek doğruluk gereksinimlerine ve görev odaklı iş akışlarına sahip uygulamalardır. Gerçek dünya nesneleriyle hassas hologram hizalama ve kalıcılık gereksinimi olmadan 3B model düzenleme örnekleri verilebilir.
Yeni izleme modu API'lerini kullanmak için Bir Sonbahar 2023 HoloLens işletim sistemi güncelleştirmesi gerekir. Önceki sürümler "Özel Uygulama" modunu desteklemez.
Arka Plan
HoloLens kullanıldığından sürekli olarak cihazın etrafındaki fiziksel ortamın iç temsilini oluşturur. Bu sayede hologramları 3B konumlarında düzgün bir şekilde sabit tutabilir ve cihaz birden çok oturumda aynı fiziksel konumda kullanıldığında bunları yeniden konumlandırabilir. Bu gösterim belirli bir HoloLens'te tüm uygulamalar arasında paylaşılır ve uygun şekilde "Cihaz Paylaşılan" izleme modu olarak adlandırılır.
Ortamdaki küçük değişiklikler (yeni bir konuma taşınan sandalye gibi) veya aydınlatma değişiklikleri gibi çeşitli faktörler nedeniyle ortamın iç gösterimi zaman içinde düşebilir. Bu değişiklikler HoloLens'in izlemesinde yanlışlıklara neden olabilir ve bu da bazı hologramların özgün yerleşimlerinden küçük miktarlarda kaymasıyla sonuçlanabilir. Bu hareket genellikle birçok uygulama için göz ardı edilebilir. Ancak, yüksek doğruluk gereksinimlerine sahip uygulamalar için zaman içindeki düşüş sorunludur. Daha önce en yaygın geçici çözüm, uygulamaların kullanıcılarına Ayarlar uygulamasındaki "Hologramlar" sekmesini kullanarak kaydedilen tüm ortam verilerini temizleyen "Tüm Hologramları Kaldır" seçeneğini kullanmalarını önermekti. Bu eylem, önceden oluşturulan tüm hologramları silme karşılığında yeni bir ortama sıfırlanır.
Tracking-Map Yönetim API'leri
"Cihaz Paylaşılan" izleme haritası zaman içinde geliştikçe oluşan sorunlardan bazılarını hafifletmek için, bir uygulamanın ortamını daha ayrıntılı bir düzeyde yönetmesi için destek eklenmiştir. Ancak bu yeni işlevsellik, bir uygulamanın gereksinimlerine bağlı olarak dikkatle yönetilmesi gereken kendi dezavantajlarıyla birlikte gelir.
"Uygulamaya Özel" İzleme Modu
Yeni bir API kümesi, bir uygulamanın "Cihaz Paylaşılan" varsayılanı yerine "Uygulamaya Özel" izleme modunda çalıştırmayı kabul etmesine olanak tanır. Bu işlem, uygulamanın geçerli oturum sırasında kullanması için yepyeni bir ortam oluşturur ve zaman içinde düşüş sonucu herhangi bir Cihaz Alanı izleme yanlışlığı tarafından engellenmez. Bu moda geçmek, Ayarlar'dan "Tüm Hologramları Kaldır" komutunun kullanılmasıyla eşdeğerdir, ancak yalnızca çalışan uygulama için geçerlidir. Diğer tüm uygulamalar (HoloLens Kabuğu dahil) için hologramlar olduğu gibi kalır ve daha önce olduğu gibi kullanılabilir. Shell'e dönmek veya başka bir uygulamayı etkinleştirmek HoloLens'i otomatik olarak "Cihaz Paylaşılan" izleme moduna döndürür.
Buna ek olarak, "Uygulamaya Özel" izleme modu, çağıran uygulamanın "Yüksek Doğruluk" izleme aslına uygunluk isteğinde bulunmasını sağlar. Bu yeni mod, izleyicinin daha fazla pil gücü ve disk depolama alanı kullanmak pahasına daha doğru bir şekilde izlemeyi denemesini istemektedir. Bu yeni mod, hologramların gerçek dünya nesneleriyle hizalanması gibi yüksek doğruluk gereksinimleri olan oda boyutundaki alanlarda gerçekleşen uygulama senaryoları için idealdir.
"Özel Uygulama" izleme moduna ilk girildiğinde, çağıran uygulamaya bir "uygulamaya özel oturum belirteci" verilir. Bu belirteç, kullanıcının uygulamadan uzaklaştığı ve sistem kaynak kısıtlamaları nedeniyle arka planda sonlandırıldığı durumlarda olduğu gibi uygulamanın gelecekteki oturumlarında uygulamaya özgü haritayı izlemeye devam etmek için kullanılabilir. Ancak cihaz uyku moduna geçerse veya kullanıcı Shell ile kısa bir süre etkileşim kurarsa, uygulama yeniden etkinleştirildikten sonra otomatik olarak "Özel Uygulama" izleme modunda devam eder (ve tüm uygulama durumu kullanılabilir durumda kalır).
"Uygulamaya Özel" izleme modunu kullanırken dikkat etmeniz gereken iki sınırlama vardır:
HoloLens'te tek seferde yalnızca tek bir "Uygulamaya Özel" izleme haritası bulunabilir. Bir uygulama yeni bir "Uygulamaya Özel" izleme modu isterse, önceki tüm "Özel Uygulama" izleme verileri silinir ve veriler kendi "Özel Uygulama" izleme modu kullanılarak farklı bir uygulama tarafından oluşturulmuş olsa bile tüm SpatialAnchor nesneleri (ve eklenen hologramlar) kaybolur. Bu nedenle, bir "Uygulamaya Özel Oturum Belirteci" belirterek önceki bir "Özel Uygulama" oturumuna geri dönmek, önceki oturumun bulunamadığını belirten bir dönüş değeriyle sonuçlanabilir. Uygulamalar, önceki bir "Özel Uygulama" izleme haritasının kullanılamadığı senaryoyu işlemeye hazır olmalıdır.
App-Exclusive izleme modunda kullanılabilen disk depolama alanı, "Cihaz Paylaşılan" izleme modu için sağlananların üçte biriyle sınırlıdır, ancak bu sınırlama çoğu kullanıcı için sorun oluşturma olasılığı düşüktür. Bu sınıra ulaşıldığında HoloLens en az değerli izleme verilerini silmeye başlar ve sonunda daha düşük izleme doğruluğuyla sonuçlanır. Daha küçük sınır, ev boyutundaki ortamlarda iyi doğruluk sağlamak için yeterince büyüktür ve çoğu uygulama senaryosunda sorun oluşturma olasılığı düşüktür.
Bu sınırlamalar göz önünde bulundurulduğunda, "Özel Uygulama" izleme modunun hedef senaryosu, holoLens Kabuğu'nu döndüren veya cihazın uyku moduna geçtiği bir görevin kesintiye uğrayabileceği, görev odaklı yüksek doğruluk gereksinimlerine sahip uygulamalara yöneliktir. Ancak, kullanıcının görevi tamamlandıktan sonra görevle ilgili hiçbir şeyin (3B ortama göre) kaydedilmesine gerek yoktur ve bu nedenle silinebilir.
Örnekler:
- Senaryoyu önyüklemek için QR kodlarını kullanarak hologramların gerçek bir nesneye yüksek doğrulukla hizalaması.
- Oturum sona erdikten sonra modelin 3B uzamsal kalıcılığı gerekmeyen yüksek doğruluk gereksinimleri olan bir 3B modeli düzenleme.
- Çok fazla çevresel değişim sıklığı olan yerlerde (hareket eden insanlar gibi) izleme, bazen daha fazla statik ortamdan daha düşük izleme kalitesine neden olur.
api'leri App-Exclusive
Tracking-Map Yönetim API'leri Microsoft.MixedReality.OpenXR.TrackingMapManager'da kullanılabilir
App-Exclusive SSS
Bir uygulama EnterNewAppExclusiveTrackingSession() uygulamasını ne zaman çağırmalıdır?
- Etkili olmak için, "Özel Uygulama" izleme moduna geçmek isteyen bir uygulamanın etkin, çevreleyici 3B uygulama olması gerekir. Bu nedenle, bu API'ler yalnızca uygulama 3B kullanıcı arabirimini işlemeye başladıktan sonra kullanılmalıdır (örneğin, uygulama ilk kez çalıştırıldığında kullanılmamalıdır).
Bir uygulamanın LeaveAppExclusiveTrackingSession() uygulamasını çağırması gerekiyor mu?
- Bir uygulamanın yalnızca "Cihaz Paylaşılan" izleme modunda ayrı bir oturumda geri çağırma için SpatialAnchor'ı kalıcı hale getirme gibi herhangi bir eylem gerçekleştirmek istiyorsa "Özel Uygulama" izleme modundan çıkması gerekir. Odak farklı bir uygulamaya (HoloLens Kabuğu gibi) değiştirildiğinde HoloLens otomatik olarak uygun izleme moduna geçer. Kullanıcı daha sonra uygulamaya dönerse HoloLens, uygun şekilde otomatik olarak "Uygulamaya Özel" izleme moduna geri döner. Ancak, işletim sistemi uygulamanın işlemini tamamen sonlandırdıysa (kaynak kısıtlamaları nedeniyle), uygulama "Cihaz Paylaşılan" izleme modunda yeniden başlatılır ve uygulamanın bunu algılaması (CurrentTrackingMapType API'si aracılığıyla) ve istenen izleme moduna yeniden girmeleri gerekir.
Bir uygulamanın "Özel Uygulama" izlemesinde oluşturulan ortam verilerine diğer uygulamalar tarafından erişilebilir mi yoksa uygulamaya özel midir?
- "Cihaz Paylaşılan" izleme modunda tüm ortam verileri uygulamalar arasında paylaşılır. Ancak, "Uygulamaya Özel" izleme modunda, önceden oluşturulmuş ortam verileri ve hologramlar yalnızca App-Exclusive Oturum Belirteci kullanarak "Özel Uygulama" izleme modunu sürdüren bir uygulamada kullanılabilir (daha önce uygulamaya ilk olarak "Özel Uygulama" izleme modu istendiğinde verilmiştir). Başka bir deyişle, App-Exclusive Oturum Belirteci farklı bir uygulamaya verilmediği sürece, önceki uygulamayla aynı ortam verileri ve hologramlarla "Uygulamaya Özel" izlemeyi sürdüremez. Etkili bir şekilde, bir uygulama App-Exclusive Oturum Belirtecini paylaşmadığı sürece, cihazdaki diğer tüm uygulamalardan veriler silinir.
Yeni izleme modu API'lerini kullanmak için HoloLens'in hangi sürümü gereklidir?
- Yeni izleme eşlemesi yönetim API'lerini kullanmak için bir işletim sistemi güncelleştirmesi gereklidir. Bir uygulama, bu API'leri kullanmadan önce istenen izleme modu desteğini onaylamak için "SupportedTrackingMapTypes" bayrakları numaralandırmasını kullanmalıdır.
- "Uygulamaya Özel" izleme modu, Sonbahar 2023 HoloLens işletim sistemi güncelleştirmesinde kullanıma sunulmuştur. Bu sürümde ve sonraki sürümlerde, "SupportedTrackingMapTypes" bayrak numaralandırması "AppExclusive" değerini içerir. Önceki sürümler bu değeri içermez ve herhangi bir "Uygulamaya Özel" izleme modu API'sine çağrılar özel durum oluşturur.
- Ekim 2023'e kadar herhangi bir HoloLens işletim sistemi sürümünde "SupportedTrackingMapTypes" yalnızca "DeviceShared" raporu sunar ve başka yönetim API'leri kullanılamaz.
Unity kullanarak uygulama oluştururken dikkat edilmesi gereken özel noktalar var mı?
Uygulamalar genellikle görünümleri, eylemleri ve hologramları birbirine bağlamak için bazı kök dünya koordinat alanı oluşturur. Uygulamalar , dünya ölçeğinde koordinat sistemi oluşturmak için ilişkisiz bir başvuru alanı kullanmalıdır. Bu, kullanıcı uygulamanın başlatıldığı konumdan (örneğin, 5 metre uzaklıkta) hareket ettiğinde veya uygulama uzay haritaları arasında seçildiğinde sınırlı veya kayıp izleme ve istenmeyen hologram kaymalarını önler.
Unity uygulamalarında mrtk3 kullanmıyorsanız ilişkisiz başvuru alanını etkinleştirmek için , sahnenizin XR kaynağına EyeLevelSceneOrigin bileşenini ekleyin. Varsayılan olarak, MRTK3'ün varsayılan donanımı HoloLens 2 üzerinde ilişkisiz başvuru alanını zaten etkinleştirir. MRTK3 kullanıyorsanız ve varsayılan donanımı kullanmıyorsanız, Sahnenizin XR kaynağına UnboundedTrackingMode bileşenini ekleyin.