ArSceneView

class publik ArSceneView

SurfaceView yang terintegrasi dengan ARCore dan merender tampilan.

Konstanta Turunan

Kolom Turunan

Konstruktor Publik

ArSceneView(konteks Context)
Membuat objek ArSceneView dan mengikatnya ke Konteks Android.
ArSceneView(konteks Context, AttributeSet)
Membuat objek ArSceneView dan mengikatnya ke Konteks Android.

Metode Publik

Bingkai
getArFrame()
Menampilkan ARCore Frame terbaru jika tersedia.
int
getCameraStreamRenderPriority()
Dapatkan prioritas render yang mengontrol urutan rendering streaming kamera.
PlaneRenderer
getPlaneRenderer()
Menampilkan PlaneRenderer, yang digunakan untuk mengontrol visualisasi bidang.
Sesi
getSession()
Menampilkan Sesi ARCore yang digunakan oleh tampilan ini.
boolean
isEnvironmentalHdrLightingAvailable()
Menampilkan true jika kamera ARCore dikonfigurasi dengan Config.LightEstimationMode.ENVIRONMENTAL_HDR.
boolean
isLightDirectionUpdateEnabled()
Memeriksa apakah sinar matahari diperbarui setiap frame berdasarkan perkiraan pencahayaan HDR Lingkungan.
boolean
void
pause()
Menjeda thread rendering dan sesi ARCore.
CompletableFuture<Void>
pauseAsync(eksekutor Executor)
Panggilan non-pemblokiran untuk menjeda thread rendering dan sesi ARCore.
void
resume()()
Melanjutkan thread rendering dan sesi ARCore.
CompletableFuture<Void>
resumeAsync(Executor eksekutor)
Panggilan yang tidak memblokir untuk melanjutkan thread rendering dan sesi ARCore di latar belakang

Nama ini harus dipanggil dari onResume().

void
setCameraStreamRenderPriority (int prioritas)
Setel prioritas render untuk mengontrol urutan rendering streaming kamera.
void
setLightDirectionUpdateEnabled(boolean isLightDirectionUpdateEnabled)
Menetapkan apakah arah sinar matahari yang dihasilkan dari pencahayaan HDR Lingkungan harus diperbarui setiap frame.
void
setLightEstimationEnabled(boolean aktifkan)
Aktifkan Estimasi Cahaya berdasarkan feed kamera.
void
setupSession(sesi Session)
Menyiapkan tampilan dengan Sesi AR.

Metode Turunan

Konstruktor Publik

publik ArSceneView (konteks Context)

Membuat objek ArSceneView dan mengikatnya ke Konteks Android.

Agar proses rendering berjalan dengan benar, setupSession(Session) harus dipanggil.

Parameter
context Konteks Android untuk digunakan

publik ArSceneView (konteks Context, atribut AttributeSet)

Membuat objek ArSceneView dan mengikatnya ke Konteks Android.

Agar proses rendering berjalan dengan benar, setupSession(Session) harus dipanggil.

Parameter
context Konteks Android untuk digunakan
attrs AttributeSet Android yang akan dikaitkan

Metode Publik

publik Frame getArFrame ()

Menampilkan ARCore Frame terbaru jika tersedia. Frame diperbarui pada awal setiap frame gambar. Pemanggil metode ini tidak boleh mempertahankan referensi ke nilai yang ditampilkan, karena akan tidak valid untuk menggunakan frame ARCore yang dimulai dengan frame berikutnya.

int publik getCameraStreamRenderPriority ()

Dapatkan prioritas render yang mengontrol urutan rendering streaming kamera. Prioritasnya berada antara rentang 0 (dirender terlebih dahulu) dan 7 (dirender terakhir).

Nilai defaultnya adalah 7, yang memaksa streaming kamera untuk dirender terakhir. Hal ini paling baik untuk performa karena mencegah overdraw. Namun, jika menggunakan material sebagai okluder (misalnya, dalam sampel wajah yang ditingkatkan), ini harus diubah. Jika tidak, occluder akan menutupi streaming kamera dan warna hitam akan dirender.

publik PlaneRenderer getPlaneRenderer ()

Menampilkan PlaneRenderer, yang digunakan untuk mengontrol visualisasi bidang.

publik Sesi getSession ()

Menampilkan Sesi ARCore yang digunakan oleh tampilan ini.

boolean publik isEnvironmentalHdrLightingAvailable ()

Menampilkan true jika kamera ARCore dikonfigurasi dengan Config.LightEstimationMode.ENVIRONMENTAL_HDR. Saat mode Pencahayaan HDR Lingkungan diaktifkan, perkiraan cahaya yang dihasilkan akan diterapkan ke Sceneform Scene.

