Uzamsal eşleme

Özellik HoloLens (1. genel) HoloLens 2 Modern kulaklıklar
Uzamsal eşleme ✔️ ✔️

Uzamsal eşleme neden önemlidir?

Uzamsal eşleme, nesneleri gerçek yüzeylere yerleştirmeyi olanaklı kılar. Bu, kullanıcının dünyadaki nesnelerin bağlantısına yardımcı olur ve gerçek dünya derinliği ipuçlarının avantajlarından yararlanır. Diğer hologramlar ve gerçek dünya nesneleri temelinde holograklarınız, kullanıcıyı bu Hologramlar üzerinde gerçekten kendi alanında olduğunu ikna etmenize yardımcı olur. boşluk olarak veya kullanıcıyla hareket eden Hologramlar, gerçek olarak görünmez. Mümkün olduğunda, rahatlık için öğeleri yerleştirin.

Hologramlar yerleştirilirken veya taşırken yüzeyleri görselleştirin (tasarlanan bir kılavuz kullanın). Bu, kullanıcılara hologragramı en iyi şekilde nerede bulabileceklerini ve hologram yerleştirmeye çalıştıkları noktanın eşlenmediğini bilmesini sağlar. Bir açıdan çok fazla bitiyor olmaları durumunda, kullanıcıya "ilan maddeleri" ekleyebilirsiniz.

Kavramsal genel bakış

Odayı kapsayan kafes yüzeyleri
Bir odayı kapsayan bir uzamsal eşleme ağı örneği

Uzamsal eşleme için kullanılan iki birincil nesne türü ' uzamsal yüzey gözlemcisi ' ve ' uzamsal yüzey ' ' dir.

Uygulama, bir veya daha fazla sınırlayıcı birimi olan uzamsal yüzey gözlemci sağlar ve uygulamanın uzamsal eşleme verilerini almasını istediği alan bölgelerini tanımlar. Bu birimlerin her biri için, uzamsal eşleme uygulamaya bir uzamsal yüzey kümesi sağlar.

bu birimler sabit olabilir (gerçek dünyaya bağlı olarak sabit bir konumda) veya HoloLens iliştirilebilir (bu işlem, ortamda hareket ederken HoloLens taşır, ancak döndürülmez). Her uzamsal yüzey, dünya çapında kilitli bir uzamsal koordinat sistemineeklenen bir üçgen ağ olarak temsil edilen küçük bir alan hacimdeki gerçek dünyada yüzeyleri açıklar.

HoloLens, ortamla ilgili yeni verileri toplar ve ortamdaki değişiklikler gerçekleştiğinde, uzamsal yüzeyler görünür, kaybolur ve değişir.

Uzamsal tanıma tasarım kavramları tanıtımı

uzamsal tanıma tasarım kavramlarını eylem bölümünde görmek isterseniz, aşağıdaki Hologramlar uzamsal tanıma video tanıtımına göz atın. İşiniz bittiğinde, belirli konularda daha ayrıntılı bilgi edinmek için devam edin.

bu video, "tasarlama Hologramlar" HoloLens 2 uygulamasından alınmıştır. Tam deneyimi buradanindirin ve keyfini çıkarın.

Uzamsal eşleme ve sahnenin dünya ağı anlama

HoloLens 2 için, sahneye göre uzamsal eşleme verilerinin statik sürümünü, sahne anlama SDK 'sını (enableworldkafes ayarı) kullanarak sorgulayabilirsiniz. Uzamsal eşleme verilerine erişmenin iki yolu arasındaki farklılıklar aşağıda verilmiştir:

  • Uzamsal eşleme API 'SI:
    • Sınırlı Aralık: sınırlı bir boyuttaki uygulamalar için kullanılabilen uzamsal eşleme verileri Kullanıcı etrafında önbelleğe alınmış ' kabarcık '.
    • SurfacesChanged olayları aracılığıyla değiştirilen ağ bölgelerinin düşük gecikme süresine sahip güncelleştirmeleri sağlar.
    • Üçüncü dereceden ölçüm parametresi başına üçgenlere göre denetlenen ayrıntıların değişken düzeyi.
  • Sahne anlamak SDK:
    • Sınırsız Aralık-sorgu yarıçapı içindeki tüm taranmış uzamsal eşleme verilerini sağlar.
    • Uzamsal eşleme verilerinin statik bir anlık görüntüsünü sağlar. Güncelleştirilmiş uzamsal eşleme verilerinin alınması için tüm ağ için yeni bir sorgu çalıştırılması gerekir.
    • RequestedMeshLevelOfDetail ayarı tarafından denetlenen tutarlı ayrıntı düzeyi.

Uzamsal eşleme kalitesini ne etkiler?

Buradaayrıntılı olarak açıklanan birkaç etken, bu hataların sıklığını ve önem derecesini etkileyebilir. Ancak, uygulamanızın uzamsal eşleme verilerinde hata olması durumunda bile hedeflerine ulaşabilmesi için uygulamanızı tasarlamanız gerekir.

Genel kullanım senaryoları

Ortak uzamsal eşleme kullanım senaryolarının çizimleri: yerleştirme, Occlusiyon, fizik ve gezinti

Yerleştirme

Uzamsal eşleme, kullanıcılara doğal ve tanıdık etkileşim biçimlerini sunma olanağı sunan uygulamalar sağlar; Telefonunuzu masanıza yerleştirmekten daha doğal bir durum olabilir mi?

Hologramlar (ya da daha fazla genel olarak, uzamsal konumların herhangi bir seçimi), yüzeyler üzerinde yer açmak için, 3B 'den (boşluk olarak) 2B (yüzeye işaret) bir doğal eşleme sağlar. Bu, kullanıcının uygulamaya sağlaması gereken bilgi miktarını azaltır ve kullanıcının etkileşimlerini daha hızlı, daha kolay ve daha hassas hale getirir. ' Uzaklık uzakta ', diğer kişilerle veya bilgisayarlara fiziksel olarak iletişim kurmak için kullandığımız bir şey olmadığından, bu durum geçerlidir. Parmağınızla işaret ettiğimiz zaman bir yön belirttik ancak bir mesafe değil.

Önemli bir desteklenmediği uyarısıyla, bir uygulamanın yönden uzaklığı aşması durumunda (örneğin, kullanıcının en yakın uzamsal yüzeyini bulmak için kullanıcının Gaze yönü boyunca bir raycast yaparak), bu, kullanıcının güvenilir bir şekilde tahmin edebildiğinin sonucunu vermelidir. Aksi takdirde, Kullanıcı denetim açısından anlamlı hale gelir ve bu, hızla sinir bozucu hale gelebilir. Buna yardımcı olan bir yöntem, yalnızca bir tane yerine birden çok raya değil. Toplam sonuçlar daha yumuşak ve daha öngörülebilir olmalıdır, geçici ' aykırı durum ' sonuçlarından (örneğin, küçük bir veya kullanıcının farkında olmadığı küçük bir geometriye ulaşmasından kaynaklanan ışınlardan kaynaklanabilir). Toplama veya yumuşatma, zaman içinde de gerçekleştirilebilir; Örneğin, bir hologram kullanıcıdan uzaklığın üzerinde değişebileceği maksimum hızı sınırlayabilirsiniz. Yalnızca minimum ve maksimum uzaklık değerlerini kısıtlamak da yardımcı olabilir. bu nedenle, taşınan hologram büyük bir yere doğru bir şekilde geri dönmez veya kullanıcının yüzyüzüne geri dönmeyecektir.

