Sahne anlama gözlemcisi — MRTK2

Scene Understanding, sahne varlıklarının ve HoloLens 2 üzerindeki geometrik formlarının semantik bir gösterimini döndürür (HoloLens 1. Nesil desteklenmez).

Bu teknolojinin beklenen bazı kullanım örnekleri şunlardır:

  • Nesneleri belirli bir türdeki (ör. duvar ve zemin) en yakın yüzeye yerleştirin
  • Platform stili oyunlar için gezinti ağı oluşturma
  • Dörtlü olarak fizik motoru dostu geometri sağlayın
  • Benzer algoritmalar yazma gereğini önleyerek geliştirmeyi hızlandırın

Scene Understanding, MRTK 2.6'da deneysel bir özellik olarak tanıtıldı. MRTK'ye adlı WindowsSceneUnderstandingObserveruzamsal gözlemci olarak entegre edilmiştir. Scene Understanding hem Eski XR işlem hattı hem de XR SDK işlem hattı (hem OpenXR (MRTK 2.7'den başlayarak) hem de Windows XR Eklentisi ile çalışır. Her iki durumda WindowsSceneUnderstandingObserver da kullanılır.

Not

Uzaktan İletişimde Sahne Anlama'nın kullanılması yalnızca MRTK 2.7.3 ve üzerinde desteklenir. Yalnızca OpenXR kullanan projeler desteklenir. Eski XR işlem hattını veya Windows XR Eklentisini kullanan projeler desteklenmez .

Gözlemciye genel bakış

sorulduğunda, WindowsSceneUnderstandingObserver uygulamanın çevresini anlaması için yararlı özniteliklere sahip SpatialAwarenessSceneObject döndürür. Gözlem sıklığı, döndürülen nesne türü (ör. duvar, zemin) ve diğer gözlemci davranışları, gözlemcinin profil aracılığıyla yapılandırmasına bağlıdır. Örneğin, okluzyon maskesi isteniyorsa gözlemci dörtlü oluşturacak şekilde yapılandırılmalıdır. Gözlemlenen sahne, daha sonra düzenleyici yürütme modunda sahneyi yeniden oluşturmak için yüklenebilen serileştirilmiş dosya olarak kaydedilebilir.

Kurulum

Önemli

Scene Understanding yalnızca HoloLens 2 ve Unity 2019.4 ve üzeri sürümlerde desteklenir.

  1. Derleme ayarlarında platformun UWP olarak ayarlandığından emin olun.
  2. Karma Gerçeklik Özellik Aracı aracılığıyla Scene Understanding paketini edinin.

Sahne Anlama kullanma

Scene Understanding'i kullanmaya başlamanın en hızlı yolu örnek sahneyi gözden çıkarmaktır.

SahneYi Anlama örnek sahne

Unity'de Proje Gezgini'ni kullanarak sahne dosyasını Examples/Experimental/SceneUnderstanding/Scenes/SceneUnderstandingExample.unity açın ve yürüt'e basın!

Önemli

Yalnızca MRTK 2.6.0 için geçerlidir - Karma Gerçeklik Özellik Aracı kullanılırken veya BAŞKA bir şekilde UPM aracılığıyla içeri aktarılırken, bir bağımlılık sorunu nedeniyle Deneysel - SceneUnderstanding örneğini içeri aktarmadan önce lütfen Demos - SpatialAwareness örneğini içeri aktarın. Daha fazla bilgi için lütfen bu GitHub sorununa bakın.

Sahnede aşağıdakiler gösterilmektedir:

  • Gözlemlenen Sahne Nesnelerinin gözlemciyi yapılandırmak için uygulama kullanıcı arabiriminde ile görselleştirmesi
  • Gözlemci ayarlarını değiştirmeyi ve ilgili olayları dinlemeyi gösteren örnek DemoSceneUnderstandingController betik
  • Çevrimdışı geliştirme için sahne verilerini cihaza kaydetme
  • Düzenleyici içi geliştirme iş akışını desteklemek için önceden kaydedilmiş sahne verilerini (.bytes dosyaları) yükleme

Önemli

Varsayılan olarak ShouldLoadFromFile gözlemcinin özelliği false olarak ayarlanır. Seri hale getirilmiş örnek odanın görselleştirmesini görmek için lütfen aşağıdaki gözlemci hizmetini yapılandırma bölümüne bakın ve düzenleyicide özelliğini true olarak ayarlayın.

Not

Örnek sahne, Eski XR işlem hattını temel alır. XR SDK işlem hattını kullanıyorsanız profilleri uygun şekilde değiştirmeniz gerekir. Sağlanan Scene Understanding Uzamsal Farkındalık Sistemi profili (DemoSceneUnderstandingSystemProfile) ve Scene Understanding Gözlemci profilleri (DefaultSceneUnderstandingObserverProfile ve DemoSceneUnderstandingObserverProfile) her iki işlem hattı için de çalışır.

Not

Örnek sahne, başlatma/iş parçacığı yürütme sırası nedeniyle belirli koşullar altında bir There is no active AsyncCoroutineRunner when an action is posted. uyarı günlüğe kaydeder. Bileşenin AsyncCoroutineRunner "Demo Controller" GameObject'e eklendiğini onaylayabilirseniz ve bileşen/GameObject sahnede etkin/etkin kalır (varsayılan durum), uyarı güvenle yoksayılabilir. Ancak, Scene Understanding ile yeni bir sahne oluştururken lütfen kökte boş bir GameObject oluşturduğunuzdan ve betiği buna eklediğinizden AsyncCoroutineRunner emin olun, aksi takdirde Scene Understanding düzgün çalışmayabilir.

Gözlemci hizmetini yapılandırma

'MixedRealityToolkit' oyun nesnesini seçin ve denetçiyi denetleyin.

hiyerarşideki konumu anlama sahnesi

Denetçide MRTK konumu

Bu seçenekler, birinin öğesini yapılandırmasına WindowsSceneUnderstandingObserverizin verir.

Örnek betik

DemoSceneUnderstandingController.cs örnek betiği, Scene Understanding hizmetiyle çalışmayla ilgili temel kavramları gösterir.

  • Scene Understanding olaylarına abone olma
  • Sahne Anlama olaylarını işleme
  • Çalışma zamanında yapılandırma WindowsSceneUnderstandingObserver

Sahnedeki paneldeki geçişler, bu örnek betiğin genel işlevlerini çağırarak sahne gözlemcisini anlama davranışını değiştirir.

Prefabs Örneğini Oluştur'u açtığınızda, kendilerini üst nesnenin altında düzgün bir şekilde toplanmış olan tüm SpatialAwarenessSceneObject'e sığacak boyutta nesneler oluşturmayı gösterir.

demo denetleyicisi seçenekleri

Yerleşik uygulama notları

HoloLens'i standart şekilde derleyin ve dağıtın. Çalıştırıldıktan sonra, özelliklerle oynatılan bir dizi düğme görünmelidir.

Gözlemciye sorgu yaparken bazı çukurlar olduğuna dikkat edin. Bir getirme isteğinin yanlış yapılandırılması, olay yükünüzün beklenen verileri içermemesiyle sonuç verir. Örneğin, biri dörtlü istemezse, okluzyon maskesi dokuları mevcut olmaz. Bilgece olduğu gibi, gözlemci tire istemek üzere yapılandırılmamışsa hiçbir dünya ağı görünmez. Betik DemoSceneUnderstandingController bu bağımlılıklardan bazılarını üstlenir ancak tümünü ele almaz.

Kaydedilen sahne dosyalarına adresinden User Folders/LocalAppData/[APP_NAME]/LocalState/PREFIX_yyyyMMdd_hhmmss.bytescihaz portalı üzerinden erişilebilir. Bu sahne dosyaları, denetçide bulunan gözlemci profilinde belirtilerek düzenleyicide kullanılabilir.

Bayt dosyasının Cihaz Portalı konumu

Gözlemcide serileştirilmiş sahne baytları

Ayrıca Bkz.