Scene Viewer adalah penampil imersif yang memungkinkan pengalaman 3D dan AR dari situs atau aplikasi Android Anda. Fitur ini memungkinkan pengguna perangkat seluler Android dengan mudah melihat pratinjau, menempatkan, melihat, dan berinteraksi dengan model 3D yang dihosting web di lingkungan mereka.
Sebagian besar browser Android mendukung Scene Viewer. Scene Viewer telah berhasil diterapkan oleh banyak partner Google untuk mendukung pengalaman 3D dan AR dengan andal. Hal 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 menggunakan AR dengan Scene Viewer, pengguna harus memiliki:
- Perangkat yang didukung ARCore yang menjalankan Android 7.0 Nougat (API Level 24) atau yang lebih baru.
- Versi terbaru (terbaru) Layanan Google Play untuk AR. Layanan ini diinstal secara otomatis dan terus diupdate di sebagian besar perangkat yang didukung ARCore.
- Versi aplikasi Google terbaru. Aplikasi ini sudah diinstal sebelumnya dan juga otomatis diupdate di sebagian besar perangkat yang didukung ARCore.
Guna menyediakan 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 ditargetkan | Aplikasi yang direkomendasikan | Manfaat |
---|---|---|
Dari tombol atau link di situs atau aplikasi Android, luncurkan tampilan AR native dari 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
dari 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 fallback lain dari desain Anda sendiri untuk kasus penggunaan non-AR. |
Hosting tampilan inline model 3D di situs Anda, dan izinkan pengguna untuk masuk secara manual ke mode AR native layar penuh. | Gunakan <model-viewer> atau penampil 3D berbasis web lainnya untuk meluncurkan Scene Viewer yang secara native menampilkan model 3D 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 ini 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 dalam penampil 3D.
Jika Layanan Google Play untuk AR ada di perangkat, sebagaimana yang terbaru, 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 dapat kembali menampilkan model dalam tampilan 3D dengan baik.
Jika model 3D tidak dapat ditampilkan, misalnya karena aplikasi Google tidak diinstal, atau merupakan versi lama, parameter
S.browser_fallback_url
akan digunakan untuk menampilkan halaman web penggantian.
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 intent yang lebih tinggi yang sesuai dengan
fitur yang Anda perlukan.
Intent versi 1.1 menambahkan dukungan untuk link intent://
, yang dapat langsung diluncurkan
ke aplikasi Android, bukan ke URL. Jika Anda ingin Scene
Viewer menjamin bahwa fungsi ini tersedia saat diluncurkan, dan gagal
diluncurkan, luncurkan penampil scene dengan intent ke
intent://arvr.google.com/scene-viewer/1.1
.
Parameter intent yang didukung
Parameter berikut didukung untuk intent eksplisit untuk paket Google Penelusuran.
Parameter Intent | Nilai yang Diizinkan | Komentar |
---|---|---|
file (diperlukan) |
URL yang valid | URL ini menentukan file glTF atau glb yang harus dimuat ke Scene Viewer. URL ini harus di-escape URL. |
S.browser_fallback_url (wajib untuk intent berbasis HTML) |
URL yang valid | Ini adalah fitur Google Chrome yang hanya didukung untuk implementasi berbasis web. Jika aplikasi Google tidak ada di perangkat, ini adalah URL yang akan dibuka Google Chrome. |
mode (opsional) |
3d_preferred (default) |
Scene Viewer menampilkan model dalam mode 3D dengan tombol View in your space.
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 akan 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 View in your space dan View in 3D.
Jika Layanan Google Play untuk AR tidak ada, Scene Viewer akan kembali ke mode 3D sebagai mode entri dengan baik. |
|
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 mengarah ke URL ini saat diklik.
|
title (opsional) |
String yang valid |
Nama untuk model. Jika ada, data 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. Nilai ini harus diberikan bersama glTF dengan animasi dengan durasi yang sesuai. Jika ada, suara akan diulang setelah model dimuat. URL ini harus di-escape URL. |
resizable (opsional) |
true (default)
|
Jika ditetapkan ke false , pengguna tidak akan dapat menskalakan model
di pengalaman AR. Penskalaan berfungsi secara normal dalam pengalaman 3D.
|
enable_vertical_placement (opsional) |
false (default)
|
Jika ditetapkan ke true , pengguna akan dapat menempatkan model di permukaan vertikal.
|
Panduan UX
Untuk memberikan UX terbaik bagi pengguna, sebaiknya gunakan pesan ajakan (CTA) yang terlihat untuk menyampaikan bahwa pengguna akan memasuki lingkungan yang imersif.
Untuk pengalaman penampil 3D, sebaiknya pesan 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 menyediakan browser_fallback_url
. Dengan cara ini, Anda
dapat memastikan bahwa semua pengguna memiliki pengalaman AR native melalui Scene Viewer atau
pengalaman penggantian yang telah Anda build sendiri. Misalnya, Anda dapat membuat
pengalaman penggantian seperti penampil 3D sendiri atau pesan error halus.
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 intent eksplisit ke paket Layanan Google Play untuk AR.
Parameter Intent | Nilai yang Diizinkan | Komentar |
---|---|---|
browser_fallback_url (wajib untuk intent berbasis HTML) |
URL yang valid | Ini hanya didukung untuk penerapan berbasis web. Jika Layanan Google Play untuk AR tidak ada di perangkat atau bukan yang terbaru, ini adalah URL yang dibuka. |
mode (opsional) |
ar_only |
Scene Viewer selalu meluncurkan model 3D dalam tampilan AR native dan menyembunyikan
UI apa pun 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 kembali ke pengalaman alternatif
seperti pesan error atau pengalaman lain yang 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 View in your space dan View in 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 kembali ke pengalaman alternatif
seperti pesan error atau pengalaman lain yang Anda buat sendiri.
|
|
link (opsional) |
URL yang valid |
URL untuk halaman web eksternal. Jika ada, tombol akan muncul di
UI yang mengarah ke URL ini saat diklik.
Versi 1.1 menambahkan dukungan untuk link intent:// di Scene Viewer untuk memungkinkan tombol kunjungan Scene Viewer terpicu langsung ke aplikasi lain. Perhatikan bahwa hal ini harus digunakan dengan hati-hati dan hanya boleh ditentukan jika pengendali intent dijamin akan ada untuk intent yang ditentukan. |
title (opsional) |
String yang valid |
Nama untuk model. Jika ada, data akan ditampilkan di UI.
Nama akan dipotong dengan elipsis setelah 60 karakter.
Versi 1.1 menambahkan dukungan untuk gaya HTML konten judul, dengan berapa pun jumlah teks yang diizinkan. 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. Nilai ini harus diberikan bersama glTF dengan animasi dengan durasi yang sesuai. Jika ada, suara akan diulang setelah model dimuat. |
resizable (opsional) |
true (default)
|
Jika ditetapkan ke false , pengguna tidak akan dapat menskalakan model
di pengalaman AR. Penskalaan berfungsi secara normal dalam pengalaman 3D.
|
disable_occlusion (opsional) |
false (default)
|
Jika ditetapkan ke true , objek yang ditempatkan dalam scene akan selalu muncul di depan objek dunia nyata dalam scene. Lihat
[Mengaktifkan oklusi](/ar/Develop/depth#enable_occlusion) untuk informasi selengkapnya.
|
Panduan UX
Untuk memberikan UX terbaik bagi pengguna, sebaiknya ikuti panduan ini.
Untuk pengalaman AR, pesan ajakan (CTA) yang terlihat harus menyampaikan bahwa pengguna akan memasuki lingkungan yang imersif. Sebaiknya gunakan pesan ajakan (CTA) Lihat di ruang Anda:
Ada kemungkinan bahwa pengguna belum menginstal Layanan Google Play untuk AR di perangkat mereka. Berikut adalah cara
<model-viewer>
menangani penggantian dan Anda dapat menggunakan potongan 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 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>
Saat 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 di ar-modes
,
mode akan beralih ke tampilan AR native dan mengundang pengguna untuk menempatkan model di lingkungannya menggunakan Scene Viewer.
Jika Layanan Google Play dengan AR tidak ada, mengetuk tombol ini akan menampilkan
model dalam penampil 3D <model-viewer>
.
Lihat dokumentasi <model-viewer>
guna mendapatkan informasi selengkapnya tentang cara memulai <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 akan memutar animasi pertama.
|
Batas yang direkomendasikan |
Performa keseluruhan aset bergantung pada penetapan batasan dan
melakukan penyesuaian antara verteks, material, resolusi tekstur, mesh per
material, dan faktor lainnya. Gunakan panduan berikut untuk mengoptimalkan aset Anda.
|
Dukungan bayangan | Bayangan keras otomatis dirender oleh Scene Viewer saat menempatkan objek, jadi sebaiknya jangan sertakan bayangan ke dalam model Anda. |
Dukungan tekstur |
|
Material | PBR |
Pemuatan file | HTTPS |
Scene |
|
Menggunakan alat pratinjau untuk memvalidasi model 3D Anda
Untuk memastikan file model 3D Anda 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 pratinjau memerlukan satu file glb atau glTF, file gambar dan bin terkait, serta file audio opsional. File audio akan diputar bersama dengan animasi 0.
Anda dapat memilih beberapa file sekaligus, atau secara opsional menempatkan 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 pratinjau:
Tarik lalu lepas. Pilih file glb atau glTF dan semua file terkaitnya (atau file zip yang berisi file ini), lalu tarik file zip atau file yang dipilih ke alat pratinjau.
Dari alat pratinjau. Pada alat pratinjau, pilih Scene Viewer > Load File. Pilih file glb atau glTF dan semua file terkaitnya (atau file zip yang berisi file ini), lalu klik Open.
Setelah Anda memuat file yang terdiri dari model 3D Anda ke dalam alat pratinjau, konsol di bagian bawah browser akan menampilkan hasilnya, termasuk semua 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, pratinjau memerlukan file glb atau glTF model, file gambar dan bin terkait, serta file audio opsional. Anda dapat memilih beberapa file individual atau menambahkan satu file zip.
Saat menambahkan file ZIP, pratinjau akan memuat glb atau glTF pertama yang ditemukannya, serta file gambar dan bin terkait dalam file ZIP tersebut.
Buka alat Editor Model di browser.
Gunakan salah satu metode berikut untuk menambahkan file ke alat pratinjau:
Untuk menarik lalu melepas file untuk validasi, pilih beberapa file glb atau glTF dan semua file terkait (atau pilih file zip yang berisi file ini), lalu tarik ke alat pratinjau.
Memilih file dari alat pratinjau. Pada alat pratinjau, pilih Scene Viewer > Load File. Pilih beberapa file glb atau glTF dan semua file yang terkait (atau file zip yang berisi file ini), lalu klik Open.
Error validasi
Kode Error | Tingkat 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 [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] material. | 10 |
TEXTURE_RESOLUTION_LIMIT_EXCEEDED |
Peringatan | Resolusi gambar pada indeks [idx] dalam glTF melebihi batas yang direkomendasikan oleh spesifikasi Scene Viewer, yaitu resolusi maksimum [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 : Daftar Segitiga, 5 : Strip Segitiga, 6 : Kipas Segitiga} |
MISSING_PBR_METALLIC_ROUGHNESS |
Informasi |
Material pada indeks [idx] tidak memiliki properti pbrMetallicRoughness . Hal 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.
|