Uygulamalar, hologram yerleşimini rehberlik etmek için yüzeyler şeklini ve yönünü de kullanabilir. Bir holographic koltuğu, duvarlarla penmemelidir ve biraz düzensiz olsa bile zemin ile yaslanıp yer almalıdır. Bu tür işlevler büyük olasılıkla raya yerine fizik çakışmalarının kullanılmasına bağlıdır, ancak benzer sorunlar uygulanır. Yerleştirmekte olan hologram, bir sandalyede gibi çok sayıda küçük Çokgen içeriyorsa, bu poligonların fizik gösterimini daha geniş ve daha yumuşak bir şekilde genişleterek, daha fazla değişiklik yapmadan uzamsal yüzeyler üzerinde ilerleyebilir.

En azından, Kullanıcı girişi tamamen basitleştirilebilir ve uzamsal yüzeyler tamamen otomatik hologram yerleşimi yapmak için kullanılabilir. Örneğin, uygulama kullanıcının basması için duvarda bir holographic ışık anahtarı yerleştirebilir. Tahmine dayalı hakkında aynı desteklenmediği uyarısıyla, burada da geçerlidir; Kullanıcı, hologram yerleşimi üzerinde denetimi beklediğinde, ancak uygulama her zaman bekledikleri yerde hologramlar yerleştirmezse (ışık anahtarı kullanıcının ulaşabileceği bir yerde görünürse), bu, sinir bozucu bir deneyim olacaktır. Aslında yalnızca kullanıcının her zaman yerleştirmesini gerektirdiğinden, Kullanıcı düzeltmesini gerektiren otomatik yerleştirme yapmak daha kötüleşmelidir; başarılı otomatik yerleştirme beklendiğinden, el ile düzeltme bir yük gibi fese!

Ayrıca, uygulamanın yerleştirme için uzamsal yüzeyleri kullanma yeteneğinin büyük ölçüde uygulamanın tarama deneyiminebağlı olduğunu unutmayın. Bir yüzey taranmamışsa, yerleştirme için kullanılamaz. Bu, kullanıcının yeni yüzeyleri taraymasına veya yeni bir konum seçmenize yardımcı olması için bu uygulamayı kullanıcıya açık hale getirir.

Kullanıcının görsel geri bildirimi yerleştirme sırasında önemli öneme sahiptir. Kullanıcının, hologram tarafından, grounding efektleriyleen yakın yüzeyi temel aldığı yeri bilmeleri gerekir. Bu kişiler, kendi hologram hareketinin neden kısıtlandığı (örneğin, başka bir yakındaki yüzeyle çakışmalar nedeniyle) neden olduğunu anlamalıdır. Geçerli konuma bir hologram yerleştiriyorlarsa, görsel geri bildirimin neden olmadığını temizlemelidir. Örneğin, Kullanıcı duvardaki bir holographic Kolonu bir yarı kadar oturmasına çalışıyorsa, duvar arkasındaki çok kızın kısımları, bir veya daha fazla renkte yanıp çıkmalıdır. Ya da buna karşılık, uygulama kullanıcının gerçek hayatta bir yüzey görebileceği bir konumda uzamsal yüzey bulamazsa, uygulamanın bu açık olması gerekir. Bu alanda bir ayırma efektinin belirgin bir şekilde yokluğu bu amaçla elde edebilir.

Kapatma

Uzamsal eşleme yüzeylerinin birincil kullanımlerinden biri yalnızca occlude hologram. Bu basit davranışın, Kullanıcı ile aynı fiziksel alanı gerçekten geçersiz hale getiren bir Visceral Sense oluşturmaya yardımcı olan hologram sayısının algılanan Reali üzerinde büyük bir etkisi vardır.

Occlusiyon kullanıcıya bilgi de sağlar; bir hologram gerçek dünya yüzeyi tarafından occkiyle karşılaşıldığında, bu, dünyanın her yerindeki bu hologram için uzamsal konuma ek görsel geri bildirim sağlar. Buna karşılık, occlusiyon Ayrıca Kullanıcı bilgilerini kullanıcının tamamen gizleyebilirler ; duvarların arkasındaki bir occluding hologragram, Görsel dağınıklığı sezgisel bir şekilde azaltabilir. Bir hologram gizlemek veya ortaya çıkarmak için, kullanıcının yalnızca başını taşıması gerekir.

Occlusiyon, bilindik fiziksel etkileşimleri temel alan doğal Kullanıcı arabirimine yönelik beklentileri sağlamak için de kullanılabilir; bir hologram bir yüzey tarafından occbulunursa, bu yüzey düz olduğundan, kullanıcının hologram bu yüzey ile çakışarak ve bu yüzeyi geçemeyeceğini beklemesi gerekir.

Bazen hologramlar, bazı durumlarda istenmeyen bir değer değildir. Bir kullanıcının bir hologram ile etkileşime ihtiyacı varsa, gerçek dünya yüzeyi arkasında olsa bile, bunları görmeleri gerekir. Bu gibi durumlarda, genellikle bu tür bir hologram, (örneğin, parlaklığını azaltarak) bir hologram farklı şekilde işlenmesinin mantıklı olmasını sağlar. Bu şekilde, Kullanıcı hologram görsel olarak bulabilir, ancak yine de bir şeyin gerisinde olduğunu bilecektir.

Fizik

Fizik simülasyonu kullanımı, uzamsal eşlemenin kullanıcının fiziksel alanındaki hologramlar varlığını zorlamak için kullanılabilecek başka bir yoldur. Holographic lastik topum Masa dışı bırakıldığında, zemin genelinde zıplamalar ve çok kolum altında kaybolurken, bu durumun bu olmadığını düşünmem zor olabilir.

Fizik simülasyonu Ayrıca bir uygulamanın doğal ve tanıdık fizik tabanlı etkileşimleri kullanmasına yönelik fırsat sağlar. Holographic Mobilyadaki bir parçanın bir parçasını, uygun eylemsizlik ve uçuşle doğru bir şekilde hareket ettirmiş gibi yanıtladığı durumlarda Kullanıcı için büyük olasılıkla daha kolay hale gelir.

Gerçekçi fiziksel davranışlar oluşturmak için, delikleri doldurma, kayan çıkarmalar kaldırma ve kaba yüzeyleri düzgünleştirme gibi bazı kafes işlemleri yapmanız gerekir.

Ayrıca, uygulamanızın tarama deneyiminin fizik benzetimini nasıl etkilediğini de göz önünde bulundurmanız gerekir. İlk olarak, eksik yüzeyler hiçbir şeyle çakışmaz; Lastik topu, eş adı ve bilinen dünyanın sonuna kadar olduğunda ne olur? İkinci olarak, zaman içinde ortamdaki değişikliklere yanıt vermeye devam edilip edilmeyeceğini belirlemeniz gerekir. Bazı durumlarda, mümkün olduğunca hızlı yanıt vermek isteyeceksiniz; kullanıcının, gelen Latin bir ABD dolarına karşı savunma kapsamında kapalıkları ve mobilyaları kullanıp kullanmadığınızı varsayalım. Diğer durumlarda, yeni güncelleştirmeleri yok saymak isteyebilirsiniz; holographic spor arabasını, katlarınızın dünyanın ortasında oturma karar verdiği durumlarda daha çok eğlenceli bir şekilde hareket etmeyebilirsiniz.

