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.