İsabet testleri sanal nesneleri gerçek dünyaya yerleştirir

Platforma özel kılavuzlar

Android (Kotlin/Java)

Android NDK (C)

Unity (AR Vakfı)

Artırılmış gerçeklik (AR) içeriğinin sahneyle uyumlu olması için doğru şekilde yerleştirilmesi ve boyutlandırılması gerekir. Gerçek nesneler gibi, uzaktaki sanal nesnelerin de daha küçük görünmesi gerekir. Bir 3D nesnenin sahnenizdeki doğru yerini belirlemek için isabet testi (veya Unity için AR Foundation'da raycast) yapabilirsiniz. Doğru yerleşim, AR içeriğinin uygun (görünen) boyutta oluşturulmasını sağlar.

İsabet testleri, gerçek dünyadan 3D geometri ile başlangıç noktası ve yönden oluşan sanal ışın arasındaki kesişimleri bulur. En sık kaynak olarak cihazın kamerası olan ışınlar kullanılır, ancak ARCore, dünya uzay koordinatlarında rastgele bir ışınla isabet testleri gerçekleştirmek için bir API içerir.

Kullanıcının cihazının kamerasından gelen ve sahnenin 3D geometrisine (ör. bir zemin, duvar veya nesne) girene kadar ileri doğru uzanan bir ışın olduğunu hayal edin. Bu olduğunda, isabet sonuçlarının veya algılanan sahne geometrisine sahip kesişmelerin bir listesini alırsınız. Liste, en yakın kesişim en başta olacak şekilde, cihazla olan mesafeye göre sıralanır. Bu önemlidir, çünkü diğer nesnelerin arkasında gizlenmiş nesneleri genellikle göremezsiniz. Dolayısıyla, çoğu zaman ilk sonuç en önemli sonuçtur.

İsabet sonucunun içeriği

Tek bir isabet sonucu, her sonuç için aşağıdaki bilgileri içeren bir liste olarak döndürülür:

  • Işın kaynağına uzaklık (metre cinsinden)
  • İsabet sonucunun konumu (konum ve yön)
  • İzlenebilir bir biçimde vurduğunuz 3D geometri

Ardından, istediğiniz isabet sonucunu 3D içeriğinizi Sabit kullanarak gerçekçi bir şekilde yerleştirmek için kullanabilirsiniz.

İsabet sonucu türleri

Dört tür isabet sonucu vardır: Derinlik, düzlem, özellik noktası ve Anında Yerleşim sonuçları. Aşağıdaki tabloda gösterildiği gibi her birinin kendi kullanım alanları ve dezavantajları vardır.

İsabet sonucu türü Açıklama Yön Kullanım alanı
Derin Bir noktanın doğru derinliğini ve yönünü belirlemek için sahnenin tamamından alınan derinlik bilgilerini kullanır 3D yüzeye dik Sanal nesneyi rastgele bir yüzeye yerleştirin (yalnızca zeminlere ve duvarlara değil)
Uçak Bir noktanın doğru derinliğini ve yönünü belirlemek için yatay ve/veya dikey yüzeylere çarpar 3D yüzeye dik Bir nesneyi, uçağın tam geometrisini kullanarak düzleme (zemin veya duvar) yerleştirin. Hemen doğru ölçek gerekiyor. Derinlik isabet testinin yedeği
Özellik noktası Bir noktanın doğru konumunu ve yönünü belirlemek için kullanıcının dokunduğu noktanın etrafındaki görsel özelliklerden yararlanır 3D yüzeye dik Bir nesneyi sadece zemin ve duvarlara değil, rastgele bir yüzeye yerleştirin
Anında Yerleşim (Kalıcı Raycast) İçerik yerleştirmek için ekran alanını kullanır. Başlangıçta uygulama tarafından sağlanan tahmini derinliği kullanır. Anında çalışır, ancak ARCore gerçek sahne geometrisini belirlediğinde poz ve gerçek derinlik değişir. +Y, yer çekiminin karşısında yukarıyı gösteriyor Hızlı yerleştirmenin kritik önemde olduğu ve deneyimin bilinmeyen başlangıç derinliği ve ölçeğin tolere edilebileceği uçağın tam geometrisini kullanarak bir nesneyi düzleme (zemin veya duvar) yerleştirin

Cihaz uyumluluğu

İsabet testleri, ARCore'un desteklendiği tüm cihazlarda çalışır ancak Derinlik isabet testleri, Derinlik destekli cihazlar gerektirir.

Artırılmış gerçeklik (AR) içeriğini yerleştirmek için isabet sonuçlarını kullanma

Bir isabet sonucu elde ettiğinizde, sahnenize AR içeriği yerleştirmek için bu pozisyonu giriş olarak kullanabilirsiniz.