Uygulamalar, gerçek dünyayı gerçek bir kişiyle aynı şekilde gezinebilme olanağı sağlamak için uzamsal eşleme verilerini kullanabilir holographic. Bu, Kullanıcı ve arkadaşlarınızla aynı doğal, tanıdık davranışlar kümesiyle kısıtlayarak holographic karakterlerinin varlığını zorlamaya yardımcı olabilir.

Gezinti özellikleri de kullanıcılar için yararlı olabilir. Bir gezinti eşlemesi belirli bir alana derlendikten sonra, bu konuma alışkın olan yeni kullanıcılar için holographic yönleri sağlamak üzere paylaşılabilir. Bu harita, yaya ' trafik ' akışının sorunsuz bir şekilde akmasını sağlamak ya da yapı siteleri gibi tehlikeli konumlarda kazalardan dolayı kaçınmak için tasarlanabilir.

Gezinti işlevlerini uygulamayla ilgili temel teknik sorunlar, eklenebilir yüzeyler (insanların tabloları üzerinde yürüme) için güvenilir bir şekilde algılanacaktır. ve ortamdaki değişikliklere düzgün şekilde uyarlama (insanlar kapalı kapılara yol göstermeyin!). Ağ, bir sanal karaktere göre yol planlama ve gezinme için kullanılabilir olmadan önce bazı işlemler gerektirebilir. Kafesi yumuşatmaya ve kilitlenmelerin kaldırılmasına, karakterlerin takılmasını önlemeye yardımcı olabilir. Ayrıca, karakterin yol planlama ve gezinti hesaplamalarını hızlandırmak için kafesi büyük ölçüde basitleştirmek isteyebilirsiniz. Bu zorluk, video oyun teknolojisinin geliştirilmesi hakkında harika bir ilgi almış ve bu konularda çok sayıda araştırma belgesi sunulmaktadır.

Unity 'deki yerleşik gezinti kafesi işlevselliği, uzamsal eşleme yüzeyleri ile kullanılamaz. Bunun nedeni, uzamsal eşleme yüzeylerinin uygulama başlatılana kadar bilinmediği, ancak daha önce kaynak varlıklarından veri dosyalarının oluşturulması gerekir. Ayrıca, uzamsal eşleme sisteminin kullanıcının geçerli konumundan uzakta bulunan yüzeyler hakkında bilgi sağlamayacağını unutmayın. Bu nedenle, büyük bir alanın haritasını oluşturmak için uygulamanın kendisini anımsamasını gerekir.

Görselleştirme

Çoğu zaman, uzamsal yüzeyler için uygun görünmezdir; Görsel dağınıklığı en aza indirmek ve gerçek dünyaya kendi kendine konuşmasını sağlamak için. Ancak, bazen uzamsal eşleme yüzeylerini, gerçek dünya karşılıklarına görünür olmasına rağmen doğrudan görselleştirmeniz yararlı olabilir.

Örneğin, Kullanıcı bir yüzeye bir hologram yerleştirmeyi denerken (bir holographic dolabı duvara yerleştirirken), bir gölgeyi yüzey üzerine aktararak bu hologram ' zemin ' için yararlı olabilir. Bu, kullanıcıya, hologram ve yüzey arasında tam fiziksel yakınlık konusunda çok daha net bir fikir verir. Bu Ayrıca, Kullanıcı tarafından işlemeden önce bir değişikliği görsel olarak ' Önizlemekte ' olan daha genel uygulamaya bir örnektir.

Yüzey görselleştirerek, uygulama kullanıcının ortamını anlamasına yönelik olarak paylaşabilir. Örneğin, bir holographic Board oyunu, ' tablolar ' olarak belirlenen yatay yüzeyleri görselleştirerek Kullanıcı etkileşime geçmek için nereye gideceğini bilir.

Yüzeyleri görselleştirmede, Kullanıcı yakınında görüntülenen boşlukları görüntülemek için kullanışlı bir yol olabilir. Bu, kullanıcıya, oturma odalarından mutlarına (ve içerdiği hologramlar) erişim izni vermek için bir yol sağlayabilir.

Uzamsal eşleme tarafından sunulan Surface kafesler, özellikle ' Clean ' olmayabilir. Bunları uygun şekilde görselleştirmeniz önemlidir. Geleneksel aydınlatma hesaplamaları, yüzeylerdeki hataları görsel açıdan dikkat çekici bir şekilde vurgulayabilir, bu da yüzey üzerinde tasarlanan ' Temizle ' dokuları tidier görünümü sağlamaya yardımcı olabilir. Ayrıca, yüzeyler işlenmeden önce ağ özelliklerini geliştirmek için kafes işleme yapılabilir.

Not

HoloLens 2; yerleştirme, occlusiyon, fizik ve gezinme uygulamasının uygulanmasını basitleştirmek için tasarlanan yapılandırılmış, üst düzey bir ortam temsili olan karma gerçeklik geliştiricileri sağlayan yeni bir sahne, çalışma zamanını anlamauygular.

Surface gözlemci kullanma

Uzamsal eşleme için başlangıç noktası Surface gözlemcidir. Program akışı aşağıdaki gibidir:

  • Surface gözlemci nesnesi oluşturma
    • Bir veya daha fazla uzamsal birim sağlayın; bu, uygulamanın uzamsal eşleme verilerini almak için gereken ilgi bölgelerini tanımlar. Uzamsal birim, Sphere veya Box gibi bir alan bölgesi tanımlayan bir şekildir.
    • Fiziksel dünyanın sabit bir bölgesini belirlemek için dünya çapında kilitlenmiş bir uzamsal koordinat sistemi ile uzamsal bir birim kullanın.
    • Bir uzamsal birim kullanarak, Kullanıcı ile taşınan (ancak döndürmeden) bir alan bölgesi tanımlamak için her bir çerçeveyi gövde kilitli bir uzamsal koordinat sistemiyle güncelleştirdik.
    • Bu uzamsal birimler, uygulamanın durumu veya Kullanıcı değiştikçe, daha sonra herhangi bir zamanda değiştirilebilir.
  • Uzamsal yüzeyler hakkında bilgi almak için yoklama veya bildirim kullanın
    • Herhangi bir zamanda uzamsal yüzey durumu için Surface gözlemci ' i yoklayabiliriz. Bunun yerine, uzamsal yüzeyler değiştiğinde uygulamaya bildirim alacak olan Surface gözlemcinin "yüzey değişti" olayına kaydolabilirsiniz.
    • , Frustum veya bir gövde kilitli birimi gibi dinamik bir uzamsal birim için, uygulamaların, ilgilendiğiniz bölgeyi ayarlayıp sonra geçerli uzamsal yüzey kümesini elde ederek her karede değişiklik yapması gerekir.
    • Tek bir odayı kapsayan Dünya kilitli bir küp gibi bir statik birimde, uygulamalar, söz konusu birimin içindeki uzamsal yüzeyler değiştirildiğinde bildirim almak için ' yüzey değişti ' olayına kaydolmayabilir.
  • İşlem yüzeylerinin değişiklikleri
    • Belirtilen uzamsal yüzey kümesini yineleyin.
    • Uzamsal yüzeyleri eklenmiş, değiştirilmiş veya kaldırılmış olarak sınıflandırın.
    • Her eklenen veya değiştirilen uzamsal yüzey için, uygun ayrıntı düzeyinde Surface 'ın geçerli durumunu temsil eden güncelleştirilmiş bir ağı almak üzere zaman uyumsuz bir istek gönder.
  • Zaman uyumsuz kafes isteğini işleyin (aşağıdaki bölümlerde daha fazla bilgi).

