ARCore 1.17.0'a eklendi
Çoğu uygulamanın, oluşturma için yalnızca tek bir kamera çerçevesinin arabelleğe alınması gerekir. Ancak, ARCore, birden fazla kamera karesinin sabit boyutlu bir öğede arabelleğe alınmasını da destekler doku sırası oluşturun.
Çok iş parçacıklı oluşturma ardışık düzenine sahip uygulamalar, performansı iyileştirmek için arabelleğe alma özelliğini kullanabilir oluşturma performansı. Arabelleğe alma, uygulamaların kareleri daha hızlı ve kolay bir şekilde tutarlı kare hızı; yavaş kullanıcı arayüzü oluşturma.
Preconditions
Kamera görüntüsü arabelleğe alma özelliği, aşağıdaki koşullardan herhangi birinde etkinleştirilir:
Uygulama tarafından etkinleştirildiğinde
Session.setCameraTextureNames(ids)
numaralı telefonu arayarak izin verir.Dahili arabelleğe alma gerektiren bir veya daha fazla ARCore özelliği olduğunda etkin olarak ayarlanmıştır. Şu anda bu özellikler arasında aşağıdakiler bulunmaktadır:
- Artırılmış Resimler
- Genişletilmiş Yüzler
Aşağıdaki işlemler için dahili arabelleğe alma gerektiren ARCore destekli belirli cihazlarda veya düzgün çalışmayabilir.
Kare gecikmesinin etkin olup olmadığını belirle
Belirli bir cihazda ve AR oturumunda kare arabelleğe alma (ayrıca)
(kare gecikmesi olarak bilinir) etkin değilse adb
logcat çıkışını kullanın:
# Camera frame buffering is turned off when frame delay is zero.
adb logcat | grep 'Update Frame Delay'
… I native : session.cc:3141 Update Frame Delay to 0 frames.
# Camera frame buffering is turned on when frame count is non-zero.
# Note: The size of the buffer can vary over time.
adb logcat | grep 'Update Frame Delay'
… I native : session.cc:3141 Update Frame Delay to 6 frames.
…
… I native : session.cc:3141 Update Frame Delay to 4 frames.
…
… I native : session.cc:3141 Update Frame Delay to 2 frames.
Bellek
Arabelleğe alınan her ek kamera çerçevesi bellek kullanımını artırır. Örneğin, 1080p doku yaklaşık 6 MB bellek tüketir ( 1920 x 1080 x üç bayt RGB verisi çözünürlüğe sahip olmalıdır).
Performansla ilgili konular
Birden fazla kamera çerçevesi kullanılmasının ve çok iş parçacıklı oluşturma ardışık düzeninin kullanılması garanti edilmez. her durumda daha iyi performans gösterir. Aşağıdaki faktörler, gerçek dünya performansı:
Uygulama oluşturma ardışık düzeni
Uygulama iş parçacığı modeli
Cihazın CPU mimarisi
İşletim sisteminin planlama sistemi
Uygulamanız ek kamera çerçevelerinden yararlanamıyorsa performans avantajı elde ettik.
Arabelleğe almayı etkinleştir
ARCore'a gelen kamera karelerinin arabelleğe alınması için hangi dokuların kullanılacağını bildirmek için
Bir veya daha fazla doku kimliğinden oluşan bir dizi sağlamak için Session.setCameraTextureNames(ids)
.
Bu işlev yalnızca oturum oluşturulduktan sonra ve genellikle yalnızca oturum oluşturulduktan sonra çağrılır
bir kez.
ARCore, her Session.update()
çağrısı sırasında
sıraya sokmak anlamına gelir. Uygulamanız yalnızca tek bir doku kimliği ayarlıyorsa
her seferinde aynı dokunun üzerine yazılır.
İlişkilendirilen doku kimliğini belirlemek için Frame.getCameraTextureName()
işlevini kullanın
.