Scene Viewer è un visualizzatore immersivo che consente esperienze 3D e AR dal tuo sito web o dalla tua app per Android. Consente agli utenti di dispositivi mobili Android di visualizzare facilmente l'anteprima, posizionare, visualizzare e interagire con i 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 Google per supportare in modo affidabile le 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 su una pagina web.
Le esperienze basate su app richiedono solo l'integrazione di poche righe di codice Java.
Requisiti di runtime di Scene Viewer
Per provare la realtà aumentata con Scene Viewer, gli utenti devono disporre di:
- 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 stragrande 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 fallback che avvii un'esperienza alternativa, ad esempio una pagina web, un messaggio di errore o un'esperienza di fallback che hai creato.
Casi d'uso supportati
| Caso d'uso previsto | Applicazione consigliata | Vantaggi |
|---|---|---|
|
Da un pulsante o un link su un sito web o un'app per Android, avvia una
visualizzazione AR nativa di un modello 3D.
Se Google Play Services per AR non è presente sul dispositivo, esegui il fallback in modo controllato per mostrare il modello in una modalità 3D basata su Scene Viewer. |
Avvia Scene Viewer utilizzando un intent esplicito per il
pacchetto Ricerca Google e scegli un'impostazione mode
appropriata per la visualizzazione del modello 3D.
|
|
|
Da un pulsante o un link su un sito web o un'app per 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 Scene Viewer utilizzando un intent esplicito per
Google Play Services per AR (ARCore) e scegli un'impostazione
mode appropriata per la visualizzazione del modello 3D.
|
Utilizza il tuo visualizzatore di modelli 3D o fornisci un'altra risposta di riserva del tuo design per i casi d'uso non AR. |
| Ospita una visualizzazione in linea di un modello 3D sul tuo sito web e consenti all'utente di entrare manualmente in una modalità AR nativa a schermo intero. | Utilizza <model-viewer> o qualsiasi altro
visualizzatore 3D basato sul web per avviare Scene Viewer che mostra in modo nativo 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 per 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 posizionati nell'ambiente dell'utente o tornare alla visualizzazione in un visualizzatore 3D.
Se Google Play Services per AR è presente sul dispositivo ed è 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 esegue il fallback alla visualizzazione del modello in una visualizzazione 3D.
Se un modello 3D non può essere visualizzato, ad esempio perché l'app Google non è installata o è una versione precedente, il parametro
S.browser_fallback_urlverrà utilizzato per visualizzare una pagina web di riserva.
Avviare 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 seguente codice:
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. Ad esempio, la release iniziale utilizzava
la versione 1.0. Quando sono necessarie funzionalità più recenti di Scene Viewer, puoi avviare Scene Viewer con una versione dell'intent più recente corrispondente alle funzionalità che ti servono.
La versione 1.1 degli intent ha aggiunto il supporto per i link intent://, che possono essere avviati
direttamente in un'app per Android anziché in un URL. Se vuoi che Scene
Viewer garantisca che questa funzionalità sia disponibile all'avvio e che non
venga avviata in caso contrario, avvia Scene Viewer con un intent per
intent://arvr.google.com/scene-viewer/1.1.
Parametri di intent supportati
I seguenti parametri sono supportati per un intent esplicito per il pacchetto Google Search.
| 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. Questo valore deve essere sottoposto all'escape dell'URL. |
S.browser_fallback_url (obbligatorio per gli intent basati su HTML) |
Un URL valido | Si tratta di una funzionalità di Google Chrome supportata solo per le implementazioni basate sul web. Quando l'app Google non è presente sul dispositivo, questo è l'URL a cui viene indirizzato Google Chrome. |
(Facoltativo) mode |
3d_preferred (valore predefinito) |
Scene Viewer mostra il modello in modalità 3D con un pulsante Vedi nel tuo spazio.
Se Google Play Services per AR non è presente sul dispositivo, il pulsante Visualizza nel tuo spazio è nascosto.
|
3d_only |
Scene Viewer viene avviato con il modello visualizzato in modalità 3D, anche se
Google Play Services per AR è presente sul dispositivo.
Il pulsante Vedi nel tuo spazio non viene mai mostrato.
|
|
ar_preferred |
Scene Viewer viene avviato in modalità AR nativa come modalità di accesso. L'utente ha la possibilità di passare dalla modalità AR a quella 3D tramite i pulsanti Vedi nel tuo spazio e Vedi in 3D.
Se Google Play Services per AR non è presente, Scene Viewer torna alla modalità 3D come modalità di accesso.
|
|
ar_only |
Quando utilizzi questo valore, devi avviare tramite un
intent Android esplicito
a com.google.ar.core.
Nota:non utilizzare la modalità ar_only quando avvii tramite
intent Android esplicito
all'app Google.
|
|
(Facoltativo) link |
Un URL valido |
Un URL per una pagina web esterna. Se presente, nell'interfaccia utente verrà visualizzato un pulsante che, se selezionato, rimanda a questo URL.
|
(Facoltativo) title |
Stringa valida |
Un nome per il modello. Se presente, verrà visualizzato nella UI.
Il nome verrà troncato con i puntini di sospensione dopo 60 caratteri.
|
| sound (facoltativo) | Un URL valido | Un URL 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, il suono viene riprodotto in loop dopo il caricamento del modello. Questo valore deve essere sottoposto all'escape dell'URL. |
(Facoltativo) resizable |
true (valore predefinito)
|
Se impostato su false, gli utenti non potranno scalare il modello
nell'esperienza AR. Il ridimensionamento funziona normalmente nell'esperienza 3D.
|
(Facoltativo) enable_vertical_placement |
false (valore predefinito)
|
Se impostato su true, gli utenti potranno posizionare il modello su una
superficie verticale.
|
Indicazioni per l'esperienza utente
Per offrire la migliore esperienza utente possibile, ti consigliamo che gli inviti all'azione visibili comunichino all'utente che sta per entrare in un ambiente immersivo.
Per le esperienze del visualizzatore 3D, consigliamo un invito all'azione con l'etichetta Visualizza in 3D che assomigli a una delle seguenti immagini:
Avviare Scene Viewer utilizzando un intent esplicito per Google Play Services per AR (solo modalità AR)
La modalità AR in Scene Viewer è basata su Google Play Services per AR.
Per assicurarti che la AR sia disponibile in Scene Viewer, puoi utilizzare un intent Android esplicito da un sito web o da 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 che hai creato tu. Ad esempio, potresti creare
esperienze di fallback come un visualizzatore 3D personalizzato o un messaggio di errore controllato.
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 seguente codice:
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 di intent supportati
I seguenti parametri sono supportati per un intent esplicito per il pacchetto Google Play Services for AR.
| Parametro intent | Valori consentiti | Commenti |
|---|---|---|
browser_fallback_url (obbligatorio per gli intent basati su HTML) |
Un URL valido | Questa funzionalità è supportata solo per le implementazioni basate sul web. Quando Google Play Services per AR non è presente sul dispositivo o non è aggiornato, questa è la pagina a cui viene indirizzato. |
(Facoltativo) mode |
ar_only |
Scene Viewer avvia sempre il modello 3D in una visualizzazione AR nativa e nasconde qualsiasi
interfaccia utente 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 esegue il fallback a un'esperienza alternativa,
ad esempio un messaggio di errore o un'altra esperienza che hai creato tu.
|
ar_preferred |
Scene Viewer viene avviato in modalità AR nativa come modalità di accesso e offre agli utenti
la possibilità di passare dalla modalità AR a quella 3D tramite i pulsanti Vedi nel tuo spazio
e Vedi 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 esegue il fallback a un'esperienza alternativa,
ad esempio un messaggio di errore o un'altra esperienza che hai creato tu.
|
|
(Facoltativo) link |
Un URL valido |
Un URL per una pagina web esterna. Se presente, nell'interfaccia utente verrà visualizzato un pulsante che, se selezionato, reindirizza a questo URL.
La versione 1.1 ha aggiunto il supporto per i link intent:// in Scene Viewer per consentire al pulsante di visita di Scene Viewer di attivarsi direttamente in altre app. Tieni presente che questo deve essere utilizzato con attenzione e deve essere specificato solo quando è garantita la presenza di un gestore di intent per l'intent specificato. |
(Facoltativo) title |
Stringa valida |
Un nome per il modello. Se presente, verrà visualizzato nella UI.
Il nome verrà troncato con i puntini di sospensione dopo 60 caratteri.
La versione 1.1 ha aggiunto il supporto per lo stile HTML dei contenuti del titolo, con una quantità arbitraria di testo consentita. Tieni presente che il titolo deve essere sottoposto all'escape dell'URL. |
(Facoltativo) sound |
Un URL valido | Un URL 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 della stessa durata. Se presente, il suono viene riprodotto in loop dopo il caricamento del modello. |
(Facoltativo) resizable |
true (valore predefinito)
|
Se impostato su false, gli utenti non potranno scalare il modello
nell'esperienza AR. Il ridimensionamento funziona normalmente nell'esperienza 3D.
|
(Facoltativo) disable_occlusion |
false (valore predefinito)
|
Se impostato su true, gli oggetti posizionati nella scena vengono sempre visualizzati
davanti agli oggetti del mondo reale nella scena. Per saperne di più, consulta
[Attivare l'occlusione](/ar/develop/depth#enable_occlusion).
|
Indicazioni per l'esperienza utente
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 all'utente che sta per entrare in un ambiente immersivo. Ti consigliamo di utilizzare il pulsante di invito all'azione Visualizza nel tuo spazio:
È possibile che gli utenti non abbiano Google Play Services per AR installato sul proprio dispositivo. Ecco come
<model-viewer>gestisce il fallback e puoi utilizzare questo frammento 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>
Se visualizzato 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 utilizzata 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 di <model-viewer> per ulteriori informazioni su come iniziare a utilizzare <model-viewer>.
Requisiti dei file per i modelli
Scene Viewer presenta il seguente supporto e limitazioni per i modelli.
| Supporto dei formati di file | glTF 2.0/glb, utilizzando queste estensioni:
|
| Animazione |
glTF
contiene più animazioni, Scene Viewer riproduce solo la prima.
|
| Limiti consigliati |
Le prestazioni complessive degli asset dipendono dall'impostazione dei vincoli e
dai compromessi tra vertici, materiali, risoluzione delle texture, mesh per
materiale e altri fattori. Segui queste linee guida per ottimizzare gli asset.
|
| Supporto delle ombre | Le ombre nette vengono renderizzate automaticamente da Scene Viewer quando si posiziona un oggetto, pertanto sconsigliamo di incorporare le ombre nel modello. |
| Supporto delle texture |
|
| Materiale | PBR |
| Caricamento dei file | HTTPS |
| Scena |
|
Utilizzare lo 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 tuo PC.
Convalida del modello 3D
Per convalidare un modello, lo strumento di anteprima ha bisogno di un file GLB o GLTF, di eventuali file bin e immagine associati e di un file audio facoltativo. Il file audio verrà riprodotto in loop insieme all'animazione 0.
Puoi selezionare più file singoli o, facoltativamente, inserire il file GLB o GLTF e i file associati in un file ZIP. Il metodo del file ZIP non supporta i file audio.
Per convalidare il modello 3D:
Apri lo strumento di anteprima online in un browser.
Utilizza uno di questi metodi per aggiungere i file allo strumento di anteprima:
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 di anteprima.
Dallo strumento di anteprima. Nello strumento di anteprima, scegli Scene Viewer > 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 modello 3D nello strumento di anteprima, una console nella parte inferiore del browser mostra i risultati, inclusi eventuali messaggi di errore.
Aggiunta di modelli 3D per la convalida
Per convalidare un modello 3D, aggiungi i file che lo compongono al nostro strumento Editor di modelli.
Per convalidare un modello, il visualizzatore di anteprima ha bisogno del file glb o glTF del modello, di eventuali file bin e immagine associati e di un file audio facoltativo. Puoi selezionare più file singoli o aggiungere un unico file ZIP.
Quando aggiungi un file zip, il visualizzatore carica il primo file GLB o glTF che trova, nonché i file bin e immagine associati all'interno del file zip.
Apri lo strumento Editor modelli in un browser.
Utilizza uno di questi metodi per aggiungere i file allo strumento di anteprima:
Per trascinare i file per la convalida, seleziona più file glb o glTF e tutti i file associati (o seleziona un file zip contenente questi file) e trascinali nello strumento di anteprima.
Seleziona i file dallo strumento di anteprima. Nello strumento di anteprima, scegli Scene Viewer > Carica file. Seleziona più 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 supportati correnti |
|---|---|---|---|
INVALID_INPUT_FILE_EXTENSION |
Errore | Il file di input [filename] dispone di un'estensione del file non supportata dallo strumento di convalida. | ['.glb', '.gltf'] |
REC_INPUT_BINARY_SIZE_EXCEEDED |
Avviso | Le dimensioni binarie dell'input dell'utente fornito superano il limite consigliato dalle specifiche di Scene Viewer; limite di dimensioni consigliato: [size] MB. | 10 |
MAX_INPUT_BINARY_SIZE_EXCEEDED |
Errore | Le dimensioni binarie dell'input dell'utente fornito superano il limite massimo supportato dalle specifiche di Scene Viewer, che corrisponde a un limite di dimensioni massimo di [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 è superiore al limite supportato dalle specifiche di Scene Viewer, che corrisponde a un massimo di [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 numero 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 è superiore al limite consigliato dalle specifiche di Scene Viewer, che corrisponde a una risoluzione massima di [res] x [res]. | 2048 x 2048 |
UV_LIMIT_EXCEEDED |
Errore | Il numero di UV per mesh nel file glTF è superiore al 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 giunzioni nel file glTF è superiore al limite supportato dalle specifiche di Scene Viewer, che corrisponde a un massimo di [num] giunzioni. | 254 |
TRIANGLE_LIMIT_EXCEEDED |
Avviso | Il numero di triangoli nel file glTF è superiore al 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 : Triangle List, 5 : Triangle Strip, 6 : Triangle Fan} |
MISSING_PBR_METALLIC_ROUGHNESS |
Informazioni |
Nel materiale all'indice [idx] manca la proprietà pbrMetallicRoughness. Tale proprietà non è richiesta dalle specifiche di Scene Viewer se vengono utilizzati i fattori Metallico
e Ruvidezza. Se non vengono utilizzati neanche tali fattori, il materiale utilizzerà i valori predefiniti e ciò potrebbe causare comportamenti indesiderati.
|