ağ Önbelleğe Alma

Uzamsal yüzeyler yoğun üçgen kafesler tarafından temsil edilir. Bu kafeslerin depolanması, işlenmesi ve işlenmesi önemli hesaplama ve depolama kaynakları tüketebilir. Bu nedenle, her uygulama, kafes işleme ve depolama için kullanılan kaynakları en aza indirmek için, ihtiyaçlarına uygun bir ağ önbelleği düzeni benimsemelidir. Bu düzen, hangi kafeslerin tutulacağını ve hangilerinin atılıp hangilerinin her bir uzamsal yüzey için ne zaman güncelleyeceğini belirlemelidir.

Burada ele alınan önemli noktalar, uygulamanızın ağ önbelleklemesini nasıl yaklaşımıyla doğrudan bilgilendirecektir. Kullanıcının ortamda nasıl taşındığını, farklı yüzeyleri gözlemlendirilene zaman ve ortamdaki değişikliklerin yakalanması gerektiğini göz önünde bulundurmanız gerekir.

Surface gözlemci tarafından sunulan ' yüzey değiştirildi ' olayı yorumlanırken, temel kafes önbelleğe alma mantığı aşağıdaki gibidir:

  • Uygulama daha önce görülmemiş bir uzamsal yüzey kimliği gördük, bunu yeni bir uzamsal yüzey olarak kabul etmelidir.
  • Uygulama bilinen bir KIMLIĞE sahip ancak yeni bir güncelleştirme süresine sahip bir uzamsal yüzey görürse, bunu güncelleştirilmiş bir uzamsal yüzey olarak kabul etmelidir.
  • Uygulama artık bilinen KIMLIĞI olan bir uzamsal yüzey görmediğinde, bunu kaldırılan bir uzamsal yüzey olarak kabul etmelidir.

Bu, her bir uygulamaya kadar, ardından aşağıdaki seçimleri yapar:

  • Yeni uzamsal yüzeyler için kafes istenmelidir mi?
    • Genellikle ağ, yeni uzamsal yüzeyler için hemen istenmelidir. Bu, kullanıcıya faydalı yeni bilgiler sağlayabilir.
    • Ancak, kullanıcının önünde ve önünde bulunan yeni uzamsal yüzeyler öncelikli olarak verilmelidir ve ilk olarak bunların ağı istenir.
    • Yeni kafes gerekmiyorsa, örneğin uygulamanın bu modelin modeli için kalıcı veya geçici olarak ' dondurulmuş ' olması gerekiyorsa, istenmemelidir.
  • Güncelleştirilmiş uzamsal yüzeyler için kafes istenmelidir mi?
    • Kullanıcının önünde ve önünde olan güncelleştirilmiş uzamsal yüzeyler öncelikli olarak verilmelidir ve ilk olarak bunların ağı istenir.
    • Ayrıca, özellikle tarama deneyimi sırasında, güncelleştirilmiş yüzeylere kıyasla yeni yüzeylere daha yüksek öncelik vermek uygun olabilir.
    • İşlem maliyetlerini sınırlamak için uygulamalar, uzamsal yüzeylerde güncelleştirmeleri işleme hızını azaltmak isteyebilir.
    • Uzamsal bir yüzey üzerinde yapılan değişikliklerin küçük olduğunu, örneğin yüzey sınırları küçükse, güncelleştirmenin işlemeye yetecek kadar önemli olmaması durumunda olabilir.
    • Kullanıcının ilgilendiğiniz geçerli bölge dışındaki uzamsal yüzeyler için güncelleştirmeler tamamen yoksayılabilir, ancak bu durumda Surface gözlemci tarafından kullanılan uzamsal sınırlayıcı birimleri değiştirmek daha verimli olabilir.
  • Kaldırılan uzamsal yüzeyler için ağ atılmalıdır mi?
    • Genellikle kaldırılan uzamsal yüzeyler için genellikle ağ atılmalıdır, böylelikle hologram occlusıbu, doğru kalmaya devam eder.
    • Bununla birlikte, uygulamanın bir uzamsal yüzeyi kısa bir süre sonra yeniden (kullanıcı deneyiminin tasarımına bağlı olarak) yeniden görünür hale uğradığını düşünmesinin nedeni varsa, bu durumda, ağı atmak ve daha sonra yeniden oluşturmak için daha verimli olabilir.
    • Uygulama, kullanıcının ortamının büyük ölçekli bir modelini oluşturuyorsanız, tüm kafesleri atmak istemiyor olabilir. Büyük olasılıkla uzamsal yüzeyler kaybolduğu için kafesleri diske biriktirerek kaynak kullanımını sınırlandırmaya devam eder.
    • Uzamsal yüzey oluşturma sırasında bazı görece nadir olaylar, uzamsal yüzeylerin benzer bir konumda ancak farklı kimliklere sahip yeni uzamsal yüzeylerle değiştirilmesine neden olabilir. Bu nedenle, kaldırılan bir yüzeyi atmayı tercih eden uygulamalar, aynı konumu kapsayan çok yüksek oranda çakışan uzamsal yüzey kafesleri ile bitmemelidir.
  • Diğer uzamsal yüzeyler için ağ atılmalıdır mi?
    • Uzamsal bir yüzey mevcut olsa da, artık kullanıcının deneyimine yönelik bir faydalı değilse atılmalıdır. Örneğin, uygulama, diğer bir Doorway diğer tarafındaki odaya diğer bir sanal alanla ' nin yerini alıyorsa, o odada bulunan uzamsal yüzeyler bundan böyle değildir.

Aşağıda, uzamsal ve zamana bağlı hysteresare kullanarak bir kafes önbelleğe alma stratejisi verilmiştir:

  • Göz önünde bulundurdukları ve ilerleyerek kullanıcının Gaze 'ı takip eden Frustum-şekillendirilmiş bir uzamsal birim kullanması için bir uygulama düşünün.
  • Bir uzamsal yüzey bu birimden geçici olarak kesilebilir, çünkü Kullanıcı yüzeyden veya diğer adımlardan daha fazla uzakta görünüyor... yalnızca daha sonra geri dönüp bir kez daha yaklaştırır. Bu durumda, bu yüzey için ağı atma ve yeniden oluşturma çok sayıda yedekli işleme temsil eder.
  • İşlenen değişiklik sayısını azaltmak için, diğeri diğeri içinde bulunan iki uzamsal yüzey OBI sunucusu kullanır. Daha büyük birim küresel ve ' geç ' kullanıcısını izler; yalnızca merkezinin kullanıcının 2,0 metreden fazla olduğundan emin olmak için gerekli olduğunda gider.
  • Yeni ve güncelleştirilmiş uzamsal yüzey kafesleri her zaman daha küçük iç yüzey gözlemcisinden işlenir, ancak kafesler daha büyük dış yüzey gözlemci tarafından kaybolana kadar önbelleğe alınır. Bu, yerel kullanıcı hareketi nedeniyle uygulamanın çok sayıda gereksiz değişikliği işlemesini önlemeyi sağlar.
  • İzleme kaybı nedeniyle bir uzamsal yüzey geçici olarak kaybolabileceğinden, uygulama izleme kaybı sırasında kaldırılan uzamsal yüzeyleri de erteler.
  • Genel olarak, bir uygulama, ideal güncelleştirme işleme ve artan bellek kullanımı arasındaki en iyi önbelleğe alma stratejisini belirlemede zorunluluğunu getirir değerlendirmelidir.

İşleme

