Aracılığıyla paylaş


World Locking Tools kavramları

Sorun

Günlük fiziksel dünyada, alan sabit koordinat sistemiyle iyi tanımlanmıştır. Sabit koordinat sistemindeki hareketsiz bir nesne sonsuza kadar aynı koordinatlara sahip olacak. Belirli bir yapılandırmada düzenlenmiş bir nesne grubu bu yapılandırmayı korur. Aynı hızlarla hareket eden iki nesne birbirinden sabit bir uzaklıkta kalır.

Bu ve benzer yasalar, varoluşun o kadar temel bir parçasıdır ki, artık tutmadıkları zaman, dünya hakkındaki sezgiler güvenilmez hale gelir.

Önceki çözümler

Unity'nin küresel koordinat alanı ve uzamsal bağlantıları, algılayıcı yanlışlıkları ve kaymanın neden olduğu sorunların farklı yönlerini ele alır.

Unity'nin genel koordinat alanı, holografik nesnelerin birbirine göre sabit kaldığı kararlı bir başvuru çerçevesi sağlar. Bu alanda nesneler birbirine göre tutarlı bir şekilde davranacak olsa da, fiziksel dünyayla tutarlılık garanti edilmediğinden veya genel olarak sağlanmadığından emin olunmayacaktır. Tutarsızlıklar özellikle kullanıcı hareket ederken gelişir.

Unity'nin uzamsal tutturucuları, kullanıcı mobil olduğunda fiziksel dünyada hologramın konumunu koruyabilir, ancak sanal dünyada kendi tutarlılığından ödün verebilir. Farklı tutturucular sürekli birbirine göre hareket eder. Ayrıca genel koordinat alanında hareket ederek düzen gibi basit görevleri zorlaştırıyor ve fizik simülasyonu sorunlu hale geliyor.

Sorunun kaynağı

Burada holoLens teknolojisinin temeli tartışılacaktır, ancak bu kavramlar genellikle, özellikle de atayılan sistemler tarafından artırılan, içeriden dışarı işaretsiz izleme teknikleri için geçerlidir.

HoloLens, çevresindeki görünür özelliklere göre nerede olduğunu belirleme konusunda harikadır. Uzantıya göre, aynı görünür özelliklere göre diğer sanal nesneleri konumlandırmak da harikadır. Kullanıcı kabaca sabit bir konumda oturur veya dururken, cihaz görünür fiziksel başvuru noktalarıyla kayıtlı sanal nesneleri tutmakta harikadır. Fiziksel bir tabloya yerleştirilen sanal bardaklar çoğunlukla tablonun yüzeyinde aynı yerde kalır.

Bu, HoloLens'in aynı küçük birimle sınırlı olduğu ve başvuru için görünür özelliklerden oluşan sabit bir küme olduğu zamandır. Ancak başka ilginç senaryolar da vardır.

Kullanıcı kalkıp oda hakkında hareket ettiğinde veya muhtemelen odalar arasında hareket ettiğinde, HoloLens'in görünümden çıkan eski özelliklerle görünüme gelen yeni özellikler arasında geçiş yapması gerekir. Uygulama ayrıntılarına girmeden, aktarım sırasında izleme doğruluğunun çok düşük olacağını görmek açıktır.

Bağlam için basit bir senaryo aşağıda verilmiştır.

Çizim

Kullanıcı A noktasındadır. Etrafa baktığımızda, birçok iyi görünür referans özelliği vardır, bu nedenle baş izleme kalitesi mükemmeldir ve yerleştirilen tüm hologramlar yerinde kalır.

Kullanıcı daha sonra fiziksel alanda B'yi işaret etmek için 10 metre yürüyecek. Ancak aktarımda izleme daha düşük aslına sahiptir, bu nedenle sonuç olarak, kullanıcı B noktasına ulaştıktan sonra cihaz yalnızca 9 metre seyahat ettiğini kaydeder. Bu, çizim için büyük bir çift miktardır, ancak bu durumda +-10% mesafe hatasına izin veren cihaz belirtimleriyle tutarlıdır.

Cihaz B noktasında etrafa baktığında iyi görünür özellikler kaydedilir. Hologramların B noktasında izlenmesi ve kararlılığı da mükemmeldir.

Kullanıcı belirli bir noktadayken, bu noktanın etrafındaki şeyler harika görünür. Ama tutarsızlık var. Fiziksel alanda A ve B noktaları arasındaki 10 metre, sanal alanda yalnızca 9 metredir. Bu genellikle "ölçek sorunu" olarak adlandırılır, ancak "mesafe sorunu" daha doğru olabilir. Yakında bu sorunu çözeceğiz.

Senaryomuza geri dönün: Bir sonraki eylem için kullanıcı A'yı işaret etmeye geri döner. Bu kez izleme hataları, fiziksel alanda B'den A'ya 10 metrelik yürümenin sanal alanda 10,5 metreye kadar eklenmesini sağlar. Bu, A'dan B'ye A'ya tam yürüyüşün 0,0 metre olması gerektiğinde 1,5 metre net mesafeye kadar eklediği anlamına gelir. Bu bariz bir sorundur. Yürüyüşten önce A noktasına yerleştirilen hologram artık A noktasından 1,5 metre uzakta görünecektir.