Hasil
  • true jika pencahayaan HDR diaktifkan di Sceneform karena estimasi pencahayaan HDR ARCore diaktifkan.

boolean publik isLightDirectionUpdateEnabled ()

Memeriksa apakah sinar matahari diperbarui setiap frame berdasarkan perkiraan pencahayaan HDR Lingkungan.

Hasil
  • true jika arah sinar matahari diperbarui setiap frame, salah jika tidak.

boolean publik isLightEstimationEnabled ()

Hasil
  • menampilkan true jika perkiraan cahaya diaktifkan.

publik void pause ()

Menjeda thread rendering dan sesi ARCore.

Ini harus dipanggil dari onPause().

public CompletableFuture<Void> pauseAsync (Executor eksekutor)

Panggilan non-pemblokiran untuk menjeda thread rendering dan sesi ARCore.

Ini harus dipanggil dari onPause().

Jika jedaAsync dipanggil saat jeda atau melanjutkan sedang berlangsung, jeda akan diantrekan dan terjadi setelah operasi saat ini selesai.

Parameter
eksekutor
Hasil
  • CompletableFuture yang selesai di thread utama pada jeda telah selesai. Will yang baru akan segera selesai jika Anda tidak dapat melanjutkan resume.

publik void melanjutkan ()

Melanjutkan thread rendering dan sesi ARCore.

Nama ini harus dipanggil dari onResume().

Menampilkan
CameraNotAvailableException jika kamera tidak dapat dibuka

public CompletableFuture<Void> resumeAsync (Executor eksekutor)

Panggilan yang tidak memblokir untuk melanjutkan thread rendering dan sesi ARCore di latar belakang

Nama ini harus dipanggil dari onResume().

Jika dipanggil saat jeda atau resume sedang berlangsung, resume akan diantrekan dan terjadi setelah operasi saat ini selesai.

Parameter
eksekutor
Hasil
  • CompletableFuture selesai di thread utama setelah resume selesai. Masa depan akan diselesaikan secara khusus jika resume tidak dapat dilakukan.

publik void setCameraStreamRenderPriority (int Priority)

Setel prioritas render untuk mengontrol urutan rendering streaming kamera. Prioritasnya berada antara rentang 0 (dirender terlebih dahulu) dan 7 (dirender terakhir).

Nilai defaultnya adalah 7, yang memaksa streaming kamera untuk dirender terakhir. Hal ini paling baik untuk performa karena mencegah overdraw. Namun, jika menggunakan material sebagai okluder (misalnya, dalam sampel wajah yang ditingkatkan), ini harus diubah. Jika tidak, occluder akan menutupi streaming kamera dan warna hitam akan dirender.

Parameter
priority

publik void setLightDirectionUpdateEnabled (boolean isLightDirectionUpdateEnabled)

Menetapkan apakah arah sinar matahari yang dihasilkan dari pencahayaan HDR Lingkungan harus diperbarui setiap frame. Jika salah, arah cahaya akan diperbarui satu kali dan tidak berubah lagi.

Ini dapat digunakan untuk menonaktifkan update arah bayangan jika mengganggu atau tidak diinginkan.

Status default adalah true, dengan arah cahaya matahari yang diperbarui setiap frame.

Parameter
isLightDirectionUpdateEnabled

publik void setLightEstimationEnabled (boolean enable)

Aktifkan Estimasi Cahaya berdasarkan feed kamera. Warna dan intensitas cahaya tidak langsung matahari akan dimodulasi oleh nilai-nilai yang diberikan oleh perkiraan cahaya ARCore. Objek kecil di scene akan terpengaruh.

Parameter
aktifkan disetel ke benar untuk mengaktifkan Estimasi Cahaya atau salah untuk menggunakan perkiraan default, yang merupakan intensitas piksel 1.0 dan nilai koreksi warna putih (1.0, 1.0, 1.0).

publik void setupSession (Sesi)

Menyiapkan tampilan dengan Sesi AR. Metode ini harus dipanggil sekali untuk menyediakan sesi ARCore. Sesi diperlukan agar rendering dapat terjadi.

Sesi ini diharapkan dapat dikonfigurasi dengan mode update LATEST_CAMERA_IMAGE. Tanpa konfigurasi ini, update sesi ARCore dapat memblokir UI Thread yang menyebabkan pengalaman UI yang buruk.

Parameter
sesi sesi ARCore yang akan digunakan untuk tampilan ini