Uzamsal eşleme kafeslerin işleme için kullanılma eğilimi gösteren üç ana yol vardır:

  • Surface görselleştirme için
    • Uzamsal yüzeyleri doğrudan görselleştirmeniz genellikle yararlı olur. Örneğin, 'gölgeleri' nesnelerden uzamsal yüzeylere dönüştürme, kullanıcıya hologramları yüzeylere yerleştirirken yararlı görsel geri bildirimler sağlar.
    • Uzamsal meshes'in 3 boyutlu bir ressamın oluştur olabileceği meshes türlerinden farklı olduğunu unutmayın. Üçgen topolojisi insan tarafından oluşturulan topoloji kadar 'temiz' olmayacaktır ve örgü çeşitli hatalardan zarar alır.
    • Güzel bir görsel estetik oluşturmak için, delikler veya düz yüzey normalleri doldurma gibi bazı örgü işleme işlemleri yapmak iyi olabilir. Ayrıca, doğrudan örgü topolojisini ve normalleri görselleştirmek yerine, ressam tarafından tasarlanmış dokuları ağınıza yansıtan bir gölgelendirici kullanmak da iyi olabilir.
  • Gerçek dünya yüzeyleri arkasındaki hologramları occluding için
    • Uzamsal yüzeyler yalnızca derinlik arabelleğini etkileyen ve renk işleme hedeflerini etkilemeden yalnızca derinlik geçişiyle işlenecektir.
    • Bu, uzamsal yüzeylerin arkasında daha sonra işlenmiş hologramları yok etmek için derinlik arabelleği sağlar. Hologramların doğru bir şekilde kapanması, hologramların kullanıcının fiziksel alanı içinde gerçekten var olduğu hislerini geliştirmektedir.
    • Yalnızca derinlik işlemeyi etkinleştirmek için blend durumunu güncelleştirin ve tüm renk işleme hedefleri için RenderTargetWriteMask'ı sıfır olarak ayarlayın.
  • Gerçek dünya yüzeyleri tarafından gizli hologramların görünümünü değiştirmek için
    • Normalde işlenmiş geometri gizlenir. Bu, derinlik kalıp durumuna sahip derinlik işlevinin "küçük veya eşit" olarak ayarlandırarak elde edilir ve bu da geometrinin yalnızca önceden işlenmiş tüm geometrilere göre kameraya daha yakın olduğu yerde görünür hale gelir.
    • Ancak, gizli olsa bile belirli geometriyi görünür durumda tutmak ve kullanıcıya görsel geri bildirim sağlamanın bir yolu olarak gizliyken görünümünü değiştirmek yararlı olabilir. Örneğin bu, uygulamanın gerçek dünya yüzeyinin arkasında olduğunu net bir şekilde ifade ederken kullanıcıya nesnenin konumunu göstermelerini sağlar.
    • Bunu başarmak için geometriyi istenen 'occluded' görünümünü oluşturan farklı bir gölgelendirici ile ikinci kez işin. Geometriyi ikinci kez işlemeden önce derinlik şablonu durumunuz üzerinde iki değişiklik yapın. İlk olarak derinlik işlevini "büyüktür veya eşittir" olarak ayarlayın; böylece geometri yalnızca kameradan daha önce işlenmiş olan tüm geometrilerden daha uzak bir yerde görünür olur. İkincisi, derinlik arabelleğinin değiştirilmemek için DepthWriteMask'ı sıfır olarak ayarlayın (derinlik arabelleği kameraya en yakın geometrinin derinliğini temsil etmeye devam edecektir).

Uzamsal eşleme meshes işleme sırasında performans önemli bir konudur. Uzamsal eşleme meshes işlemeye özgü bazı işleme performans teknikleri şu şekildedir:

  • Üçgen yoğunluğunu ayarlama
    • Yüzey gözlemcinizin uzamsal yüzey meshes isteğinde bulundurarak, en düşük üçgen meshes yoğunluğunu ve bu da sizin için yeterli olacaktır.
    • Yüzeyin kullanıcıdan uzaklığına ve kullanıcı deneyimine olan ilgisine bağlı olarak bir yüzeyde üçgen yoğunluğunu yüzey bazında farklılık gösterebilir.
    • Üçgen sayıların azaltılması GPU'da bellek kullanımı ve köşe işleme maliyetlerini azaltır, ancak piksel işleme maliyetlerini etkilemez.
  • Frustum culling kullanma
    • Frustum culling, geçerli görüntüleme frustum'unu dışında olduğundan görülenin çizim nesnelerini atlar. Bu, hem CPU hem de GPU işleme maliyetlerini azaltır.
    • Her bir uzamsal yüzey büyük olabilir ve her uzamsal yüzey ağının daha küçük öbeklere ayrılarak daha verimli bir şekilde sonuçlandırıla (daha az ekran dışı üçgen işlenir) her bir örgü temelinde analiz gerçekleştirilir. Ancak bir takas vardır; Ne kadar çok tireye sahip olur ve ne kadar çok çekme çağrısı yapmalı ve bu da CPU maliyetlerini artırabilir. Aşırı bir durumda frustum verisi hesaplamalarının ölçülebilir CPU maliyeti bile olabilir.
  • İşleme sıralamasını ayarlama
    • Uzamsal yüzeyler, kullanıcının çevresindeki tüm ortamı temsil edecek şekilde büyük olabilir. GPU'daki piksel işleme maliyetleri, özellikle de birden fazla görünür geometri katmanının (hem uzamsal yüzeyler hem de diğer hologramlar dahil) olduğu durumlarda yüksek olabilir. Bu durumda, kullanıcıya en yakın katman herhangi bir katmanı daha uzak bir yere yer kaplamaz, dolayısıyla bu uzak katmanları işlemeye harcanan GPU süresi boşa gider.
    • GPU'da bu yedekli işi azaltmak için, opak yüzeyleri önden geriye doğru sırayla işlemeye yardımcı olur (önce daha yakın olanlar, en son daha uzak olanlar). 'Opak' olarak ifade etmek, DepthWriteMask'ın derinlik-kalıp durumuna ayarlanmış yüzeyleri ifade eder. En yakın yüzeyler işlenirken, GPU'da piksel işlemcisi tarafından daha uzak yüzeylerin verimli bir şekilde atlanmasını sağlamak için derinlik arabelleği asaltır.

Mesh İşleme

Bir uygulama, ihtiyaçlarına uygun olarak uzamsal yüzey meshes üzerinde çeşitli işlemler yapmak istiyor olabilir. Her uzamsal yüzey ağıyla birlikte sağlanan dizin ve köşe verileri, tüm modern işleme API'leri içinde üçgen meshes'leri işlemede kullanılan köşe ve dizin arabellekleriyle aynı tanıdık düzeni kullanır. Ancak, uzamsal eşleme üçgenlerinin ön saat yönünde rüzgarlı düzenine sahip olduğunu fark etmek önemli bir gerçektir. Her üçgen, meshin dizin arabelleğinde üç köşe diziniyle temsil edilen bu dizinler, üçgenin köşelerini saat yönünde bir düzende, üçgenin ön tarafından görüntüde olduğunu belirleyecek. Uzamsal yüzey meshes'in ön tarafı (veya dışında), gerçek dünya yüzeylerinin ön (görünür) tarafına karşılık gelir.

Uygulamalar yalnızca yüzey gözlemcisi tarafından sağlanan en kaba üçgen yoğunluğu hala yetersiz kaba ise, bu iş işlem olarak pahalıdır ve sağlanan çeşitli ayrıntı düzeylerini oluşturmak için çalışma zamanı tarafından zaten gerçekleştirilir.

