Platforma özel kılavuzlar
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
Gerçek Olmayan Motor
Bir AR uygulaması geliştiricisi olarak, kullanıcılarınız için sanal gerçeklikle gerçek deneyimi kusursuz bir şekilde harmanlamak istiyorsunuz. Kullanıcı sahnesine sanal bir nesne yerleştirdiğinde, bunun gerçek dünyaya aitmiş gibi görünmesini ister. Kullanıcıların mobilya satın alması için bir uygulama oluşturuyorsanız, satın alacakları koltuğun alanlarına 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 görsellerin sağladığı bilgileri, sürükleyici ve gerçekçi kullanıcı deneyimleri sunmak 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 modülü kendi projelerinizde kullanabileceğiniz bazı yöntemler sunulmuştur. 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 kaynaklıdır.
Kapatmayı etkinleştir
Örtmek veya gerçek dünyadaki nesnelerin arkasında sanal bir nesneyi doğru şekilde oluşturmak, sürükleyici bir AR deneyimi için olmazsa olmazdır. Kapının yanında sandık bulunan bir sahnede kullanıcının yerleştirmek isteyebileceği sanal bir Andy düşünün. Kaplama olmadan oluşturulan Andy, bagajın 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 çevresel unsurlara göre ne kadar uzakta olduğunu anlarsanız Andy'yi kapama efektiyle doğru bir şekilde göstererek bulunduğu ortamın çok daha gerçekçi görünmesini sağlayabilirsiniz.
Bir sahneyi dönüştürme
Koltuklarınızın kol ve yastıklarına uzanmak için sanal kar taneleri oluşturarak veya sisli bir siste oturma odasını sallayarak kullanıcınızı yeni ve etkileyici bir dünyaya davet edin. Derinlik özelliğini kullanarak sanal ışıkların etkileşime girdiği, arkasına saklandığı ve gerçek nesneleri aydınlattığı sahneler oluşturabilirsiniz.
Mesafe ve alan derinliği
Bir şeyin çok uzakta olduğunu mu göstermeniz gerekiyor? Depth API ile mesafe ölçümünü kullanabilir ve sahnenin arka planını veya ön planını bulanıklaştırma gibi alan derinliği efektleri ekleyebilirsiniz.
AR nesneleriyle kullanıcı etkileşimlerini etkinleştirme
Sanal içeriğin çarpışma ve fizik kuralları aracılığıyla gerçek dünyayla etkileşim kurmasını sağlayarak kullanıcıların uygulamanız üzerinden 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ışmayı oyun fiziğiyle birleştirdiğinizde bir deneyimi hayata geçirebilirsiniz.
İsabet testlerini iyileştirin
Derinlik, isabet testi sonuçlarını iyileştirmek için kullanılabilir. Uçak vuruş testleri yalnızca doku içeren 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
Depth API yalnızca aşağıdakileri destekleyecek işlem gücüne sahip cihazlarda desteklenir içerir ve ARCore'da manuel olarak etkinleştirilmelidir. Derinliği etkinleştir.
Bazı cihazlar, uçuş süresi gibi bir donanım derinliği sensörü de sağlayabilir. (ToF) sensörü. Ayrıntılı bilgi için ARCore destekli cihazlar Depth API'yi destekleyen cihazların güncel listesi ve ToF sensörü gibi desteklenen bir donanım derinlik sensörüne sahip olmalıdır.
Derinlikli resimler
Depth API, hareket derinliği algoritması kullanarak dünyanın 3D görünümünü sunan derinlikli görüntüler oluşturur. Derinlikli bir resimdeki her piksel, sahnenin kameradan ne kadar uzakta olduğunun ölçümüyle ilişkilendirilir. Bu algoritma, farklı açılardan birden fazla cihaz görüntüsü 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 olabilecek 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 mod, mevcut derinlik görüntüsünü iyileştirir ve kamera hareket etmezken bile derinlik sağlar. 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 görüntüsünün görselliği gösterilmektedir. Kırmızı alanlar kameraya daha yakın, mavi renkli alanlar ise daha uzak.
Hareketten derinlik
Derinlik verileri, kullanıcı cihazını hareket ettirdiğinde kullanılabilir hale gelir. Algoritma, 0 ila 65 metrelik mesafeden güvenilir ve doğru derinlik tahminleri alabilir. 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.
Derinlikli görüntüler edinme
Depth API ile her kamera karesiyle eşleşen derinlikli görüntüler alabilirsiniz. Edinilen bir derinlik resmi, kamerayla aynı zaman damgası ve görüş alanına sahiptir. Derinlik, hareketten elde edildiği için yalnızca kullanıcı cihazını hareket ettirmeye başladıktan sonra geçerli derinlik verileri kullanılabilir. Beyaz duvarlar gibi çok az özelliği olan veya hiç özelliği olmayan yüzeyler, tam derinlikle ilişkilendirilir.
Sırada ne var?
- Derinlik verilerine erişmenin farklı yollarını gösteren ARCore Depth Lab'e göz atın.