Scene Viewer è un visualizzatore immersivo che consente esperienze 3D e AR dal tuo sito web o dalla tua app Android. Consente agli utenti di dispositivi mobili Android di visualizzare in anteprima, posizionare, visualizzare e interagire facilmente con modelli 3D ospitati sul web nel loro ambiente.
La maggior parte dei browser Android supporta Scene Viewer. Scene Viewer è stato implementato con successo da molti partner di Google per supportare in modo affidabile esperienze 3D e AR. Inoltre, alimenta queste esperienze per la Ricerca Google.
L'implementazione è semplice:
Le esperienze basate sul web richiedono solo link formattati correttamente in una pagina web.
Le esperienze basate sulle app richiedono solo l'integrazione di poche righe di codice Java.
Requisiti di runtime di Scene Viewer
Per sperimentare l'AR con Scene Viewer, gli utenti devono avere:
- Un dispositivo supportato da ARCore con Android 7.0 Nougat (livello API 24) o versioni successive.
- Una versione aggiornata (recente) di Google Play Services per AR. Questo servizio viene installato e aggiornato automaticamente sulla grande maggioranza dei dispositivi supportati da ARCore.
- Una versione aggiornata dell'app Google. Questa app è preinstallata e viene aggiornata automaticamente sulla maggior parte dei dispositivi supportati da ARCore.
Per i casi in cui Google Play Services per AR o l'app Google non sono presenti o le versioni installate sono troppo vecchie, puoi specificare un URL di riserva che avvii un'esperienza alternativa, ad esempio una pagina web, un messaggio di errore o un'esperienza di riserva creata da te.
Casi d'uso supportati
Caso d'uso previsto | Applicazione consigliata | Vantaggi |
---|---|---|
Da un pulsante o link su un sito web o un'app Android, avvia una visualizzazione AR nativa di un modello 3D.
Se Google Play Services per AR non è presente sul dispositivo, torna indietro agevolmente per mostrare il modello in modalità 3D basata su Scene Viewer. |
Avvia il visualizzatore di scene utilizzando un intent esplicito nel pacchetto della Ricerca Google, quindi scegli un'impostazione mode appropriata per la visualizzazione del modello 3D.
|
|
Da un pulsante o link su un sito web o un'app Android, avvia una visualizzazione AR nativa di un modello 3D.
Se Google Play Services per AR non è presente sul dispositivo, controlla il comportamento di fallback. |
Avvia il visualizzatore di scene utilizzando un intent esplicito in Google Play Services per AR (ARCore), quindi scegli un'impostazione mode appropriata per la visualizzazione del modello 3D.
|
Utilizza il tuo visualizzatore di modello 3D o fornisci un'altra risposta di riserva con il tuo design per casi d'uso non AR. |
Ospita una visualizzazione in linea di un modello 3D sul tuo sito web e consenti all'utente di attivare manualmente la modalità AR nativa a schermo intero. | Usa <model-viewer> o qualsiasi altro visualizzatore 3D basato sul web per avviare Scene Viewer in modo nativo con il modello 3D in AR. |
|
Avvia Scene Viewer utilizzando un intent esplicito (3D o AR)
Per supportare la più ampia gamma di dispositivi Android, utilizza un intent Android esplicito per avviare Scene Viewer. L'intent esplicito può essere attivato da una pagina HTML o da un'app Android nativa. L'intent verrà gestito dall'app Google preinstallata sui dispositivi Android supportati da ARCore.
A seconda dei parametri di intent configurati e delle funzionalità del dispositivo, i modelli 3D interattivi possono essere inseriti nell'ambiente dell'utente o mostrati in un visualizzatore 3D.
Se sul dispositivo sono presenti Google Play Services per AR e lo strumento aggiornato, Scene Viewer mostrerà il modello in una visualizzazione AR nativa o 3D.
Se Google Play Services per AR non è presente o non è aggiornato, Scene Viewer torna a mostrare il modello in una vista 3D.
Se non è possibile visualizzare un modello 3D, ad esempio perché l'app Google non è installata o se si tratta di una versione precedente, il parametro
S.browser_fallback_url
verrà utilizzato per visualizzare una pagina web di riserva.
Avvia Scene Viewer da HTML o Java
HTML
Per attivare l'intent esplicito da HTML, utilizza la seguente sintassi:
<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
Per attivare l'intent esplicito da Java, utilizza il codice seguente:
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);
Controllo delle versioni degli intent
La versione dell'intent è indicata dal numero di versione dopo arvr.google.com/scene-viewer
. La release iniziale, ad esempio,
utilizzava la versione 1.0. Quando sono necessarie funzionalità più recenti di Scene Viewer, puoi avviare Scene Viewer con una versione per intent più elevata corrispondente alle funzionalità richieste.
La versione 1.1 per intent aggiunge il supporto per i link intent://
, che possono essere avviati direttamente in un'app per Android anziché a un URL. Se vuoi che il visualizzatore di scene ti garantisca che questa funzionalità è disponibile dopo il lancio, ma non vuoi avviarla in altro modo, avvia il visualizzatore di scene con l'intento intent://arvr.google.com/scene-viewer/1.1
.
Parametri intent supportati
I seguenti parametri sono supportati per un intent esplicito per il pacchetto Ricerca Google.
Parametro intent | Valori consentiti | Commenti |
---|---|---|
file (obbligatorio) |
Un URL valido | Questo URL specifica il file glTF o glb che deve essere caricato in Scene Viewer. L'URL deve contenere caratteri di escape. |
S.browser_fallback_url (obbligatorio per intent basati su HTML) |
Un URL valido | Si tratta di una funzionalità di Google Chrome supportata solo per le implementazioni basate sul web. Se l'app Google non è presente sul dispositivo, questo è l'URL a cui viene reindirizzato Google Chrome. |
mode (facoltativo) |
3d_preferred (valore predefinito) |
Il visualizzatore di scene mostra il modello in modalità 3D con un pulsante Visualizza nel tuo spazio.
Se Google Play Services per AR non è presente sul dispositivo, il pulsante Visualizza nel tuo spazio è nascosto. |
3d_only |
Si avvia Scene Viewer con il modello visualizzato in modalità 3D, anche se
Google Play Services per AR è presente sul dispositivo.
Il pulsante Visualizza nel tuo spazio non viene mai mostrato.
|
|
ar_preferred |
Scene Viewer viene avviato in modalità nativa AR come modalità di ingresso. L'utente ha la possibilità di passare dalla modalità AR a quella 3D e viceversa tramite i pulsanti Visualizza nel tuo spazio e Visualizza in 3D.
Se Google Play Services per AR non è presente, in Scene Viewer viene ripristinata automaticamente la modalità 3D come modalità di ingresso. |
|
ar_only |
Quando utilizzi questo valore, devi eseguire il lancio tramite un
intent Android esplicito
in com.google.ar.core .
Nota: non utilizzare la modalità ar_only durante l'avvio tramite
intent Android esplicito
nell'app Google.
|
|
link (facoltativo) |
Un URL valido |
L'URL di una pagina web esterna. Se presente, verrà visualizzato un pulsante nell'interfaccia utente che rimanda a questo URL quando viene fatto clic.
|
title (facoltativo) |
Stringa valida |
Un nome per il modello. Se presente, verrà visualizzato nell'interfaccia utente.
Il nome verrà troncato con puntini di sospensione dopo 60 caratteri.
|
audio (facoltativo) | Un URL valido | Un URL che rimanda a una traccia audio in loop sincronizzata con la prima animazione incorporata in un file glTF. Deve essere fornito insieme a un file glTF con un'animazione di lunghezza corrispondente. Se presente, l'audio viene riprodotto in loop dopo il caricamento del modello. L'URL deve contenere caratteri di escape. |
resizable (facoltativo) |
true (valore predefinito)
|
Se il criterio viene impostato su false , gli utenti non potranno scalare il modello
nell'esperienza AR. Il ridimensionamento funziona normalmente nell'esperienza 3D.
|
enable_vertical_placement (facoltativo) |
false (valore predefinito)
|
Se questa impostazione è impostata su true , gli utenti potranno posizionare il modello su una superficie verticale.
|
Indicazioni UX
Per offrire agli utenti la migliore esperienza utente possibile, consigliamo che gli inviti all'azione visibili comunichino che l'utente sta per entrare in un ambiente immersivo.
Per esperienze del visualizzatore 3D, consigliamo un invito all'azione con l'etichetta Visualizza in 3D che sia simile a una delle seguenti immagini:
Avvia Scene Viewer utilizzando un intent esplicito in Google Play Services per AR (solo modalità AR)
La modalità AR in Scene Viewer è basata su Google Play Services per AR.
Per assicurarti che l'AR sia disponibile in Scene Viewer, puoi utilizzare un intent Android esplicito da un sito web o un'app Android nativa per avviare Scene Viewer tramite com.google.ar.core package
e fornire un browser_fallback_url
. In questo modo puoi assicurarti che tutti gli utenti abbiano un'esperienza AR nativa tramite Scene Viewer o un'esperienza di riserva creata da te. Ad esempio, puoi creare esperienze di riserva come il tuo visualizzatore 3D o un messaggio di errore pratico.
Per attivare l'intent esplicito da HTML, utilizza la seguente sintassi:
<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>;
Per attivare l'intent esplicito da Java, utilizza il codice seguente:
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);
Parametri intent supportati
I seguenti parametri sono supportati per un intent esplicito per il pacchetto Google Play Services per AR.
Parametro intent | Valori consentiti | Commenti |
---|---|---|
browser_fallback_url (obbligatorio per intent basati su HTML) |
Un URL valido | Questa opzione è supportata solo per le implementazioni basate sul web. Se Google Play Services per AR non è presente sul dispositivo o non è aggiornato, si tratta dell'URL a cui viene reindirizzato. |
mode (facoltativo) |
ar_only |
Scene Viewer avvia sempre il modello 3D in una visualizzazione AR nativa e nasconde qualsiasi UI per passare al visualizzatore 3D di Scene Viewer.
Se Google Play Services per AR non è presente, Scene Viewer avvia l'URL che hai impostato in browser_fallback_url per le esperienze basate sul web.
Per le esperienze basate su app, Scene Viewer utilizza un'esperienza alternativa,
ad esempio un messaggio di errore o un'altra esperienza creata da te.
|
ar_preferred |
Il visualizzatore di scene viene lanciato in modalità nativa AR come modalità di accesso e offre agli utenti la possibilità di passare dalla modalità AR a quella 3D e viceversa tramite i pulsanti Visualizza nel tuo spazio e Visualizza in 3D.
Se Google Play Services per AR non è presente, Scene Viewer avvia l'URL che hai impostato in browser_fallback_url per le esperienze basate sul web.
Per le esperienze basate su app, Scene Viewer utilizza un'esperienza alternativa,
ad esempio un messaggio di errore o un'altra esperienza creata da te.
|
|
link (facoltativo) |
Un URL valido |
L'URL di una pagina web esterna. Se presente, verrà visualizzato un pulsante nell'interfaccia utente che rimanda a questo URL quando viene fatto clic.
Nella versione 1.1 è stato aggiunto il supporto dei link intent:// in Scene Viewer al fine di consentire l'attivazione del pulsante Visita di Scene Viewer direttamente in altre app. Tieni presente che questo criterio deve essere usato con cautela e deve essere specificato solo quando è garantita la presenza di un gestore di intent per l'intent specificato. |
title (facoltativo) |
Stringa valida |
Un nome per il modello. Se presente, verrà visualizzato nell'interfaccia utente.
Il nome verrà troncato con puntini di sospensione dopo 60 caratteri.
Nella versione 1.1 è stato aggiunto il supporto dello stile HTML dei contenuti dei titoli, con una quantità arbitraria di testo consentita. Tieni presente che il titolo deve contenere l'URL di escape. |
sound (facoltativo) |
Un URL valido | Un URL che rimanda a una traccia audio in loop sincronizzata con la prima animazione incorporata in un file glTF. Deve essere fornito insieme a un file glTF con un'animazione di lunghezza corrispondente. Se presente, l'audio viene riprodotto in loop dopo il caricamento del modello. |
resizable (facoltativo) |
true (valore predefinito)
|
Se il criterio viene impostato su false , gli utenti non potranno scalare il modello
nell'esperienza AR. Il ridimensionamento funziona normalmente nell'esperienza 3D.
|
disable_occlusion (facoltativo) |
false (valore predefinito)
|
Se questa opzione è impostata su true , gli oggetti posizionati nella scena vengono sempre visualizzati davanti agli oggetti del mondo reale nella scena. Vedi
[Abilita occlusione](/ar/develop/depth#enable_occlusion) per ulteriori informazioni.
|
Indicazioni UX
Per offrire la migliore esperienza utente possibile, ti consigliamo di seguire queste linee guida.
Per le esperienze AR, l'invito all'azione visibile deve comunicare che l'utente sta per entrare in un ambiente immersivo. Ti consigliamo di utilizzare l'invito all'azione Visualizza nel tuo spazio:
È possibile che gli utenti non abbiano installato Google Play Services per AR sul loro dispositivo. Ecco come
<model-viewer>
gestisce il video di riserva. Puoi usare liberamente quella porzione di codice come punto di partenza.// 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);
Utilizzo di <model-viewer>
per avviare Scene Viewer
Puoi attivare Scene Viewer dal tuo sito web includendo il componente web <model-viewer>
con l'attributo ar
.
<model-viewer ar
ar-modes="scene-viewer webxr quick-look"
alt="A 3D model of an astronaut."
src="Astronaut.gltf"></model-viewer>
Quando vengono visualizzati su un dispositivo Android supportato da ARCore, un sito web che include il componente <model-viewer>
con l'attributo ar
mostra un pulsante come mostrato nell'esempio seguente.
Quando la modalità scene-viewer
viene usata in ar-modes
,
passa a una visualizzazione AR nativa e invita l'utente a posizionare il modello nel suo ambiente utilizzando Scene Viewer.
Se Google Play Services con AR non è presente, toccando questo pulsante
viene visualizzato il modello nel visualizzatore 3D di <model-viewer>
.
Consulta la documentazione relativa a <model-viewer>
per ulteriori informazioni su come iniziare a utilizzare <model-viewer>
.
Requisiti dei file per i modelli
Il visualizzatore di scene prevede il supporto e le limitazioni seguenti per i modelli.
Supporto del formato file | glTF 2.0/glb , utilizzando queste estensioni:
|
Animazione |
glTF contiene più animazioni, Scene Viewer riproduce solo la prima animazione.
|
Limiti consigliati |
Le prestazioni complessive degli asset dipendono dall'impostazione dei vincoli e dal raggiungimento di compromessi tra vertici, materiali, risoluzione delle texture, mesh per materiale e altri fattori. Segui queste linee guida per ottimizzare gli asset.
|
Supporto Shadow | Le ombre rigide vengono visualizzate automaticamente da Scene Viewer durante il posizionamento di un oggetto, perciò ti consigliamo di non applicare ombre nel modello. |
Supporto texture |
|
Materiale | PBR |
Caricamento file | HTTPS |
Scena |
|
Utilizzo dello strumento di anteprima per convalidare i modelli 3D
Per assicurarti che il file del modello 3D venga visualizzato correttamente in Scene Viewer, utilizza il nostro strumento di anteprima online per convalidare i file sul PC.
Convalida del modello 3D
Per convalidare un modello, lo strumento di anteprima richiede un file glb o glTF, eventuali file immagine e bin associati e un file audio facoltativo. Il file audio si ripeterà insieme all'animazione 0.
Puoi selezionare più file singolarmente oppure, facoltativamente, inserire glb o glTF e i file associati in un file ZIP. Il metodo dei file ZIP non supporta i file audio.
Per convalidare il tuo modello 3D:
Apri lo strumento di visualizzazione in anteprima online in un browser.
Per aggiungere i file allo strumento anteprima, utilizza uno dei seguenti metodi:
Trascina. Seleziona un file glb o glTF e tutti i file associati (o un file ZIP contenente questi file) e trascina i file selezionati o il file ZIP nello strumento anteprima.
Dallo strumento anteprima. Nello strumento anteprima, scegli Visualizzatore scene > Carica file. Seleziona un file glb o glTF e tutti i file associati (o un file ZIP contenente questi file) e fai clic su Apri.
Dopo aver caricato i file costituiti dal tuo modello 3D nello strumento anteprima, una console nella parte inferiore del browser visualizza i risultati, compresi eventuali messaggi di errore.
Aggiunta di modelli 3D per la convalida
Per convalidare un modello 3D, aggiungi i file che lo costituiscono al nostro strumento Editor modelli.
Per convalidare un modello, il visualizzatore in anteprima richiede il file glb o glTF del modello, eventuali file immagine e bin associati e un file audio facoltativo. Puoi selezionare più file singoli o aggiungere un singolo file ZIP.
Quando aggiunge un file ZIP, il visualizzatore anteprima carica il primo file glb o glTF trovato, nonché i file immagine e bin associati all'interno di tale file ZIP.
Apri lo strumento Editor modelli in un browser.
Per aggiungere i file allo strumento anteprima, utilizza uno dei seguenti metodi:
Per trascinare i file per la convalida, seleziona contemporaneamente il file glb o glTF e gli eventuali file associati (oppure seleziona un file ZIP contenente questi file) e trascinalo nello strumento anteprima.
Seleziona file dallo strumento anteprima. Nello strumento anteprima, scegli Visualizzatore scene > Carica file. Seleziona più volte il file glb o glTF e tutti i file associati (o un file ZIP contenente questi file) e fai clic su Apri.
Errori di convalida
Codice di errore | Gravità | Messaggio | Valori correnti supportati |
---|---|---|---|
INVALID_INPUT_FILE_EXTENSION |
Errore | Il file di input [nome file] ha un'estensione del file non supportata dallo strumento di convalida. | ['.glb', '.gltf'] |
REC_INPUT_BINARY_SIZE_EXCEEDED |
Avviso | Le dimensioni binarie dell'input utente fornito superano il limite consigliato dalle specifiche di Scene Viewer, ossia un limite di dimensioni consigliato di [size] MB. | 10 |
MAX_INPUT_BINARY_SIZE_EXCEEDED |
Errore | Le dimensioni binarie dell'input utente fornito superano il limite massimo supportato dalle specifiche di Scene Viewer, ovvero il limite massimo di dimensioni pari a [size] MB. | 15 |
UNSUPPORTED_GLTF_EXTENSION_USED |
Errore | L'estensione [ext] nel file glTF non è supportata dalle specifiche di Scene Viewer. | ['KHR_materials_pbrSpecularGlossiness', 'KHR_materials_unlit', 'KHR_texture_transform'] |
ANIMATION_LIMIT_EXCEEDED |
Errore | Il numero di animazioni nel file glTF supera il limite supportato dalle specifiche di Scene Viewer, che corrisponde al massimo a [num] animazioni. | 1 |
MORPH_TARGET_USED |
Errore | Il file glTF contiene un target morph, che non è supportato dalle specifiche di Scene Viewer. | |
MATERIAL_LIMIT_EXCEEDED |
Avviso | Il numero di materiali nel file glTF supera il limite consigliato dalle specifiche di Scene Viewer, che corrisponde a un massimo di [num] materiali. | 10 |
TEXTURE_RESOLUTION_LIMIT_EXCEEDED |
Avviso | La risoluzione dell'immagine all'indice [idx] nel file glTF supera il limite consigliato dalle specifiche di Scene Viewer, ovvero una risoluzione massima di [res] x [res]. | 2048 x 2048 |
UV_LIMIT_EXCEEDED |
Errore | Il numero di raggi UV per mesh nel file glTF supera il limite supportato dalle specifiche di Scene Viewer, che corrisponde a un massimo di [num] UV per mesh. | 1 |
VERTEX_COLOR_USED |
Errore | Il file glTF contiene un colore del vertice, che non è supportato dalle specifiche di Scene Viewer. | |
JOINT_LIMIT_EXCEEDED |
Errore | Il numero di giunti nel file glTF supera il limite supportato dalle specifiche di Scene Viewer, che corrisponde a un massimo di [num] giunti. | 254 |
TRIANGLE_LIMIT_EXCEEDED |
Avviso | Il numero di triangoli nel file glTF supera il limite consigliato dalle specifiche di Scene Viewer, che corrisponde a un massimo di [num] triangoli. | 100.000 |
PRIMITIVE_MODE_UNSUPPORTED |
Errore | La modalità primitiva [mode] non è supportata dalle specifiche di Scene Viewer. | {4 : Elenco triangolari, 5 : Striscia triangolare, 6 : Ventola triangolare} |
MISSING_PBR_METALLIC_ROUGHNESS |
Informazioni |
Nel materiale all'indice [idx] manca la proprietà pbrMetallicRoughness . Ciò non è richiesto dalle specifiche di Scene Viewer se vengono utilizzati fattori di metallo e rugosità. Se nessuno di questi metodi viene utilizzato, il materiale utilizzerà valori predefiniti, che potrebbero causare comportamenti indesiderati.
|