Her yüzey gözlemcisi birbirine bağlı olmayan birden çok uzamsal yüzey sağlayaa olduğundan, bazı uygulamalar bu uzamsal yüzey ağlarını birbirine kırpmak ve ardından bunları birlikte sıkıştırmak ister. Genel olarak, yakınlardaki uzamsal yüzey tireleri genellikle biraz çakıştıkları için kırpma adımı gereklidir.

Yayın ve Çakışma

Bir fizik API'sini (Havokgibi) bir uygulamaya uzamsal yüzeyler için raycasting ve çakışma işlevselliği sağlamak için uygulamanın fizik API'sine uzamsal yüzey meshes sağlaması gerekir. Fizik için kullanılan tireler genellikle aşağıdaki özelliklere sahiptir:

  • Bunlar yalnızca az sayıda üçgen içerir. Fizik operasyonları, işleme operasyonlarına göre daha yoğun işlem gücü içerir.
  • Bunlar 'suyla sıkıdır'. Düz olması amaçlanan yüzeylerde küçük delikler olmaması gerekir; görünür olmayacak kadar küçük delikler bile sorunlara neden olabilir.
  • Bunlar, dış dış dış kabuklara dönüştürülür. Konvoks dışgenler az sayıda poligona sahiptir ve deliksizdir ve ham üçgen meshes'lere göre işlem açısından çok daha verimlidir.

Uzamsal yüzeylere karşı yayın yaparken, bu yüzeylerin genellikle karmaşık ve dağınık şekiller olduğunu ve masanızda olduğu gibi karmaşık küçük ayrıntılarla dolu olduğunu unutmayın! Bu, tek bir yayın genellikle yüzeyin şekli ve ona yakın boş alan şekli hakkında yeterli bilgi vermek için yetersiz olduğu anlamına gelir. Genellikle küçük bir alanda birçok yayın yapmak ve yüzey hakkında daha güvenilir bir anlayış elde etmek için toplama sonuçlarını kullanmak iyi bir fikirdir. Örneğin, bir yüzeyde hologram yerleşimine yol vermek için ortalama 10 yayın kullanmak, yalnızca tek bir yayın kullanarak çok daha düz ve daha az 'titreşim' sonucu sağlar.

Ancak her yayın için yüksek hesaplama maliyetine sahip olduğunu unutmayın. Kullanım senaryonıza bağlı olarak, uzamsal yüzeylerde (uzamsal meshes güncelleştirildiğinde yapılır) delikleri düzleştirmek ve kaldırmak için ek raycast'ların (her karenin yapılması) işlem maliyetini mesh işlemenin hesaplama maliyetine karşı korumanız gerekir.

Ortam tarama deneyimi

Uzamsal eşleme kullanan her uygulama bir 'tarama deneyimi' sağlamayı göz önünde bulundurarak; uygulamanın doğru çalışması için gerekli yüzeyleri taramak için kullanıcıya yol gösteren işlem.

Tarama örneği
Tarama örneği

Bu tarama deneyiminin doğası, her uygulamanın ihtiyaçlarına bağlı olarak büyük ölçüde farklılık gösterebilir, ancak tasarımına yol gösteren iki temel ilke vardır.

İlk olarak, birincil sorun kullanıcıyla net iletişimdir. Kullanıcı, uygulama gereksinimlerinin karşı olup olmadığını her zaman biliyor olması gerekir. Bu durum karşılanamasa, bunun neden böyle olduğu kullanıcıya hemen açık olmalı ve uygun eylemi hızla almaları gerekir.

İkinci olarak, uygulamalar verimlilik ve güvenilirlik arasında bir dengeyi dengelemeye çalışmalı. Bunu güvenilir bir şekilde yapmak mümkün olduğunda,uygulamalar kullanıcı zamanından tasarruf etmek için uzamsal eşleme verilerini otomatik olarak analiz eder. Bunu güvenilir bir şekilde yapmak mümkün değilse, uygulamalar bunun yerine kullanıcının uygulamaya gereken ek bilgileri hızla sağlamasını sağlayılmalıdır.