Uzamsal yer işaretleri burada yardımcı olabilir. B'ye ve arkaya doğru yürüdükten sonra sistem, A noktasına geri döndüğünü fark eder, ancak başın Unity koordinatları 1,5 metre değişmiştir. Ancak A noktasındaki hologramda uzamsal çapa takılıysa uzamsal çapa "A noktasındayım, baş A noktasında ama koordinatlarım başın koordinatlarından 1,5 metre farklı olabilir. Tekrar anlaşabilmemiz için koordinatlarımı 1,5 metre değiştireceğim." Ve C noktasındaki uzamsal bir yer işareti, kullanıcının solundaki bir ölçüm, aynı işlemden geçiyor. Özünde uzamsal yer işareti, A noktasının Unity alanında olduğu yeri sürekli olarak yeniden tanımlar, böylece başın koordinatları her zaman doğru olur. Ve her uzamsal yer işareti, fiziksel dünyadaki yeri için bu ayarlamayı bağımsız olarak yapar.

Unity için Dünya Kilitleme Araçları

Dünya Kilitleme Araçları, kullanıcı hareket ettikçe yayıldığı dahili uzamsal tutturucular sağlar. Kameranın koordinatlarını ve bu uzamsal bağlantıları her kareyi analiz eder. Bu uzaysal çapaların tümünün başın koordinatlarıyla eşleşecek şekilde 1,5 metrenin üzerinde hareket ettiğini algılar ve "Hmm, dünyanın her yerindeki her şeyin koordinatlarını değiştirip kafasının en son buraya geldiğinden farklı koordinatlara sahip olmasını telafi etmek yerine kafasının koordinatlarını düzeltirim" der.

Başka bir deyişle, uzamsal bir tutturucunun bir hologramı Unity uzayı boyunca sürükleyerek fiziksel uzayda sabit kalmasını sağlamak yerine Unity dünya alanının tamamı fiziksel uzaya kilitlenir. Bir hologram Unity uzayında hareketsizse etrafındaki fiziksel dünya özelliklerine göre hareketsiz kalır. Ve en önemlisi, etrafındaki sanal özelliklere göre sabit kalacaktır.

Açıkçası bu iş daha karmaşık. Örneğin, uzamsal tutturucularla ilgili bir sorunun, her zaman birbirleriyle aynı fikirde olmaları için bağımsız hareket etmelerinden kaynaklandığını unutmayın. Temel alınan FrozenWorld altyapısı, bu anlaşmazlıkların en algısal olarak doğru kamera düzeltmesi ile ortaya çıkar ve bunu her karede yapar.

Yeniden ölçeklendirme sorunu

Kullanıcı A noktasından B noktasına ve geri dönüp A noktasına doğru yürüyorsa, sistem aktarım sırasında oluşan kaymayı düzeltmek için yeterli bilgiye sahiptir. B noktasının nerede olduğunu bilmiyor olabilir (ve genellikle B noktasının A noktasına göre tam olarak nerede olduğunu bilmez), ancak A noktasında olup olmadığını bilir. A noktasına geri döndüğünde, işlerin bıraktığı kadar olmasını bekler. Aksi takdirde sistem bunu yapabilir.

Peki ya B noktasında? 10 metrelik yürüyüşün sadece 9 metre olduğunu düşündü. 9 metrenin doğru olup olmadığını ve doğru değilse ne kadar kapalı olduğunu bilmenin hiçbir yolu yoktur. Uzamsal çapalar burada yardımcı olmaz. Uzamsal yer işaretleri, baş izleyicinin sorunuyla aynıdır; her biri fiziksel dünyada nerede olduğunu bilir (görünür özelliklere göre), ancak bir uzamsal yer işareti başka bir uzamsal yer işareti hakkında hiçbir şey bilmez. Özellikle, uzamsal yer işaretleri ne kadar uzakta olduklarını bilmezler.

Bu, birçok biçimde rahatsız edici olabilir, ancak nesnelerin veya nesne sistemlerinin boyutu bir ölçüme göre daha büyük olduğunda engelleyici bir sorun haline gelir. Bir oda, bina, masa, hatta araba modeli düşünün. Uzamsal bağlantı, modelin bir ucunun fiziksel dünya özelliğiyle kaydedilmiş olmasına rağmen, modelin diğer ucuna ulaşıldığı zaman önemli bir hata birikmiş olabilir. Diğer uç doğru şekilde hizalanamaz. Hata cihazdan cihaza ve hatta aynı cihazdaki çalıştırmalar arasında bile farklı olacaktır.

Ve şu ana kadar bu tartışmada, sorunu çözmek için gereken minimum bilgiler getirilmemiştir.

World Locking Tools, uygulamanın fiziksel dünya ve holografik dünya ile ilgili olarak seyahat edilen mesafedeki hataları düzeltmek için yeterli bilgi sağlamasına olanak tanıyan Space Pins API'siyle ilgili sorunu giderir. Bu, büyük hologramların her yerinde fiziksel dünyayla uyumlu görünmesini sağlar.

Temel sisteme bir bakış

World Locking Tools kavramlarına genel bir bakış sunduğumuza göre şimdi geri adım atıp temel sisteme göz atalım. Temel işlemin hangi hizmetleri yaptığını ve sağlamadığını anlamak, daha sonra gelişmiş kavramların doğru kullanımını ve bu gelişmiş tekniklerin belirli bir uygulama için gerekli olup olmadığını belirlemenize yardımcı olur.

Ayrıca bkz.