Platforma özel kılavuzlar
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
Unreal Engine
AR uygulaması geliştiricisi olarak, kullanıcılarınız için sanal olanı gerçekle sorunsuz bir şekilde birleştirmek istiyorsunuz. Kullanıcılar, sahnesine yerleştirdiği sanal nesnenin gerçek dünyada var 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 alanlarına sığacağından emin olmalarını istersiniz.
Derinlik API'si, bir cihazın 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 katar. Derinlik görüntüsü tarafından sağlanan bilgileri kullanarak sürükleyici ve gerçekçi kullanıcı deneyimleri sağlayabilirsiniz.
Depth API ile geliştirme yapmanın kullanım alanları
Depth API, nesne kapatma, daha iyi etkileyicilik ve artırılmış gerçeklik deneyimlerinin gerçekçiliğini artıran yeni etkileşimler sağlayabilir. Aşağıda, kendi projelerinizde kullanabileceğiniz bazı yöntemler verilmiştir. Derinlik özelliğinin kullanım örnekleri için ARCore Derinlik Laboratuvarı'ndaki örnek sahneleri inceleyin. Bu sahnelerde, derinlik verilerine erişmenin farklı yolları gösterilmektedir. Bu Unity uygulaması, GitHub'da açık kaynaklıdır.
Kapatmayı etkinleştirme
Sanal bir nesneyi gerçek dünya nesnelerinin arkasında doğru şekilde oluşturma anlamına gelen örtme, etkileyici bir AR deneyimi için çok önemlidir. Bir kullanıcının, kapının yanındaki bir sandığı içeren bir sahneye yerleştirmek isteyebileceği sanal bir Andy karakteri düşünün. Andy, tıkanma olmadan oluşturulduğunda gövdenin kenarıyla gerçekçi olmayan bir şekilde çakışır. Bir sahnenin derinliğini kullanır ve sanal Andy'nin ahşap gövde gibi çevresine göre ne kadar uzakta olduğunu anlarsanız Andy'yi doğru şekilde kapatmayla oluşturabilir, böylece Andy çevresinde çok daha gerçekçi görünür.

Bir sahneyi dönüştürme
Kullanıcınızı yeni ve sürükleyici bir dünyaya götürün. Örneğin, koltuklarının kollarına ve yastıklarına sanal kar taneleri yerleştirin veya oturma odalarını sisli bir havaya büründürün. Derinlik özelliğini kullanarak sanal ışıkların etkileşime girdiği, gerçek nesnelerin arkasına gizlendiği ve yeniden aydınlatıldığı bir sahne oluşturabilirsiniz.
Mesafe ve alan derinliği
Bir şeyin uzakta olduğunu mu göstermeniz gerekiyor? Mesafe ölçümünü kullanabilir ve Depth API ile alan derinliği efektleri (ör. bir sahnenin arka planını veya ön planını bulanıklaştırma) 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" olanak tanıyın. Sanal nesnelerin gerçek dünyadaki engellerin üzerinden geçmesini veya sanal boya toplarının gerçek dünyadaki bir ağaca çarpıp dağılmasını sağlayın. Derinliğe dayalı çarpışmayı oyun fiziğiyle birleştirdiğinizde deneyimi canlandırabilirsiniz.
İsabet testlerini iyileştirme
Derinlik, isabet testi sonuçlarını iyileştirmek için kullanılabilir. Düzlem isabet testleri yalnızca dokulu düzlemsel yüzeylerde çalışırken derinlik isabet testleri daha ayrıntılıdır ve düzlemsel olmayan ve dokusu az olan alanlarda bile çalışır. Bunun nedeni, derinlik isabet testi işlemlerinde bir noktanın doğru derinliğini ve yönünü belirlemek için sahnedeki derinlik bilgilerinin kullanılması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 destekleyecek işlem gücüne sahip cihazlarda desteklenir ve Derinliği etkinleştirme bölümünde açıklandığı gibi ARCore'da manuel olarak etkinleştirilmesi gerekir.
Bazı cihazlarda, uçuş süresi (ToF) sensörü gibi bir donanım derinlik sensörü de bulunabilir. Derinlik API'sini destekleyen cihazların güncel listesi ve ToF sensörü gibi desteklenen donanım derinlik sensörüne sahip cihazların listesi için ARCore destekli cihazlar sayfasını inceleyin.
Derinlikli resimler
Depth API, hareketten derinlik algoritması kullanarak derinlik görüntüleri oluşturur. Bu görüntüler, dünyanın 3D görünümünü sağlar. Derinlik görüntüsündeki her piksel, sahnenin kameradan ne kadar uzakta olduğuna dair bir ölçümle ilişkilendirilir. Bu algoritma, farklı açılardan çekilmiş birden fazla cihaz görüntüsünü alır ve kullanıcının telefonu hareket ettirmesiyle her piksele olan mesafeyi tahmin etmek için bu görüntüleri karşılaştırır. Kullanıcının en ufak bir hareketiyle bile derinlik işlemeyi artırmak için makine öğrenimini seçici olarak 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 kaynaklardaki verileri otomatik olarak birleştirir. Bu, mevcut derinlik görüntüsünü iyileştirir ve kamera hareket etmediğinde bile derinlik sağlar. Ayrıca, beyaz duvarlar gibi az özellikli veya hiç özellikli olmayan yüzeylerde ya da hareket eden insanlar veya nesneler içeren dinamik sahnelerde daha iyi derinlik sağlar.
Aşağıdaki resimlerde, duvarda bisiklet olan bir koridorun kamera görüntüsü ve kamera görüntülerinden oluşturulan derinlik görüntüsünün görselleştirilmiş hali gösterilmektedir. Kırmızı alanlar kameraya daha yakın, mavi alanlar ise daha uzaktır.

Hareketten derinlik
Kullanıcı cihazını hareket ettirdiğinde derinlik verileri kullanılabilir hale gelir. Algoritma, 0 ila 65 metre uzaklıktaki nesneler için sağlam ve doğru derinlik tahminleri elde edebilir. En doğru sonuçlar, cihaz gerçek dünya sahnesinden yarım metre ila yaklaşık beş metre uzaktayken elde edilir. Kullanıcıyı cihazını daha fazla hareket ettirmeye teşvik eden deneyimler giderek daha iyi sonuçlar elde edecektir.
Derinlik görüntüleri edinme
Depth API ile her kamera karesine uygun derinlik görüntüleri alabilirsiniz. Elde edilen derinlik görüntüsü, kamerayla aynı zaman damgasına ve görüş alanı içsel özelliklerine sahiptir. Derinlik, hareketten elde edildiği için geçerli derinlik verileri yalnızca kullanıcı cihazını hareket ettirmeye başladıktan sonra kullanılabilir. Beyaz duvarlar gibi az özellikli veya hiç özellik içermeyen yüzeyler, kesin olmayan derinlikle ilişkilendirilir.
Sırada ne var?
- Derinlik verilerine erişmenin farklı yollarını gösteren ARCore Depth Lab'e göz atın.