Doğru tarama deneyimini tasarlamaya yardımcı olmak için aşağıdaki olasılıklardan hangisinin uygulamanıza uygulana olduğunu göz önünde önünden yapın:

  • Tarama deneyimi yok

    • Bir uygulama, kılavuzlu tarama deneyimi olmadan mükemmel bir şekilde işleve sahip olabilir; Bu, doğal kullanıcı hareketi boyunca gözlemlenen yüzeyler hakkında bilgi sağlar.
    • Örneğin, kullanıcının holografik boya ile yüzeyleri çizmesine olanak sağlayan bir uygulama, yalnızca o anda kullanıcıya görünür olan yüzeyler hakkında bilgi gerektirir.
    • Ortamın taranmış olması, kullanıcının zaten kullanıcı tarafından 2012'de HoloLens.
    • Öte yandan uzamsal eşleme tarafından kullanılan kameranın yalnızca kullanıcının önünde 3,1 m'i görene kadar uzamsal eşlemenin, kullanıcı geçmişte daha yakın bir uzaklıktan gözlemlediği sürece daha uzak yüzeyler hakkında bilgisi olmadığını unutmayın.
    • Bu nedenle kullanıcı hangi yüzeylerin taranmış olduğunu anlar; örneğin taranmış yüzeylere sanal gölgeler atama, kullanıcının hologramları bu yüzeylere eklemesine yardımcı olabilir.
    • Bu durumda, uzamsal yüzey gözlemcinin sınırlayıcı birimleri, her karenin, kullanıcının takip edilmesi için gövde kilitli bir uzamsal koordinat sistemine güncelleştirilebilir.
  • Uygun bir konum bulma

    • Bir uygulama, belirli gereksinimlere sahip bir konumda kullanım için tasarlanmış olabilir.
    • Örneğin uygulama, holografik hologram-fu alıştırmalarını güvenli bir şekilde yapmak için kullanıcının etrafında boş bir alan gerektirebilir.
    • Uygulamalar belirli gereksinimleri kullanıcıya önden ilet olmalı ve bunları net bir görsel geri bildirimle pekiştirmeli.
    • Bu örnekte, uygulama gerekli boş alan kapsamını görselleştirmeli ve bu bölge içinde herhangi bir undesed nesnelerin varlığını görsel olarak vurgulamalı.
    • Bu durumda, uzamsal yüzey gözlemcinin sınırlayıcı birimleri, seçilen konumda dünya kilitli bir uzamsal koordinat sistemi kullansa gerekir.
  • Yüzeylerin uygun bir yapılandırmasını bulma

    • Bir uygulama, yüzeylerin belirli bir yapılandırmasını (örneğin, iki büyük, düz, karşı duvar) holografik bir yansıtmalar oluşturmak için gerekli olabilir.
    • Böyle durumlarda uygulamanın uygun yüzeyleri algılamak ve kullanıcıya doğru yönlendirerek uzamsal eşleme tarafından sağlanan yüzeyleri analiz etmek zorunda olması gerekir.
    • Uygulamanın yüzey analizi güvenilir değilse kullanıcı bir geri dönüş seçeneğine sahip olmalıdır. Örneğin, uygulama yanlış bir şekilde bir kapı yolunu düz duvar olarak tanımlarsa, kullanıcının bu hatayı düzeltmek için basit bir yolu olması gerekir.
  • Ortamın bir bölümünü tarama

    • Bir uygulama, kullanıcı tarafından yönlendirilen şekilde ortamın yalnızca bir bölümünü yakalamak isteyen bir uygulama olabilir.
    • Örneğin, uygulama bir odanın bir bölümünü tarar, böylece kullanıcı, satmayı kabul etmek istediğiniz bir şey için holografik sınıflandırılmış bir reklam yayınlar.
    • Bu durumda, uygulamanın tarama sırasında kullanıcı tarafından gözlemlenen bölgelerde uzamsal eşleme verilerini yakalaması gerekir.
  • Tüm odayı tarama

    • Bir uygulama, kullanıcının arkasındakiler de dahil olmak üzere geçerli odada bulunan tüm yüzeylerin taransını gerekli olabilir.
    • Örneğin, bir oyun, tüm yönlerden yaklaşan yüzlerce küçük Marsliputian'ın altında, kullanıcıyı Gulliver rolüne koyabilirsiniz.
    • Böyle durumlarda, uygulamanın geçerli odandaki yüzeylerden kaç tane taranmış olduğunu belirlemesi ve kullanıcının bakışlarını önemli boşluklar dolduracak şekilde yönlendirecek.
    • Bu işlemin anahtarı, bir kullanıcının henüz taranmamış olduğu kullanıcıya açık hale getiren görsel geri bildirim sağlar. Uygulama Örneğin, uzamsal eşleme yüzeyleri kapsamında olmayan bölgeleri görsel olarak vurgulamak için mesafe tabanlı sis 'yi kullanabilir.
  • Ortamın ilk anlık görüntüsünü alın

    • Bir uygulama, başlangıçtaki bir ' Snapshot ' olduktan sonra ortamdaki tüm değişiklikleri yok saymayı isteyebilir.
    • Bu, ortamın ilk durumuna sıkı bir şekilde bağlanmış Kullanıcı tarafından oluşturulan verilerin kesintiye uğramaması için uygun olabilir.
    • Bu durumda, tarama tamamlandıktan sonra uygulamanın, uzamsal eşleme verilerinin bir kopyasını ilk durumunda yapması gerekir.
    • Hologramlar, ortam tarafından hala doğru bir şekilde occolmaya devam ediyorsa, uygulamalar uzamsal eşleme verilerine yönelik güncelleştirmeleri almaya devam etmelidir.
    • Uzamsal eşleme verilerinde devam eden güncelleştirmeler aynı zamanda oluşan değişikliklerin görselleştirmesine de olanak tanır. Bu, kullanıcıya ortamın önceki ve mevcut durumları arasındaki farkları açıklığa kavuşturmalıdır.
  • Ortamın Kullanıcı tarafından başlatılan anlık görüntülerini al

    • Bir uygulama yalnızca Kullanıcı tarafından talimat edildiğinde ortam değişikliklerine yanıt verebilir.
    • Örneğin, Kullanıcı, pozlarını farklı bir süre yakalayarak bir arkadaşınızın birden çok 3B ' Kara ' ' i oluşturabilir.
  • Kullanıcının ortamı değiştirmesine izin ver

    • Bir uygulama, kullanıcının ortamında yapılan değişikliklere gerçek zamanlı olarak yanıt verecek şekilde tasarlanmış olabilir.
    • Örneğin, bir curbir Kullanıcı çizimi, diğer tarafta bir holographic Play için ' sahnenin değişikliğini ' tetikleyebilmenizi sağlayabilir.
  • Kullanıcının uzamsal eşleme verilerinde hata yaşamamasını kılavuza

    • Bir uygulama, ortamını taradıklarında Kullanıcı için rehberlik sağlamak isteyebilir.
    • Bu, kullanıcının uzamsal eşleme verilerinde belirli hatatürlerini önlemenize yardımcı olabilir; Örneğin, güneş ışığı Windows veya yansıtmadan uzaklaşarak.

Göz önünde bulundurulması gereken bir ek ayrıntı, uzamsal eşleme verilerinin ' Range ' öğesinin sınırsız olmaması olabilir. Uzamsal eşleme, büyük boşlukların kalıcı bir veritabanını oluştururken, bu verileri yalnızca Kullanıcı etrafında sınırlı büyüklükte bir ' kabarcık ' içindeki uygulamalar için kullanılabilir hale getirir. Uzun bir Manana 'un başlangıcında başlayıp başlangıçtan itibaren yeterince uzakta İlerleyebiliyorsanız, sonunda en son uzamsal yüzeyler ortadan kaldırılır. Bu yüzeyleri, kullanılabilir uzamsal eşleme verilerinden kaybolduktan sonra, uygulamanızda önbelleğe alarak azaltabilirsiniz.

Kafes işleme

Yüzeylerde ortak hata türlerini algılamaya ve uzamsal eşleme verilerini uygun şekilde filtrelemeye, kaldırmanıza veya değiştirmenize yardımcı olabilir.

Uzamsal eşleme verilerinin gerçek dünyadaki yüzeyler için mümkün olduğunca yorgaya kadar düşünüldüğünü göz önünde bulundurun. bu nedenle, riskleri uyguladığınız tüm işlemler, yüzeylerinizi ' Truth ' üzerinden başka bir şekilde kaydırın.

