Platforma özel kılavuzlar
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
Gerçek Olmayan Motor
AR uygulama geliştiricisi olarak, kullanıcılarınız için sanal ile gerçek arasında sorunsuz bir geçiş sağlamak istersiniz. Kullanıcılar sahnelerine yerleştirdikleri sanal nesnelerin gerçek dünyaya ait gibi görünmesini ister. Kullanıcıların mobilya alışverişi yapabileceği bir uygulama geliştiriyorsanız satın alacakları koltuğun evlerine sığacağından emin olmalarını istersiniz.
Depth API, cihaz kamerasının sahnedeki gerçek nesnelerin boyutunu ve şeklini anlamasına yardımcı olur. Derinlik görüntüleri veya derinlik haritaları oluşturarak uygulamalarınıza gerçekçilik katmanı ekler. Derinlikli resimlerin sağladığı bilgileri, sürükleyici ve gerçekçi kullanıcı deneyimleri sağlamak için kullanabilirsiniz.
Depth API ile geliştirme için kullanım alanları
Depth API; nesne kapama, daha iyi sürükleyicilik ve yeni etkileşimleri destekleyerek artırılmış gerçeklik deneyimlerinin gerçekçiliğini artırabilir. Aşağıda, bu özelliği kendi projelerinizde kullanabileceğiniz bazı yöntemler verilmiştir. Derinlik uygulama örnekleri için ARCore Depth Lab'deki örnek sahneleri inceleyin. Burada, derinlik verilerine erişmenin farklı yollarını öğrenebilirsiniz. Bu Unity uygulaması, GitHub'da açık kaynak olarak sunulmaktadır.
Kapamayı etkinleştir
Gölgeleme veya gerçek dünyadaki nesnelerin arkasında sanal bir nesnenin doğru şekilde oluşturulması, sürükleyici bir AR deneyimi için çok önemlidir. Kullanıcının bir kapının yanında bagaj içeren bir sahneye yerleştirmek isteyebileceği sanal bir Andy olduğunu varsayalım. Engelleme olmadan oluşturulan Andy, bagajın kenarıyla gerçekçi olmayan bir şekilde örtüşür. Bir sahnenin derinliğini kullanır ve sanal Andy'nin ahşap gövde gibi çevreye göre ne kadar uzakta olduğunu anlarsanız Andy'yi gölgelendirmeyle doğru şekilde oluşturabilir ve çevresine göre çok daha gerçekçi görünmesini sağlayabilirsiniz.
Bir sahneyi dönüştürme
Koltuklarının kollarına ve yastıklarına yerleşen sanal kar taneleri oluşturarak veya oturma odalarını sisli bir ortama dönüştürerek kullanıcınızı yeni ve etkileyici bir dünyaya taşıyın. Sanal ışıkların gerçek nesnelerle etkileşime geçtiği, nesnelerin arkasına gizlendiği ve nesneleri yeniden aydınlattığı bir sahne oluşturmak için Derinlik'i kullanabilirsiniz.
Mesafe ve alan derinliği
Bir şeyin uzakta olduğunu göstermeniz mi gerekiyor? Derinlik API'sini kullanarak mesafe ölçümünü yapabilir ve bir sahnenin arka planını veya ön planını bulanıklaştırma gibi alan derinliği efektleri ekleyebilirsiniz.
Kullanıcıların AR nesneleriyle etkileşim kurmasını sağlama
Sanal içeriğin çarpışma ve fizik yoluyla gerçek dünyayla etkileşim kurmasını sağlayarak kullanıcıların uygulamanız aracılığıyla dünyaya "dokunmasına" izin verin. Sanal nesnelerin gerçek dünyadaki engelleri aşmasını sağlayın veya sanal paintball'ların vurup gerçek dünyadaki bir ağacın üzerine sıçramasını sağlayın. Derinliğe dayalı çarpışmaları oyun fiziğiyle birleştirdiğinizde, deneyiminizi canlandırabilirsiniz.
İsabet testlerini iyileştirin
Derinlik, isabet testi sonuçlarını iyileştirmek için kullanılabilir. Uçak vuruş testleri yalnızca dokulu düzlemsel yüzeylerde işe yarar. Derinlik isabet testleri ise daha ayrıntılıdır ve düzlemsel olmayan ve düşük dokulu alanlarda bile başarılı olur. Bunun nedeni, derinlikli isabet testlerinin, bir noktanın doğru derinliğini ve yönünü belirlemek için sahneden derinlik bilgisini kullanmasıdır.
Aşağıdaki örnekte yeşil Andy'ler standart düzlem isabet testlerini, kırmızı Andy'ler ise derinlik isabet testlerini temsil etmektedir.
Cihaz uyumluluğu
Derinlik API'si yalnızca derinliği destekleyebilecek işleme gücüne sahip cihazlarda desteklenir ve Derinliği etkinleştirme bölümünde açıklandığı gibi ARCore'da manuel olarak etkinleştirilmelidir.
Bazı cihazlarda uçuş süresi (ToF) sensörü gibi donanım derinlik sensörleri de bulunabilir. Depth API'yi destekleyen cihazların güncel listesi ve ToF sensörü gibi desteklenen bir donanım derinlik sensörüne sahip cihazların listesi için ARCore destekli cihazlar sayfasına bakın.
Derinlikli resimler
Derinlik API'si, dünyanın 3D görünümünü sunan derinlik görüntüleri oluşturmak için hareketten derinlik algoritması kullanır. Derinlik resmindeki her piksel, sahnenin kameradan ne kadar uzakta olduğunun ölçümüyle ilişkilendirilir. Bu algoritma, farklı açılardan çekilmiş birden fazla cihaz resmi alır ve kullanıcı telefonunu hareket ettirirken her piksele olan mesafeyi tahmin etmek için bunları karşılaştırır. Kullanıcının minimum düzeyde hareket etmesine rağmen derin işlemeyi artırmak için makine öğrenimini kullanır. Ayrıca kullanıcının cihazında bulunan ek donanımlardan da yararlanır. Cihazda ToF gibi özel bir derinlik sensörü varsa algoritma, mevcut tüm kaynaklardan gelen verileri otomatik olarak birleştirir. Bu sayede mevcut derinlik resmi iyileşir ve kamera hareket etmediğinde bile derinlik elde edilebilir. Ayrıca, beyaz duvarlar gibi özelliklerin az olduğu veya hiç olmadığı yüzeylerde ya da hareket eden insanların veya nesnelerin bulunduğu dinamik sahnelerde daha iyi derinlik sağlar.
Aşağıdaki resimlerde, duvarında bisiklet bulunan bir koridorun kamera görüntüsü ve kamera görüntülerinden oluşturulan derinlik resminin görselliği gösterilmektedir. Kırmızı renkli alanlar kameraya daha yakın, mavi renkli alanlar ise daha uzaktadır.
Hareketten derinlik
Derinlik verileri, kullanıcı cihazını hareket ettirdiğinde kullanılabilir hale gelir. Algoritma, 0 ila 65 metre uzaklıktan sağlam ve doğru derinlik tahminleri elde edebilir. En doğru sonuçlar, cihaz gerçek dünyadaki sahneden yarım metre ila yaklaşık beş metre uzakta olduğunda verilir. Kullanıcıyı cihazını daha fazla hareket ettirmeye teşvik eden deneyimler, daha iyi ve daha iyi sonuçlar elde eder.
Derinlik görüntüleri elde etme
Derinlik API'si ile her kamera karesine uyan derinlik görüntüleri alabilirsiniz. Elde edilen derinlik resmi, kamerayla aynı zaman damgasına ve görüş alanı içsel özelliklerine sahiptir. Derinlik hareketten elde edildiğinden, geçerli derinlik verileri yalnızca kullanıcı cihazını hareket ettirmeye başladıktan sonra kullanılabilir. Beyaz duvarlar gibi çok az veya hiç özelliği olmayan yüzeyler, belirsiz derinlikle ilişkilendirilir.
Sırada ne var?
- Derinlik verilerine erişmenin farklı yollarını gösteren ARCore Derinlik Laboratuvarı'na göz atın.