Scene Viewer est un outil de visualisation immersif qui permet de proposer des expériences 3D et de réalité augmentée à partir de votre site Web ou de votre application Android. Il permet aux utilisateurs d'appareils mobiles Android de prévisualiser, de placer, de visualiser et d'interagir facilement avec des modèles 3D hébergés sur le Web dans leur environnement.
La plupart des navigateurs Android sont compatibles avec Scene Viewer. Scene Viewer a été implémenté avec succès par de nombreux partenaires Google pour prendre en charge de manière fiable les expériences 3D et de réalité augmentée. Elle alimente également ces expériences pour la recherche Google.
L'implémentation est simple :
Les expériences basées sur le Web ne nécessitent que des liens correctement mis en forme sur une page Web.
Les expériences basées sur les applications ne nécessitent que l'intégration de quelques lignes de code Java.
Exigences d'exécution de Scene Viewer
Pour profiter de la RA avec Scene Viewer, les utilisateurs doivent disposer des éléments suivants :
- Un appareil compatible avec ARCore exécutant Android 7.0 Nougat (niveau d'API 24) ou version ultérieure.
- Une version à jour (récente) des Services Google Play pour la RA. Ce service est automatiquement installé et mis à jour sur la grande majorité des appareils compatibles avec ARCore.
- Une version à jour de l'appli Google. Cette appli est préinstallée et est également mise à jour automatiquement sur la grande majorité des appareils compatibles avec ARCore.
Pour les cas où les Services Google Play pour la RA ou l'appli Google ne sont pas présents ou que les versions installées sont trop anciennes, vous pouvez spécifier une URL de remplacement qui lance une expérience alternative, par exemple une page Web, un message d'erreur ou une expérience de remplacement que vous avez créée.
Cas d'utilisation compatibles
| Cas d'utilisation prévu | Application recommandée | Avantages |
|---|---|---|
|
Lancez une vue AR native d'un modèle 3D à partir d'un bouton ou d'un lien sur un site Web ou dans une application Android.
Si les Services Google Play pour la RA ne sont pas présents sur l'appareil, revenez à l'affichage du modèle en mode 3D optimisé par Scene Viewer. |
Lancez Scene Viewer en utilisant une intention explicite pour le package de recherche Google, puis choisissez un paramètre mode approprié pour afficher le modèle 3D.
|
|
|
Lancez une vue AR native d'un modèle 3D à partir d'un bouton ou d'un lien sur un site Web ou dans une application Android.
Si les services Google Play pour la RA ne sont pas présents sur l'appareil, contrôlez le comportement de secours. |
Lancez Scene Viewer à l'aide d'un intent explicite vers les Services Google Play pour la RA (ARCore), puis choisissez un paramètre mode approprié pour afficher le modèle 3D.
|
Utilisez votre propre outil de visualisation de modèles 3D ou fournissez une autre réponse de remplacement de votre propre conception pour les cas d'utilisation non liés à la RA. |
| Hébergez une vue intégrée d'un modèle 3D sur votre site Web et permettez à l'utilisateur de passer manuellement en mode RA natif plein écran. | Utilisez <model-viewer> ou tout autre lecteur 3D Web pour lancer Scene Viewer et afficher le modèle 3D en RA de manière native. |
|
Lancer Scene Viewer à l'aide d'une intention explicite (3D ou RA)
Pour prendre en charge la plus large gamme d'appareils Android, utilisez une intention Android explicite pour lancer Scene Viewer. L'intention explicite peut être déclenchée à partir d'une page HTML ou d'une application Android native. L'intention sera gérée par l'application Google préinstallée sur les appareils Android compatibles avec ARCore.
Selon les paramètres d'intention configurés et les capacités de l'appareil, les modèles 3D interactifs peuvent être placés dans l'environnement de l'utilisateur ou être affichés dans un outil de visualisation 3D.
Si les Services Google Play pour la RA sont présents sur l'appareil et à jour, Scene Viewer affichera le modèle dans une vue native de RA ou en 3D.
Si les services Google Play pour la RA ne sont pas présents ou ne sont pas à jour, Scene Viewer revient à l'affichage du modèle dans une vue 3D.
Si un modèle 3D ne peut pas être affiché, par exemple parce que l'application Google n'est pas installée ou qu'il s'agit d'une ancienne version, le paramètre
S.browser_fallback_urlsera utilisé pour afficher une page Web de remplacement.
Lancer Scene Viewer depuis HTML ou Java
HTML
Pour déclencher l'intention explicite à partir du code HTML, utilisez la syntaxe suivante :
<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
Pour déclencher l'intent explicite à partir de Java, utilisez le code suivant :
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);
Gestion des versions des intents
La version de l'intention est indiquée par le numéro de version après arvr.google.com/scene-viewer. Par exemple, la version initiale utilisait la version 1.0. Lorsque des fonctionnalités plus récentes de Scene Viewer sont requises, vous pouvez lancer Scene Viewer avec une version d'intention plus élevée correspondant aux fonctionnalités dont vous avez besoin.
La version 1.1 des intents a ajouté la prise en charge des liens intent://, qui peuvent lancer directement une application Android plutôt qu'une URL. Si vous souhaitez que Scene Viewer garantisse que cette fonctionnalité est disponible au lancement et qu'il ne se lance pas dans le cas contraire, lancez Scene Viewer avec une intention de intent://arvr.google.com/scene-viewer/1.1.
Paramètres d'intent acceptés
Les paramètres suivants sont acceptés pour une intention explicite du package Recherche Google.
| Paramètre d'intent | Valeurs autorisées | Commentaires |
|---|---|---|
file (obligatoire) |
Une URL valide | Cette URL spécifie le fichier glTF ou glb à charger dans Scene Viewer. Elle doit être échappée au format URL. |
S.browser_fallback_url (obligatoire pour les intents basés sur HTML) |
Une URL valide | Il s'agit d'une fonctionnalité Google Chrome qui n'est compatible qu'avec les implémentations Web. Lorsque l'appli Google n'est pas présente sur l'appareil, c'est l'URL vers laquelle Google Chrome accède. |
mode (facultatif) |
3d_preferred (par défaut) |
Scene Viewer affiche le modèle en mode 3D avec un bouton Afficher dans votre espace.
Si les Services Google Play pour la RA ne sont pas présents sur l'appareil, le bouton Afficher dans votre espace est masqué.
|
3d_only |
Scene Viewer se lance avec le modèle affiché en mode 3D, même si les services Google Play pour la RA sont présents sur l'appareil.
Le bouton Afficher dans votre espace ne s'affiche jamais.
|
|
ar_preferred |
Scene Viewer se lance en mode natif AR comme mode d'entrée. L'utilisateur peut basculer entre les modes RA et 3D à l'aide des boutons Afficher dans votre espace et Afficher en 3D.
Si les services Google Play pour la RA ne sont pas présents, Scene Viewer repasse en mode 3D comme mode d'entrée.
|
|
ar_only |
Lorsque vous utilisez cette valeur, vous devez lancer l'application via un intent Android explicite vers com.google.ar.core.
Remarque : N'utilisez pas le mode ar_only lorsque vous lancez l'application Google via une intention Android explicite.
|
|
link (facultatif) |
Une URL valide |
URL d'une page Web externe. Si elle est présente, un bouton s'affichera dans l'UI et redirigera vers cette URL lorsqu'il sera cliqué.
|
title (facultatif) |
Chaîne valide |
Nom du modèle. Si elle est présente, elle s'affichera dans l'UI.
Le nom sera tronqué avec des points de suspension au-delà de 60 caractères.
|
| sound (facultatif) | Une URL valide | URL d'une piste audio en boucle synchronisée avec la première animation intégrée à un fichier glTF. Il doit être fourni avec un fichier glTF comportant une animation de durée identique. Si ce champ est présent, le son est lu en boucle une fois le modèle chargé. Elle doit être échappée au format URL. |
resizable (facultatif) |
true (par défaut)
|
Si ce paramètre est défini sur false, les utilisateurs ne pourront pas mettre à l'échelle le modèle dans l'expérience de RA. La mise à l'échelle fonctionne normalement dans l'expérience 3D.
|
enable_vertical_placement (facultatif) |
false (par défaut)
|
Si ce paramètre est défini sur true, les utilisateurs pourront placer le modèle sur une surface verticale.
|
Conseils sur l'expérience utilisateur
Pour offrir la meilleure expérience utilisateur possible, nous vous recommandons de faire en sorte que les incitations à l'action visibles indiquent que l'utilisateur est sur le point d'entrer dans un environnement immersif.
Pour les expériences de visualisation 3D, nous vous recommandons un bouton d'incitation à l'action intitulé Afficher en 3D, qui ressemble à l'une des images suivantes :
Lancer Scene Viewer à l'aide d'une intention explicite vers les Services Google Play pour la RA (mode RA uniquement)
Le mode RA de Scene Viewer est fourni par les Services Google Play pour la RA.
Pour vous assurer que la RA est disponible dans Scene Viewer, vous pouvez utiliser une intention Android explicite à partir d'un site Web ou d'une application Android native pour lancer Scene Viewer via com.google.ar.core package et fournir un browser_fallback_url. Vous pouvez ainsi vous assurer que tous les utilisateurs bénéficient d'une expérience de RA native via Scene Viewer ou d'une expérience de remplacement que vous avez créée vous-même. Par exemple, vous pouvez créer des expériences de secours telles que votre propre visionneuse 3D ou un message d'erreur élégant.
Pour déclencher l'intention explicite à partir du code HTML, utilisez la syntaxe suivante :
<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>;
Pour déclencher l'intent explicite à partir de Java, utilisez le code suivant :
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);
Paramètres d'intent acceptés
Les paramètres suivants sont acceptés pour une intention explicite du package Google Play Services for AR.
| Paramètre d'intent | Valeurs autorisées | Commentaires |
|---|---|---|
browser_fallback_url (obligatoire pour les intents basés sur HTML) |
Une URL valide | Cette fonctionnalité n'est disponible que pour les implémentations Web. Lorsque les services Google Play pour la RA ne sont pas présents sur l'appareil ou ne sont pas à jour, c'est l'URL vers laquelle il est redirigé. |
mode (facultatif) |
ar_only |
Scene Viewer lance toujours le modèle 3D dans une vue RA native et masque toute interface utilisateur permettant de passer à l'outil de visualisation 3D Scene Viewer.
Si les Services Google Play pour la RA ne sont pas présents, Scene Viewer lance l'URL que vous avez définie dans browser_fallback_url pour les expériences Web.
Pour les expériences basées sur une application, Scene Viewer revient à une expérience alternative, comme un message d'erreur ou une autre expérience que vous avez créée vous-même.
|
ar_preferred |
Scene Viewer se lance en mode natif RA comme mode d'entrée et permet aux utilisateurs de basculer entre les modes RA et 3D à l'aide des boutons Voir dans votre espace et Voir en 3D.
Si les Services Google Play pour la RA ne sont pas présents, Scene Viewer lance l'URL que vous avez définie dans browser_fallback_url pour les expériences Web.
Pour les expériences basées sur une application, Scene Viewer revient à une expérience alternative, comme un message d'erreur ou une autre expérience que vous avez créée vous-même.
|
|
link (facultatif) |
Une URL valide |
URL d'une page Web externe. Si elle est présente, un bouton s'affichera dans l'UI et redirigera vers cette URL lorsqu'il sera cliqué.
La version 1.1 a ajouté la compatibilité avec les liens intent:// dans Scene Viewer afin de permettre au bouton "Visiter" de Scene Viewer de déclencher directement d'autres applications. Notez que cette option doit être utilisée avec précaution et ne doit être spécifiée que lorsqu'un gestionnaire d'intent est garanti pour l'intent donné. |
title (facultatif) |
Chaîne valide |
Nom du modèle. Si elle est présente, elle s'affichera dans l'UI.
Le nom sera tronqué avec des points de suspension au-delà de 60 caractères.
La version 1.1 a ajouté la prise en charge du style HTML pour le contenu du titre, avec une quantité de texte arbitraire autorisée. Notez que le titre doit être échappé au format URL. |
sound (facultatif) |
Une URL valide | URL d'une piste audio en boucle synchronisée avec la première animation intégrée dans un fichier glTF. Il doit être fourni avec un fichier glTF comportant une animation de durée identique. Si ce paramètre est présent, le son est lu en boucle une fois le modèle chargé. |
resizable (facultatif) |
true (par défaut)
|
Si ce paramètre est défini sur false, les utilisateurs ne pourront pas mettre à l'échelle le modèle dans l'expérience de RA. La mise à l'échelle fonctionne normalement dans l'expérience 3D.
|
disable_occlusion (facultatif) |
false (par défaut)
|
Lorsque la valeur est définie sur true, les objets placés dans la scène apparaissent toujours devant les objets du monde réel. Pour en savoir plus, consultez [Activer l'occlusion](/ar/develop/depth#enable_occlusion).
|
Conseils sur l'expérience utilisateur
Pour offrir la meilleure expérience utilisateur possible, nous vous recommandons de suivre ces consignes.
Pour les expériences de RA, l'incitation à l'action visible doit indiquer à l'utilisateur qu'il est sur le point d'entrer dans un environnement immersif. Nous vous recommandons d'utiliser l'incitation à l'action Afficher dans votre espace :
Il est possible que les utilisateurs n'aient pas installé les Services Google Play pour la RA sur leur appareil. Voici comment
<model-viewer>gère le remplacement. N'hésitez pas à utiliser ce code comme point de départ.// 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);
Utiliser <model-viewer> pour lancer Scene Viewer
Vous pouvez activer Scene Viewer depuis votre site Web en incluant le composant Web <model-viewer> avec l'attribut ar.
<model-viewer ar
ar-modes="scene-viewer webxr quick-look"
alt="A 3D model of an astronaut."
src="Astronaut.gltf"></model-viewer>
Lorsqu'il est consulté sur un appareil Android compatible avec ARCore, un site Web qui inclut le composant <model-viewer> avec l'attribut ar affiche un bouton, comme illustré dans l'exemple suivant.
Lorsque le mode scene-viewer est utilisé dans ar-modes,
il passe à une vue AR native et invite l'utilisateur à placer le modèle dans son environnement à l'aide de Scene Viewer.
Si les services Google Play avec RA ne sont pas présents, appuyer sur ce bouton affiche le modèle dans le lecteur 3D de <model-viewer>.
Consultez la documentation de <model-viewer> pour savoir comment vous lancer avec <model-viewer>.
Exigences concernant les fichiers pour les modèles
Scene Viewer présente la compatibilité et les limites suivantes pour les modèles.
| Formats de fichiers compatibles | glTF 2.0/glb, en utilisant les extensions suivantes :
|
| Animation |
glTF contient plusieurs animations, Scene Viewer ne lit que la première.
|
| Limites recommandées |
Les performances globales des composants dépendent de la définition des contraintes et des compromis entre les sommets, les matériaux, la résolution des textures, les maillages par matériau et d'autres facteurs. Suivez les consignes ci-dessous pour optimiser vos composants.
|
| Assistance Shadow | Les ombres dures sont automatiquement rendues par Scene Viewer lors du placement d'un objet. Nous vous déconseillons donc d'intégrer des ombres à votre modèle. |
| Compatibilité avec les textures |
|
| Composition | PBR |
| Chargement de fichiers | HTTPS |
| Scène |
|
Utiliser l'outil de prévisualisation pour valider vos modèles 3D
Pour vous assurer que votre fichier de modèle 3D s'affichera correctement dans Scene Viewer, utilisez notre outil de prévisualisation en ligne pour valider les fichiers sur votre ordinateur.
Valider votre modèle 3D
Pour valider un modèle, l'outil de prévisualisation a besoin d'un fichier GLB ou glTF, de tous les fichiers image et bin associés, ainsi que d'un fichier audio facultatif. Le fichier audio sera lu en boucle avec l'animation 0.
Vous pouvez sélectionner plusieurs fichiers individuels ou, si vous le souhaitez, placer le fichier glb ou glTF et ses fichiers associés dans un fichier zip. (La méthode du fichier ZIP n'est pas compatible avec les fichiers audio.)
Pour valider votre modèle 3D :
Ouvrez l'outil d'aperçu en ligne dans un navigateur.
Utilisez l'une des méthodes suivantes pour ajouter les fichiers à l'outil d'aperçu :
Glisser-déposer Sélectionnez un fichier GLB ou glTF et tous les fichiers associés (ou un fichier ZIP contenant ces fichiers), puis faites glisser les fichiers ou le fichier ZIP sélectionnés vers l'outil d'aperçu.
Depuis l'outil d'aperçu : Dans l'outil d'aperçu, sélectionnez Scene Viewer > Charger le fichier. Sélectionnez un fichier GLB ou glTF, ainsi que tous les fichiers associés (ou un fichier ZIP contenant ces fichiers), puis cliquez sur Ouvrir.
Une fois que vous avez chargé les fichiers de votre modèle 3D dans l'outil de prévisualisation, une console en bas du navigateur affiche les résultats, y compris les éventuels messages d'erreur.
Ajouter des modèles 3D pour la validation
Pour valider un modèle 3D, ajoutez les fichiers qui le composent à notre outil d'édition de modèles.
Pour valider un modèle, le lecteur d'aperçu a besoin du fichier glb ou glTF du modèle, de tous les fichiers image et bin associés, ainsi que d'un fichier audio facultatif. Vous pouvez sélectionner plusieurs fichiers individuels ou ajouter un seul fichier ZIP.
Lorsque vous ajoutez un fichier ZIP, le lecteur d'aperçu charge le premier fichier GLB ou glTF qu'il trouve, ainsi que les fichiers image et bin associés dans ce fichier ZIP.
Ouvrez l'outil Éditeur de modèle dans un navigateur.
Utilisez l'une des méthodes suivantes pour ajouter les fichiers à l'outil d'aperçu :
Pour valider des fichiers par glisser-déposer, sélectionnez le fichier .glb ou .glTF et tous les fichiers associés (ou sélectionnez un fichier .zip contenant ces fichiers), puis faites-les glisser vers l'outil de prévisualisation.
Sélectionnez des fichiers dans l'outil d'aperçu. Dans l'outil d'aperçu, sélectionnez Scene Viewer > Charger le fichier. Sélectionnez le fichier GLB ou glTF, ainsi que tous les fichiers associés (ou un fichier ZIP contenant ces fichiers), puis cliquez sur Ouvrir.
Erreurs de validation
| Code d'erreur | Gravité | Message | Valeurs actuellement acceptées |
|---|---|---|---|
INVALID_INPUT_FILE_EXTENSION |
Erreur | L'extension du fichier [filename] fourni n'est pas compatible avec le programme de validation. | ['.glb', '.gltf'] |
REC_INPUT_BINARY_SIZE_EXCEEDED |
Avertissement | L'entrée utilisateur fournie a une taille binaire qui dépasse la limite recommandée par la spécification Scene Viewer, qui est une limite de taille recommandée de [size] Mo. | 10 |
MAX_INPUT_BINARY_SIZE_EXCEEDED |
Erreur | L'entrée utilisateur fournie a une taille binaire qui dépasse la limite maximale acceptée par la spécification Scene Viewer, fixée à [size] Mo. | 15 |
UNSUPPORTED_GLTF_EXTENSION_USED |
Erreur | L'extension [ext] du fichier glTF n'est pas compatible avec la spécification Scene Viewer. | ['KHR_materials_pbrSpecularGlossiness', 'KHR_materials_unlit', 'KHR_texture_transform'] |
ANIMATION_LIMIT_EXCEEDED |
Erreur | Le nombre d'animations du fichier glTF dépasse la limite autorisée par la spécification Scene Viewer, fixée à [num]. | 1 |
MORPH_TARGET_USED |
Erreur | Le fichier glTF contient une cible de transformation non compatible avec la spécification Scene Viewer. | |
MATERIAL_LIMIT_EXCEEDED |
Avertissement | Le nombre de matériaux du fichier glTF dépasse la limite recommandée par la spécification Scene Viewer, fixée à [num]. | 10 |
TEXTURE_RESOLUTION_LIMIT_EXCEEDED |
Avertissement | La résolution de l'image à l'index [idx] du fichier glTF dépasse la limite recommandée par la spécification Scene Viewer. La résolution maximale est de [res] x [res]. | 2 048 x 2 048 |
UV_LIMIT_EXCEEDED |
Erreur | Le nombre d'UV par maillage dans le fichier glTF dépasse la limite autorisée par la spécification Scene Viewer, fixée à [num]. | 1 |
VERTEX_COLOR_USED |
Erreur | Le fichier glTF contient une couleur de sommet non compatible avec la spécification Scene Viewer. | |
JOINT_LIMIT_EXCEEDED |
Erreur | Le nombre de jointures du fichier glTF dépasse la limite autorisée par la spécification Scene Viewer, fixée à [num]. | 254 |
TRIANGLE_LIMIT_EXCEEDED |
Avertissement | Le nombre de triangles du fichier glTF dépasse la limite recommandée par la spécification Scene Viewer, fixée à [num]. | 100 000 |
PRIMITIVE_MODE_UNSUPPORTED |
Erreur | Le mode primitif [mode] n'est pas compatible avec la spécification Scene Viewer. | {4 : Liste de triangles, 5 : Bande de triangles, 6 : Triangle Fan} |
MISSING_PBR_METALLIC_ROUGHNESS |
Informations |
Le matériau à l'index [idx] ne contient pas de propriété pbrMetallicRoughness. Cette propriété n'est pas requise par la spécification Scene Viewer si des facteurs métalliques et de rugosité sont utilisés à la place. Si aucun de ces facteurs n'est utilisé, des valeurs par défaut sont appliquées au matériau, ce qui peut entraîner un comportement imprévu.
|