İşte yararlı bulabileceğiniz farklı türlerde ağ işleme örnekleri verilmiştir:

  • Delik doldurma

    • Koyu bir malzemeden oluşan küçük bir nesne tarayamazsa, çevredeki yüzeyde bir delik bırakır.
    • Delik, occlusiyon 'ı etkiler: hologramlar, daha fazla donuk gerçek dünya yüzeyinde ' aracılığıyla ' bir delik görünebilir.
    • Delik, rayları etkiler: kullanıcıların yüzeylerle etkileşime geçmesini sağlamak için raylar kullanıyorsanız, bu ışınların delikleri geçmesi istenmeyen bir durum olabilir. Bir hafifletme, uygun boyutta bir bölgeyi kapsayan birden çok raya grubunu kullanmaktır. Bu, bir raycast küçük bir deliğe geçtiğinde bile, Toplam Sonuç hala geçerli olmaya devam edecek şekilde ' outver' sonuçlarını filtrelemenize olanak tanır. Bununla birlikte, bu yaklaşım bir hesaplama maliyetine girer.
    • Delik, fizik çakışmalarını etkiler: fizik simülasyonu tarafından denetlenen bir nesne, tabandaki bir deliğe dönüşebilir ve kaybedilmeye başlayabilir.
    • Yüzey ağı 'nda bu tür delikleri doldurmanız algorithmically mümkündür. Ancak, Windows ve doorways gibi ' gerçek delik ' doldurulmaması için algoritmanızı ayarlamanız gerekir. ' Gerçek delikleri ' ' sanal delik ' ' dan güvenilir bir şekilde ayırt etmek zor olabilir, bu nedenle ' size ' ve ' sınır şekli ' gibi farklı buluşsal yöntemler ile denemeler yapmanız gerekebilir.
  • Durdurma kaldırma

    • Yansıtımlar, parlak ışıklar ve hareketli nesneler, orta ölçekli bir küçük ' halde ' halden ' yağışları ' kayan bırakabilir.
    • Hallucinations, occlusıte 'yi etkiler: hallucinkatları, diğer hologramlar önünde ve occluya daha açık olan koyu şekiller olarak görünür hale gelebilir.
    • Hallucinations, rayları etkiler: kullanıcıların yüzeylerle etkileşime geçmesini sağlamak için raylar kullanıyorsanız, bu ışınların arkasındaki yüzey yerine bir halden vurma ulaşabilmeniz gerekir. Delikler sayesinde, bir azaltma tek bir raycast yerine birçok raya kullanmaktır, ancak bu işlem bir hesaplama maliyetine gelir.
    • Hallucinations, fizik çakışmalarını etkiler: fizik simülasyonu tarafından denetlenen bir nesne, bir halde daha fazla erişilebilir hale gelebilir ve bir düz açık alan alanı boyunca taşınamaz.
    • Yüzey kafesinden bu tür kilitlenmelerin filtreleneceği olasıdır. Ancak, delikleri olduğu gibi, lamba ve kapı tutamaçları gibi gerçek küçük nesnelerin kaldırılmaması için algoritmanızı ayarlamanız gerekir.
  • Üstel

    • Uzamsal eşleme, gerçek dünya ortaklarınıza kıyasla kaba veya ' gürültülü ' olarak görünen yüzeyleri döndürebilir.
    • DÜZEDEN, fizik çakışmalarını etkiler: taban kaba ise, fiziksel olarak benzetimli bir golf topu, düz bir çizgide üzerinde sorunsuzca yer alamaz.
    • Düzleyme işlemeyi etkiler: bir yüzey doğrudan görselleştirilebiliyorsa, kaba yüzey normallik görünümü etkileyebilir ve ' temiz ' görünümünü bozabilir. Bu işlemi, yüzeyi işlemek için kullanılan gölgelendiricide uygun aydınlatma ve dokuları kullanarak azaltabilirsiniz.
    • Bir yüzey ağı içinde kabalılığını düzgünleştirmek mümkündür. Bununla birlikte, bu yüzey, ilgili gerçek dünya yüzeyinden daha ileri bir yere gelebilir. Yakın bir yazışmanın sürdürülmesi, doğru hologram oluşması ve kullanıcıların holographic yüzeyleriyle hassas ve öngörülebilir etkileşimler elde etmelerini sağlamak için önemlidir.
    • Yalnızca bir yüzeysel değişikliği gerekliyse, köşe konumları değiştirilmeden köşe normalleri düzgünleştirmek yeterli olabilir.
  • Düzlem bulma

    • Bir uygulamanın uzamsal eşleme tarafından sunulan yüzeyler üzerinde gerçekleştirmek isteyebileceğiniz birçok analiz biçimi vardır.
    • Basit bir örnek ' düzlemi bulma ' ' dır; sınırlı, genellikle yüzey bölgelerini tanımlama.
    • Planar bölgeleri, Holographic iş yüzeyleri olarak, Holographic içeriğinin uygulama tarafından otomatik olarak yerleştirilebileceği bölgeler olarak kullanılabilir.
    • Planar bölgeleri Kullanıcı arabirimini kısıtlayabilir ve kullanıcılara, ihtiyaçlarına en uygun yüzeylerle etkileşimde bulunmak için kılavuzluk edebilir.
    • Planar bölgeleri, gerçek dünyada olduğu gibi, LCD ekranları, tablolar veya beyaz tahtalar gibi işlevsel nesnelerle holographic ler için kullanılabilir.
    • Planar bölgeleri, video oyun seviyelerinin temelini oluşturan oynatma alanları tanımlayabilir.
    • Planar bölgeleri, gerçek kişilerin ilerlebilecekleri taban alanları tanımlayarak gerçek dünyada gezinmek için sanal aracılardan yardım edebilir.

Prototipleme ve hata ayıklama

Faydalı araçlar

  • HoloLens öykünücüsü , bir fiziksel HoloLens erişimi olmayan uzamsal eşleme kullanan uygulamalar geliştirmek için kullanılabilir. HoloLens hareket, uzamsal koordinat sistemleri ve uzamsal eşleme kafesleri de dahil olmak üzere, uygulamanızın normalde kullanacağı tüm verileri içeren gerçekçi bir ortamdaki HoloLens canlı bir oturumun benzetimini yapmanıza olanak sağlar. Bu, hata ayıklama ve kodunuzda yapılan değişiklikleri değerlendirmek için yararlı olabilecek güvenilir, yinelenebilir giriş sağlamak için kullanılabilir.
  • bir senaryoyu yeniden oluşturmak için canlı bir HoloLens ağ üzerinden uzamsal eşleme verilerini yakalayın, sonra dosyayı diske kaydedin ve daha sonra hata ayıklama oturumlarında yeniden kullanın.
  • Windows device portal 3b görünümü , uzamsal eşleme sistemi aracılığıyla şu anda kullanılabilir olan tüm uzamsal yüzeyleri görmeniz için bir yol sağlar. Bu, uygulamanızın içindeki uzamsal yüzeyler için karşılaştırma temeli sağlar; Örneğin, herhangi bir uzamsal yüzey eksik olup olmadığını ve yanlış yerde görüntülendiğini kolayca söyleyebilirsiniz.

Genel prototipleme Kılavuzu

  • Uzamsal eşleme verilerinde oluşan hatalar kullanıcılarınızın deneyimini güçlü şekilde etkileyebileceğinden, uygulamanızı çok çeşitli ortamlarda test etmenizi öneririz.
  • Her zaman aynı konumda (örneğin, masanızda) testlerin habitine yakalanmayın. Farklı konumların, şekillerin, boyutlardaki ve malzemelerin çeşitli yüzeylerinde test ettiğinizden emin olun.
  • Benzer şekilde, yapay veya kaydedilen veriler hata ayıklama için faydalı olabilir, ancak aynı sayıda test çalışmasının üzerine bağlı olmaz. Bu, daha fazla değişen testin daha önce yakalandığı önemli sorunları bulmayı geciktirebiliriz.
  • HoloLens veya uygulamanızı tamamen yaptığınız şekilde kullanamadığından gerçek (ve ideal uncoached) kullanıcılarla test yapmak iyi bir fikir olabilir. Aslında, insanların davranış, bilgi ve varsayımları hakkında ne kadar iyi bir durum olabileceğini tahmin edebilir!

Sorun giderme

  • Surface kafeslerin doğru hizalamalı olması için, her bir oyun nesnesinin, ağı oluşturulmasını sağlamak üzere Surcegözlemci 'a gönderilmeden önce etkin olması gerekir. Aksi halde, kafesler alanınızda görünür, ancak tuhaf açılarda döndürülür.
  • Surcegözlemci ile iletişim kuran bir betiği çalıştıran GameObject 'in Origin olarak ayarlanması gerekir. Aksi halde, oluşturduğunuz ve kafeslerinin oluşturulmuş olduğu oyun nesnelerinin hepsi üst oyun nesnesinin uzaklığa eşit bir uzaklığa sahip olacaktır. Bu, kafeslerinizin çeşitli ölçümleri göstermesini sağlayabilir ve bu sayede, neler olduğunu hata ayıklamaya devam edebilir.

Ayrıca bkz.

uzamsal eşleme, HoloLens etrafında ortamda gerçek dünyada yüzeyler hakkında ayrıntılı bir temsil sağlar ve geliştiricilerin ikna edici bir karma gerçeklik deneyimi oluşturmalarına olanak tanır. Bir uygulama, gerçek dünyayı sanal dünya ile birleştirerek hologramlar gerçek görünür hale getirir. Uygulamalar tanıdık gerçek bir davranış ve etkileşimler sunarak Kullanıcı beklentilerine göre daha doğal bir şekilde uyum sağlayabilir.


Cihaz şunları destekler