Derinlik, gerçekçilik katar

Platforma özel kılavuzlar

Artırılmış gerçeklik (AR) uygulaması geliştiricisi olarak, sanal gerçeklik ile gerçek deneyimi kullanıcılarınız için sorunsuz bir şekilde bir araya getirmek istersiniz. Kullanıcı, sahnesine bir sanal 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 kullanıcılarınızın, satın almak üzere oldukları koltuğun alanlarına sığacağından emin olmalarını istersiniz.

Depth API, cihaz kamerasının bir sahnedeki gerçek nesnelerin boyutunu ve şeklini anlamasına yardımcı olur. Derinlikli resimler veya derinlik haritaları oluşturarak uygulamalarınıza gerçekçilik katmanı ekler. Derinlikli bir resmin 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, iyileştirilmiş yoğun içerik ve artırılmış gerçeklik (AR) deneyimlerinin gerçekçiliğini artıran yeni etkileşimleri destekleyebilir. Bunu kendi projelerinizde kullanabileceğiniz bazı yöntemleri aşağıda görebilirsiniz. Derinliğin işleyiş şekliyle ilgili örnekler için, derinlik verilerine erişmenin farklı yollarını gösteren ARCore Derinlik Laboratuvarı'ndaki örnek sahneleri inceleyin. Bu Unity uygulaması GitHub'da açık kaynaklıdır.

Örtmeyi etkinleştir

Gerçek nesnelerin ardındaki bir sanal nesneyi kapatma veya doğru şekilde oluşturma, üç boyutlu bir AR deneyimi için çok önemlidir. Kullanıcıların, kapı yanında bagaj içeren bir sahneye yerleştirmek isteyebileceği sanal bir Andy'yi düşünün. Örtünmeden oluşturulan Andy, gerçekçi olmayan bir şekilde gövdenin kenarıyla çakışır. Bir sahnenin derinliğini kullanır ve sanal Andy'nin ahşap gövde gibi çevredeki öğelere göre ne kadar uzakta olduğunu anlarsanız, Andy'yi kapatma özelliğiyle doğru bir şekilde oluşturabilir ve böylece, çevresinde çok daha gerçekçi bir görünüm elde edebilirsiniz.

Sahneleri dönüştürme

Koltuğunun kollarına ve yastıklarına oturmak için sanal kar taneleri oluşturarak veya oturma odasını sisli bir yere yerleştirerek kullanıcılarınızı yepyeni, etkileyici bir dünyaya davet edin. Derinliği kullanarak sanal ışıkların etkileşimde bulunduğu, arkalarına saklandığı ve gerçek nesneleri aydınlattığı bir sahne oluşturabilirsiniz.

Alan mesafesi ve derinliği

Bir şeyin çok uzakta olduğunu mu göstermeniz gerekiyor? Depth API ile mesafe ölçümünü kullanabilir ve bir 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ştir

Sanal içeriğin çarpışma ve fizik kuralları üzerinden 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ı veya sanal paintball'ların gerçek dünyadaki bir ağacın üzerine çarpıp sıçrmasını sağlayın. Derinliğe dayalı çarpışmayı oyun fiziğiyle birleştirdiğinizde bir deneyime hayat verebilirsiniz.

İsabet testlerini iyileştirin

Derinlik, isabet testi sonuçlarını iyileştirmek için kullanılabilir. Uçak vuruş testleri sadece dokulu düzlemsel yüzeylerde çalışırken, derinlik vuruş testleri daha ayrıntılıdır ve düz olmayan ve düşük dokulu alanlarda bile çalışır. Bunun nedeni, derinlikli isabet testlerinin, bir noktanın doğru derinliğini ve yönünü belirlemek için olay yerinden alınan derinlik bilgilerini kullanmasıdır.

Aşağıdaki örnekte, yeşil Andy'ler standart uçak isabet testlerini, kırmızı Andy'ler ise derinlikli isabet testlerini temsil etmektedir.

Cihaz uyumluluğu

Depth API yalnızca derinliği destekleyen 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ştirilmelidir.

Bazı cihazlar, uçuş süresi (ToF) sensörü gibi bir donanım derinlik sensörü de sağlayabilir. Depth API'yi destekleyen cihazların güncel bir 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.

Derinlik resimleri

Depth API, dünyanın 3D görünümünü sunan derinlikli resimler oluşturmak için hareketten derinlik algoritması kullanır. 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 resmini çeker ve kullanıcı telefonunu hareket ettirdikçe her piksele olan mesafeyi tahmin etmek için bunları karşılaştırır. Kullanıcı çok az hareket etse bile derin işlemeyi artırmak için seçici olarak makine öğrenimini kullanır. Ayrıca, bir kullanıcının cihazındaki ek donanımlardan da yararlanır. Cihazda ToF gibi özel bir derinlik sensörü varsa algoritma, kullanılabilir tüm kaynaklardan gelen verileri otomatik olarak birleştirir. Bu, mevcut derinlikli resmi geliştirir ve kamera hareket etmiyorken bile derinlik sağlar. Beyaz duvarlar gibi çok az özelliği olan ya da hiç özelliği olmayan yüzeylerde veya hareketli insanların ya da nesnelerin bulunduğu dinamik sahnelerde daha iyi derinlik sağlar.

Aşağıdaki resimlerde, duvarında bir bisiklet bulunan koridorun kamera görüntüsü ve kamera görüntülerinden oluşturulan derinlik görüntüsünün görselleştirmesi gösterilmektedir. Kırmızı 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 alabilir. En doğru sonuçlar, cihaz gerçek dünyadan yarım metre ila yaklaşık beş metre uzakta olduğunda elde edilir. Kullanıcıyı cihazını daha fazla hareket etmeye teşvik eden deneyimler daha iyi ve daha iyi sonuçlar alır.

Derinlikli resimler edinme

Depth API ile her kamera çerçevesiyle eşleşen derinlikli görüntüler alabilirsiniz. Edinilen derinlik görüntüsü, kamerayla aynı zaman damgasına ve görüş alanına sahiptir. Derinlik hareketten öğrenildiği için geçerli derinlik verileri yalnızca kullanıcı cihazını hareket ettirmeye başladıktan sonra kullanılabilir. Beyaz duvarlar gibi çok az özelliği olan ya da hiç özelliği olmayan yüzeylerin derinliği tam olarak olmayabilir.

Sonraki adımlar