Scene Viewer adalah penampil imersif yang memungkinkan pengalaman 3D dan AR dari situs atau aplikasi Android Anda. Scene Viewer memungkinkan pengguna perangkat seluler Android dengan mudah melihat pratinjau, menempatkan, melihat, dan berinteraksi dengan model 3D yang dihosting di web dalam lingkungan mereka.
Sebagian besar browser Android mendukung Scene Viewer. Scene Viewer telah berhasil diterapkan oleh banyak partner Google untuk mendukung pengalaman 3D dan AR secara andal. Fitur ini juga mendukung pengalaman ini untuk Google Penelusuran.
Penerapannya mudah:
Pengalaman berbasis web hanya memerlukan link yang diformat dengan benar di halaman web.
Pengalaman berbasis aplikasi hanya memerlukan integrasi beberapa baris kode Java.
Persyaratan runtime Scene Viewer
Untuk menikmati AR dengan Scene Viewer, pengguna harus memiliki:
- Perangkat yang didukung ARCore yang menjalankan Android 7.0 Nougat (Level API 24) atau yang lebih baru.
- Versi Layanan Google Play untuk AR yang terbaru (terkini). Layanan ini diinstal dan diupdate secara otomatis di sebagian besar perangkat yang didukung ARCore.
- Aplikasi Google versi terbaru. Aplikasi ini sudah diinstal sebelumnya dan juga otomatis diupdate di sebagian besar perangkat yang didukung ARCore.
Untuk menangani kasus saat Layanan Google Play untuk AR atau aplikasi Google tidak ada atau versi yang diinstal terlalu lama, Anda dapat menentukan URL penggantian yang meluncurkan pengalaman alternatif, misalnya, halaman web, pesan error, atau pengalaman penggantian yang telah Anda buat.
Kasus penggunaan yang didukung
| Kasus penggunaan yang dimaksudkan | Aplikasi yang direkomendasikan | Manfaat |
|---|---|---|
|
Dari tombol atau link di situs atau aplikasi Android, luncurkan tampilan AR native model 3D.
Jika Layanan Google Play untuk AR tidak ada di perangkat, kembali dengan baik untuk menampilkan model dalam mode 3D yang didukung Scene Viewer. |
Luncurkan Scene Viewer menggunakan intent eksplisit ke
paket Google Penelusuran, dan pilih setelan mode
yang sesuai untuk menampilkan model 3D.
|
|
|
Dari tombol atau link di situs atau aplikasi Android, luncurkan tampilan AR native
model 3D.
Jika Layanan Google Play untuk AR tidak ada di perangkat, kontrol perilaku penggantian. |
Luncurkan Scene Viewer menggunakan intent eksplisit ke
Layanan Google Play untuk AR (ARCore), dan pilih setelan
mode yang sesuai untuk menampilkan model 3D.
|
Gunakan penampil model 3D Anda sendiri atau berikan respons penggantian lain dengan desain Anda sendiri untuk kasus penggunaan non-AR. |
| Menampilkan tampilan inline model 3D di situs Anda, dan memungkinkan pengguna memasuki mode AR native layar penuh secara manual. | Gunakan <model-viewer> atau penampil 3D berbasis web lainnya untuk meluncurkan Scene Viewer yang menampilkan model 3D secara native dalam AR. |
|
Meluncurkan Scene Viewer menggunakan intent eksplisit (3D atau AR)
Untuk mendukung berbagai perangkat Android, gunakan intent Android eksplisit untuk meluncurkan Scene Viewer. Intent eksplisit dapat dipicu dari halaman HTML atau aplikasi Android native. Intent akan ditangani oleh aplikasi Google yang telah diinstal sebelumnya di perangkat Android yang didukung ARCore.
Bergantung pada parameter intent yang dikonfigurasi dan kemampuan perangkat, model 3D interaktif dapat ditempatkan di lingkungan pengguna atau kembali ditampilkan di penampil 3D.
Jika Layanan Google Play untuk AR ada di perangkat dan sudah diupdate, Scene Viewer akan menampilkan model dalam tampilan native AR atau tampilan 3D.
Jika Layanan Google Play untuk AR tidak ada, atau bukan yang terbaru, Scene Viewer akan melakukan penggantian yang lancar untuk menampilkan model dalam tampilan 3D.
Jika model 3D tidak dapat ditampilkan, misalnya karena aplikasi Google tidak diinstal, atau merupakan versi lama, parameter
S.browser_fallback_urlakan digunakan untuk menampilkan halaman web pengganti.
Meluncurkan Scene Viewer dari HTML atau Java
HTML
Untuk memicu intent eksplisit dari HTML, gunakan sintaksis berikut:
<a href="intent://arvr.google.com/scene-viewer/1.0?file=https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/Avocado/glTF/Avocado.gltf#Intent;scheme=https;package=com.google.android.googlequicksearchbox;action=android.intent.action.VIEW;S.browser_fallback_url=https://developers.google.com/ar;end;">Avocado</a>
Java
Untuk memicu intent eksplisit dari Java, gunakan kode berikut:
Intent sceneViewerIntent = new Intent(Intent.ACTION_VIEW);
sceneViewerIntent.setData(Uri.parse("https://arvr.google.com/scene-viewer/1.0?file=https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/Avocado/glTF/Avocado.gltf"));
sceneViewerIntent.setPackage("com.google.android.googlequicksearchbox");
startActivity(sceneViewerIntent);
Pembuatan versi intent
Versi intent ditunjukkan oleh nomor versi setelah
arvr.google.com/scene-viewer. Misalnya, rilis awal menggunakan
versi 1.0. Jika fitur Scene Viewer yang lebih baru diperlukan, Anda
dapat meluncurkan Scene Viewer dengan versi maksud yang lebih tinggi yang sesuai dengan
fitur yang Anda perlukan.
Intent versi 1.1 menambahkan dukungan untuk link intent://, yang dapat diluncurkan
langsung ke aplikasi Android, bukan ke URL. Jika Anda ingin Scene Viewer menjamin bahwa fungsi ini tersedia saat diluncurkan, dan gagal diluncurkan jika tidak, luncurkan scene viewer dengan intent ke
intent://arvr.google.com/scene-viewer/1.1.
Parameter intent yang didukung
Parameter berikut didukung untuk intent eksplisit ke paket Google Penelusuran.
| Parameter Niat | Nilai yang Diizinkan | Komentar |
|---|---|---|
file (wajib diisi) |
URL yang valid | URL ini menentukan file glTF atau glb yang harus dimuat ke dalam Scene Viewer. Parameter ini harus di-escape URL. |
S.browser_fallback_url (wajib untuk maksud berbasis HTML) |
URL yang valid | Ini adalah fitur Google Chrome yang hanya didukung untuk penerapan berbasis web. Jika aplikasi Google tidak ada di perangkat, URL ini adalah URL yang dibuka oleh Google Chrome. |
mode (opsional) |
3d_preferred (default) |
Scene Viewer menampilkan model dalam mode 3D dengan tombol Lihat di ruang Anda.
Jika Layanan Google Play untuk AR tidak ada di perangkat, tombol Lihat di ruang Anda akan disembunyikan.
|
3d_only |
Scene Viewer diluncurkan dengan model yang ditampilkan dalam mode 3D, meskipun
Layanan Google Play untuk AR ada di perangkat.
Tombol Lihat di ruang Anda tidak pernah ditampilkan.
|
|
ar_preferred |
Scene Viewer diluncurkan dalam mode native AR sebagai mode entri. Pengguna diberi
opsi untuk beralih antara mode AR dan 3D melalui
tombol Lihat di ruang Anda dan Lihat dalam 3D.
Jika Layanan Google Play untuk AR tidak ada, Scene Viewer akan kembali ke mode 3D sebagai mode entri.
|
|
ar_only |
Saat menggunakan nilai ini, Anda harus meluncurkan melalui
intent Android eksplisit
ke com.google.ar.core.
Catatan: Jangan gunakan mode ar_only saat meluncurkan melalui
intent Android eksplisit
ke aplikasi Google.
|
|
link (opsional) |
URL yang valid |
URL untuk halaman web eksternal. Jika ada, tombol akan muncul di
UI yang akan membuka URL ini saat diklik.
|
title (opsional) |
String yang valid |
Nama untuk model. Jika ada, akan ditampilkan di UI.
Nama akan dipotong dengan elipsis setelah 60 karakter.
|
| suara (opsional) | URL yang valid | URL ke trek audio berulang yang disinkronkan dengan animasi pertama yang disematkan dalam file glTF. Harus disediakan bersama glTF dengan animasi yang panjangnya sama. Jika ada, suara akan diulang setelah model dimuat. Parameter ini harus di-escape URL. |
resizable (opsional) |
true (default)
|
Jika disetel ke false, pengguna tidak akan dapat menskalakan model
dalam pengalaman AR. Penskalaan berfungsi normal dalam pengalaman 3D.
|
enable_vertical_placement (opsional) |
false (default)
|
Jika disetel ke true, pengguna akan dapat menempatkan model di permukaan vertikal.
|
Panduan UX
Untuk memberikan UX terbaik bagi pengguna, sebaiknya ajakan bertindak yang terlihat menyampaikan bahwa pengguna akan memasuki lingkungan imersif.
Untuk pengalaman penampil 3D, sebaiknya gunakan teks ajakan (CTA) berlabel Lihat dalam 3D yang terlihat seperti salah satu gambar berikut:
Meluncurkan Scene Viewer menggunakan intent eksplisit ke Layanan Google Play untuk AR (khusus mode AR)
Mode AR di Scene Viewer didukung oleh Layanan Google Play untuk AR.
Untuk memastikan AR tersedia di Scene Viewer, Anda dapat menggunakan intent Android eksplisit dari situs atau aplikasi Android native untuk meluncurkan Scene Viewer melalui com.google.ar.core package dan memberikan browser_fallback_url. Dengan begitu, Anda
dapat memastikan bahwa semua pengguna memiliki pengalaman AR native melalui Scene Viewer atau
pengalaman penggantian yang telah Anda buat sendiri. Misalnya, Anda dapat membuat
pengalaman penggantian seperti penampil 3D Anda sendiri atau pesan error yang baik.
Untuk memicu intent eksplisit dari HTML, gunakan sintaksis berikut:
<a href="intent://arvr.google.com/scene-viewer/1.0?file=https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/Avocado/glTF/Avocado.gltf&mode=ar_only#Intent;scheme=https;package=com.google.ar.core;action=android.intent.action.VIEW;S.browser_fallback_url=https://developers.google.com/ar;end;">Avocado</a>;
Untuk memicu intent eksplisit dari Java, gunakan kode berikut:
Intent sceneViewerIntent = new Intent(Intent.ACTION_VIEW);
Uri intentUri =
Uri.parse("https://arvr.google.com/scene-viewer/1.0").buildUpon()
.appendQueryParameter("file", "https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/Avocado/glTF/Avocado.gltf")
.appendQueryParameter("mode", "ar_only")
.build();
sceneViewerIntent.setData(intentUri);
sceneViewerIntent.setPackage("com.google.ar.core");
startActivity(sceneViewerIntent);
Parameter intent yang didukung
Parameter berikut didukung untuk maksud eksplisit ke paket Layanan Google Play untuk AR.
| Parameter Niat | Nilai yang Diizinkan | Komentar |
|---|---|---|
browser_fallback_url (wajib untuk maksud berbasis HTML) |
URL yang valid | Fitur ini hanya didukung untuk penerapan berbasis web. Jika Layanan Google Play untuk AR tidak ada di perangkat atau belum diupdate, URL ini akan dituju. |
mode (opsional) |
ar_only |
Scene Viewer selalu meluncurkan model 3D dalam tampilan AR native dan menyembunyikan
UI untuk beralih ke penampil 3D Scene Viewer.
Jika Layanan Google Play untuk AR tidak ada, Scene Viewer akan meluncurkan URL yang Anda tetapkan di browser_fallback_url untuk pengalaman berbasis web.
Untuk pengalaman berbasis aplikasi, Scene Viewer akan beralih ke pengalaman alternatif, seperti pesan error atau pengalaman lain yang telah Anda buat sendiri.
|
ar_preferred |
Scene Viewer diluncurkan dalam mode native AR sebagai mode entri dan memberi pengguna
opsi untuk beralih antara mode AR dan 3D melalui tombol Lihat di ruang Anda
dan Lihat dalam 3D.
Jika Layanan Google Play untuk AR tidak ada, Scene Viewer akan meluncurkan URL yang Anda tetapkan di browser_fallback_url untuk pengalaman berbasis web.
Untuk pengalaman berbasis aplikasi, Scene Viewer akan beralih ke pengalaman alternatif, seperti pesan error atau pengalaman lain yang telah Anda buat sendiri.
|
|
link (opsional) |
URL yang valid |
URL untuk halaman web eksternal. Jika ada, tombol akan muncul di
UI yang akan mengarahkan ke URL ini saat diklik.
Versi 1.1 menambahkan dukungan untuk link intent:// di Scene Viewer agar tombol kunjungan Scene Viewer dapat memicu langsung ke aplikasi lain. Perhatikan bahwa ini harus digunakan dengan hati-hati dan hanya boleh ditentukan jika pengendali intent dijamin ada untuk intent yang diberikan. |
title (opsional) |
String yang valid |
Nama untuk model. Jika ada, akan ditampilkan di UI.
Nama akan dipotong dengan elipsis setelah 60 karakter.
Versi 1.1 menambahkan dukungan untuk penataan gaya html konten judul, dengan jumlah teks yang diizinkan secara arbitrer. Perhatikan bahwa judul harus di-escape URL. |
sound (opsional) |
URL yang valid | URL ke trek audio berulang yang disinkronkan dengan animasi pertama yang disematkan dalam file glTF. File ini harus disediakan bersama glTF dengan animasi yang panjangnya sama. Jika ada, suara akan diulang setelah model dimuat. |
resizable (opsional) |
true (default)
|
Jika disetel ke false, pengguna tidak akan dapat menskalakan model
dalam pengalaman AR. Penskalaan berfungsi normal dalam pengalaman 3D.
|
disable_occlusion (opsional) |
false (default)
|
Jika disetel ke true, objek yang ditempatkan dalam adegan akan selalu muncul
di depan objek dunia nyata dalam adegan. Lihat
[Mengaktifkan oklusi](/ar/develop/depth#enable_occlusion) untuk mengetahui informasi selengkapnya.
|
Panduan UX
Untuk memberikan UX terbaik bagi pengguna, sebaiknya ikuti pedoman ini.
Untuk pengalaman AR, teks ajakan (CTA) yang terlihat harus menyampaikan bahwa pengguna akan memasuki lingkungan imersif. Sebaiknya gunakan tombol ajakan (CTA) Lihat di ruang Anda:
Pengguna mungkin belum menginstal Layanan Google Play untuk AR di perangkat mereka. Berikut cara
<model-viewer>menangani penggantian dan Anda dapat menggunakan cuplikan kode tersebut sebagai titik awal.// Check whether this is an Android device. const isAndroid = /android/i.test(navigator.userAgent); // This fallback URL is used if the Google app is not installed and up to date. const fallbackUrl = 'https://arvr.google.com/scene-viewer?file=https%3A%2F%2Fstorage.googleapis.com%2Far-answers-in-search-models%2Fstatic%2FTiger%2Fmodel.glb&link=https%3A%2F%2Fgoogle.com&title=Tiger'; // This intent URL triggers Scene Viewer on Android and falls back to // fallbackUrl if the Google app is not installed and up to date. const sceneViewerUrl = 'intent://arvr.google.com/scene-viewer/1.0?file=https://storage.googleapis.com/ar-answers-in-search-models/static/Tiger/model.glb&title=Tiger#Intent;scheme=https;package=com.google.android.googlequicksearchbox;action=android.intent.action.VIEW;S.browser_fallback_url=' + fallbackUrl + ';end;'; // Create a link. var a = document.createElement('a'); a.appendChild(document.createTextNode('Tiger')); // Set the href to the intent URL on Android and the fallback URL // everywhere else. a.href = isAndroid ? sceneViewerUrl : fallbackUrl; // Add the link to the page. document.body.appendChild(a);
Menggunakan <model-viewer> untuk meluncurkan Scene Viewer
Anda dapat mengaktifkan Scene Viewer dari situs Anda dengan menyertakan komponen web
<model-viewer> dengan atribut
ar.
<model-viewer ar
ar-modes="scene-viewer webxr quick-look"
alt="A 3D model of an astronaut."
src="Astronaut.gltf"></model-viewer>
Jika dilihat di perangkat Android yang didukung ARCore, situs yang menyertakan komponen
<model-viewer> dengan atribut ar akan menampilkan tombol seperti yang ditunjukkan dalam
contoh berikut.
Saat mode scene-viewer digunakan dalam ar-modes,
mode ini akan beralih ke tampilan AR native dan mengundang pengguna untuk menempatkan model di lingkungan mereka menggunakan Scene Viewer.
Jika Layanan Google Play dengan AR tidak ada, mengetuk tombol ini akan menampilkan model di penampil 3D <model-viewer>.
Lihat dokumentasi <model-viewer> untuk mengetahui informasi selengkapnya tentang cara mulai menggunakan <model-viewer>.
Persyaratan file untuk model
Scene Viewer memiliki dukungan dan batasan berikut untuk model.
| Dukungan format file | glTF 2.0/glb, menggunakan ekstensi berikut:
|
| Animasi |
glTF
berisi beberapa animasi, Scene Viewer hanya memutar animasi pertama.
|
| Batas yang direkomendasikan |
Performa keseluruhan aset bergantung pada penetapan batasan dan
membuat kompromi antara verteks, materi, resolusi tekstur, mesh per
materi, dan faktor lainnya. Gunakan panduan berikut untuk mengoptimalkan aset Anda.
|
| Dukungan shadow | Bayangan keras dirender secara otomatis oleh Scene Viewer saat menempatkan objek, jadi sebaiknya jangan menggabungkan bayangan ke dalam model Anda. |
| Dukungan tekstur |
|
| Material | PBR |
| Memuat file | HTTPS |
| Scene |
|
Menggunakan alat pratinjau untuk memvalidasi model 3D Anda
Untuk memastikan file model 3D Anda akan ditampilkan dengan benar di Scene Viewer, gunakan alat pratinjau online kami untuk memvalidasi file di PC Anda.
Memvalidasi model 3D Anda
Untuk memvalidasi model, alat penampil pratinjau memerlukan satu file glb atau glTF, file bin dan gambar terkait, serta file audio opsional. File audio akan diulang bersama dengan animasi 0.
Anda dapat memilih beberapa file satu per satu, atau secara opsional memasukkan glb atau glTF dan file terkaitnya ke dalam file zip. (Metode file ZIP tidak mendukung file audio.)
Untuk memvalidasi model 3D Anda:
Buka alat pratinjau online di browser.
Gunakan salah satu metode berikut untuk menambahkan file ke alat penampil pratinjau:
Tarik lalu lepas. Pilih file glb atau glTF dan semua file terkaitnya (atau file zip yang berisi file ini), lalu tarik file atau file zip yang dipilih ke alat penampil.
Dari alat pratinjau. Di alat peninjau, pilih Scene Viewer > Load File. Pilih file glb atau glTF dan semua file terkaitnya (atau file zip yang berisi file-file ini), lalu klik Buka.
Setelah Anda memuat file yang terdiri dari model 3D ke alat penampil pratinjau, konsol di bagian bawah browser akan menampilkan hasilnya, termasuk pesan error.
Menambahkan model 3D untuk validasi
Untuk memvalidasi model 3D, tambahkan file yang membentuk model 3D ke alat Editor Model kami.
Untuk memvalidasi model, penampil memerlukan file glb atau glTF model, file bin dan gambar terkait, serta file audio opsional. Anda dapat memilih beberapa file satu per satu atau menambahkan satu file zip.
Saat menambahkan file zip, penampil akan memuat glb atau glTF pertama yang ditemukannya, serta file bin dan gambar terkait dalam file zip tersebut.
Buka alat Editor Model di browser.
Gunakan salah satu metode berikut untuk menambahkan file ke alat penampil pratinjau:
Untuk menarik lalu melepas file untuk validasi, pilih beberapa file glb atau glTF dan file terkait (atau pilih file zip yang berisi file ini), lalu tarik ke alat penampil.
Pilih file dari alat pratinjau. Di alat peninjau, pilih Scene Viewer > Load File. Pilih beberapa file glb atau glTF dan semua file terkaitnya (atau file zip yang berisi file ini), lalu klik Buka.
Error validasi
| Kode Error | Keparahan | Pesan | Nilai yang Didukung Saat Ini |
|---|---|---|---|
INVALID_INPUT_FILE_EXTENSION |
Error | File input [filename] memiliki ekstensi file yang tidak didukung oleh validator. | ['.glb', '.gltf'] |
REC_INPUT_BINARY_SIZE_EXCEEDED |
Peringatan | Input pengguna yang diberikan memiliki ukuran biner yang melebihi batas yang direkomendasikan oleh spesifikasi Scene Viewer, yaitu rekomendasi batas ukuran sebesar [size] MB. | 10 |
MAX_INPUT_BINARY_SIZE_EXCEEDED |
Error | Input pengguna yang diberikan memiliki ukuran biner yang melebihi batas maksimum yang didukung oleh spesifikasi Scene Viewer, yaitu batas ukuran maksimum sebesar [size] MB. | 15 |
UNSUPPORTED_GLTF_EXTENSION_USED |
Error | Ekstensi [ext] dalam glTF tidak didukung oleh spesifikasi Scene Viewer. | ['KHR_materials_pbrSpecularGlossiness', 'KHR_materials_unlit', 'KHR_texture_transform'] |
ANIMATION_LIMIT_EXCEEDED |
Error | Jumlah animasi dalam glTF melebihi batas yang didukung oleh spesifikasi Scene Viewer, yaitu maksimum [num] animasi. | 1 |
MORPH_TARGET_USED |
Error | glTF berisi target morph, yang tidak didukung oleh spesifikasi Scene Viewer. | |
MATERIAL_LIMIT_EXCEEDED |
Peringatan | Jumlah materi dalam glTF melebihi batas yang direkomendasikan oleh spesifikasi Scene Viewer, yaitu maksimum [num] materi. | 10 |
TEXTURE_RESOLUTION_LIMIT_EXCEEDED |
Peringatan | Resolusi gambar pada indeks [idx] di glTF melebihi batas yang direkomendasikan oleh spesifikasi Scene Viewer, yaitu resolusi maksimum sebesar [res] x [res]. | 2048 x 2048 |
UV_LIMIT_EXCEEDED |
Error | Jumlah UV per mesh dalam glTF melebihi batas yang didukung oleh spesifikasi Scene Viewer, yaitu maksimum [num] UV per mesh. | 1 |
VERTEX_COLOR_USED |
Error | glTF berisi warna verteks, yang tidak didukung oleh spesifikasi Scene Viewer. | |
JOINT_LIMIT_EXCEEDED |
Error | Jumlah gabungan dalam glTF melebihi batas yang didukung oleh spesifikasi Scene Viewer, yaitu maksimum [num] gabungan. | 254 |
TRIANGLE_LIMIT_EXCEEDED |
Peringatan | Jumlah segitiga dalam glTF melebihi batas yang direkomendasikan oleh spesifikasi Scene Viewer, yaitu maksimum [num] segitiga. | 100.000 |
PRIMITIVE_MODE_UNSUPPORTED |
Error | Mode primitif [mode] tidak didukung oleh spesifikasi Scene Viewer. | {4 : Triangle List, 5 : Triangle Strip, 6 : Triangle Fan} |
MISSING_PBR_METALLIC_ROUGHNESS |
Informasi |
Material pada indeks [idx] tidak memiliki properti pbrMetallicRoughness. Properti ini tidak diperlukan oleh spesifikasi Scene Viewer jika faktor logam
dan tingkat kekasaran digunakan sebagai gantinya. Jika keduanya tidak digunakan, material akan menggunakan nilai default, yang dapat menyebabkan perilaku yang tidak diinginkan.
|





