Scene Viewer est une visionneuse immersive qui permet d'offrir des expériences 3D et RA à partir de votre site Web ou de votre application Android. Elle permet aux utilisateurs d'appareils mobiles Android de prévisualiser, de positionner et d'afficher facilement des modèles 3D hébergés sur le Web dans leur environnement, et d'interagir avec ces modèles.
La plupart des navigateurs Android sont compatibles avec Scene Viewer. Scene Viewer a été implémentée avec succès par de nombreux partenaires Google pour offrir une expérience 3D et RA fiable. Cette technologie alimente également ces expériences pour la recherche Google.
L'implémentation est simple:
Les expériences Web ne nécessitent que des liens correctement mis en forme sur une page Web.
Les expériences basées sur des applications ne nécessitent l'intégration que de quelques lignes de code Java.
Exigences d'exécution de Scene Viewer
Pour utiliser la RA avec Scene Viewer, les utilisateurs doivent disposer des éléments suivants:
- Un appareil compatible ARCore exécutant Android 7.0 Nougat (niveau d'API 24) ou une version ultérieure.
- Une version à jour (récente) des services Google Play pour la RA. Ce service est automatiquement installé et maintenu à jour sur la grande majorité des appareils compatibles avec ARCore.
- Une version à jour de l'application Google. Cette application est préinstallée et est automatiquement mise à jour sur la grande majorité des appareils compatibles avec ARCore.
Pour les cas où les services Google Play pour la RA ou l'application Google ne sont pas présents, ou si les versions installées sont trop anciennes, vous pouvez spécifier une URL de remplacement qui lance une autre expérience, 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 |
---|---|---|
À partir d'un bouton ou d'un lien sur un site Web ou dans une application Android, lancez une vue RA native d'un modèle 3D.
Si les services Google Play pour la RA ne sont pas présents sur l'appareil, utilisez plutôt le mode 3D optimisé par Scene Viewer pour afficher le modèle. |
Lancez Scene Viewer à l'aide d'un intent explicite pour le package de la recherche Google, puis choisissez un paramètre mode approprié pour afficher le modèle 3D.
|
|
À partir d'un bouton ou d'un lien sur un site Web ou dans une application Android, lancez une vue native en RA d'un modèle 3D.
Si les services Google Play pour la RA ne sont pas présents sur l'appareil, contrôlez le comportement de remplacement. |
Lancez Scene Viewer à l'aide d'un intent explicite pour les Services Google Play pour la RA (ARCore), puis choisissez le paramètre mode approprié pour afficher le modèle 3D.
|
Utilisez votre propre visionneuse de modèles 3D ou fournissez une autre réponse de remplacement de votre propre conception pour les cas d'utilisation autres que la RA. |
Hébergez une vue intégrée d'un modèle 3D sur votre site Web et permettez à l'utilisateur d'activer manuellement un mode RA natif plein écran. | Utilisez <model-viewer> ou toute autre visionneuse 3D Web pour lancer Scene Viewer, affichant de manière native le modèle 3D en RA. |
|
Lancer Scene Viewer avec un intent explicite (3D ou RA)
Pour prendre en charge le plus large éventail d'appareils Android, utilisez un intent Android explicite afin de lancer Scene Viewer. L'intent explicite peut être déclenché à partir d'une page HTML ou d'une application Android native. Il est géré par l'application Google préinstallée sur les appareils Android compatibles avec ARCore.
En fonction des paramètres d'intent configurés et des fonctionnalités de l'appareil, les modèles 3D interactifs peuvent être placés dans l'environnement de l'utilisateur ou leur affichage dans une visionneuse 3D.
Si les Services Google Play pour la RA sont présents sur l'appareil et à jour, Scene Viewer affiche le modèle dans une vue native RA ou 3D.
Si les Services Google Play pour la RA ne sont pas présents ou ne sont pas à jour, Scene Viewer s'affiche normalement en vue 3D.
Si un modèle 3D ne peut pas être affiché, par exemple parce que l'appli Google n'est pas installée ou parce qu'il s'agit d'une ancienne version, le paramètre
S.browser_fallback_url
sera utilisé pour afficher une page Web de remplacement à la place.
Lancer Scene Viewer en HTML ou en Java
HTML
Pour déclencher l'intent explicite à partir de 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'intent 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 de nouvelles fonctionnalités de Scene Viewer sont requises, vous pouvez lancer Scene Viewer avec une version d'intent supérieure correspondant aux fonctionnalités dont vous avez besoin.
La version 1.1 de l'intent est compatible avec les liens intent://
, qui peuvent être lancés directement dans une application Android plutôt que vers une URL. Si vous souhaitez que Scene Viewer s'assure que cette fonctionnalité est disponible lors du lancement et que vous ne la lancez pas dans le cas contraire, lancez la visionneuse de scènes avec un intent vers intent://arvr.google.com/scene-viewer/1.1
.
Paramètres d'intent compatibles
Les paramètres suivants sont compatibles avec un intent explicite pour le package Google Search.
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. Il doit utiliser des caractères d'échappement dans l'URL. |
S.browser_fallback_url (obligatoire pour les intents HTML) |
Une URL valide | Cette fonctionnalité de Google Chrome n'est compatible qu'avec les implémentations sur le Web. Lorsque l'appli Google n'est pas présente sur l'appareil, il s'agit de 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 Voir dans votre espace.
Si les Services Google Play pour la RA ne sont pas présents sur l'appareil, le bouton Voir 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 Voir dans votre espace ne s'affiche jamais.
|
|
ar_preferred |
Scene Viewer est lancé en mode natif RA en tant que mode d'entrée. L'utilisateur peut basculer entre les modes RA et 3D à l'aide des boutons Voir dans votre espace et Voir en 3D.
En l'absence de services Google Play pour la RA, Scene Viewer rebascule normalement en mode 3D comme mode d'entrée. |
|
ar_only |
Lorsque vous utilisez cette valeur, vous devez effectuer le lancement 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 un intent Android explicite.
|
|
link (facultatif) |
Une URL valide |
URL d'une page Web externe. Le cas échéant, un bouton apparaîtra dans l'interface utilisateur pour rediriger l'utilisateur vers cette URL lorsqu'il cliquera dessus.
|
title (facultatif) |
Chaîne valide |
Nom du modèle. Le cas échéant, il s'affichera dans l'interface utilisateur.
Au bout de 60 caractères, le nom sera tronqué avec des points de suspension.
|
son (facultatif) | Une URL valide | URL vers une piste audio en boucle qui est synchronisée avec la première animation intégrée dans un fichier glTF. Il doit être fourni avec un fichier glTF avec une animation de longueur correspondante. S'il est présent, le son est lu en boucle après le chargement du modèle. Il doit utiliser des caractères d'échappement dans l'URL. |
resizable (facultatif) |
true (par défaut)
|
Si vous définissez cette option sur false , les utilisateurs ne peuvent 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)
|
Lorsque ce paramètre est défini sur true , les utilisateurs peuvent placer le modèle sur une surface verticale.
|
Conseils sur l'expérience utilisateur
Afin de fournir la meilleure expérience utilisateur possible aux utilisateurs, nous vous recommandons d'indiquer dans les incitations à l'action visibles que l'utilisateur est sur le point d'entrer dans un environnement immersif.
Pour les expériences de visionnage 3D, nous vous recommandons d'ajouter une incitation à l'action intitulée Voir en 3D, ressemblant à l'une des images suivantes:
Lancer Scene Viewer à l'aide d'un intent explicite dans les services Google Play pour la RA (mode RA uniquement)
Dans Scene Viewer, le mode RA est fourni par les services Google Play pour la RA.
Pour vous assurer que la RA est disponible dans Scene Viewer, vous pouvez utiliser un intent 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
. De cette façon, vous pouvez vous assurer que tous les utilisateurs disposent soit d'une expérience de RA native via Scene Viewer, soit d'une expérience de remplacement que vous avez créée vous-même. Par exemple, vous pouvez créer des expériences de remplacement telles que votre propre visionneuse 3D ou un message d'erreur simplifié.
Pour déclencher l'intent explicite à partir de 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 compatibles
Les paramètres suivants sont compatibles avec un intent explicite pour le package des services Google Play pour la RA.
Paramètre d'intent | Valeurs autorisées | Commentaires |
---|---|---|
browser_fallback_url (obligatoire pour les intents HTML) |
Une URL valide | Cette option 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 qu'ils ne sont pas à jour, il s'agit de l'URL vers laquelle les utilisateurs accèdent. |
mode (facultatif) |
ar_only |
Scene Viewer lance toujours le modèle 3D dans une vue RA native et masque l'interface utilisateur permettant de passer à la visionneuse 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 applications basées sur des applications, Scene Viewer revient à une autre expérience, telle qu'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 et permet aux utilisateurs de basculer entre les modes RA et 3D à l'aide des boutons View in your space (Afficher dans votre espace) et View in 3D (Afficher 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 applications basées sur des applications, Scene Viewer revient à une autre expérience, telle qu'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 un bouton est présent dans l'UI, il redirige vers cette URL lorsqu'il clique dessus.
La version 1.1 est compatible avec les liens intent:// dans Scene Viewer, afin de permettre au bouton d'accès au lecteur de scènes de se déclencher directement dans d'autres applications. Notez que cette méthode doit être utilisée avec précaution et ne doit être spécifiée que lorsque la présence d'un gestionnaire d'intent est garantie pour l'intent donné. |
title (facultatif) |
Chaîne valide |
Nom du modèle. Le cas échéant, il s'affichera dans l'interface utilisateur.
Au bout de 60 caractères, le nom sera tronqué avec des points de suspension.
La version 1.1 est compatible avec le style HTML pour le contenu des titres, avec une quantité arbitraire de texte autorisée. Notez que le titre doit être échappé à l'aide d'une URL. |
sound (facultatif) |
Une URL valide | URL vers une piste audio en boucle qui est synchronisée avec la première animation intégrée dans un fichier glTF. Il doit être fourni avec un fichier glTF avec une animation de longueur correspondante. S'il est présent, le son est lu en boucle après le chargement du modèle. |
resizable (facultatif) |
true (par défaut)
|
Si vous définissez cette option sur false , les utilisateurs ne peuvent 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)
|
Si la valeur est true , les objets placés dans la scène apparaissent toujours devant des objets réels. Pour en savoir plus, consultez la section [Activer l'occlusion](/ar/develop/depth#enable_occlusion).
|
Conseils sur l'expérience utilisateur
Afin de fournir la meilleure expérience utilisateur possible aux utilisateurs, nous vous recommandons de suivre ces consignes.
Pour les expériences de RA, l'incitation à l'action visible doit indiquer que l'utilisateur 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 services Google Play pour la RA ne soient pas installés sur l'appareil des utilisateurs. Voici comment
<model-viewer>
gère la création de remplacement. Vous pouvez utiliser cet extrait de 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 à partir de 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>
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 de RA 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 disponibles, appuyez sur ce bouton pour afficher le modèle dans la visionneuse 3D de <model-viewer>
.
Consultez la documentation de <model-viewer>
pour découvrir comment faire vos premiers pas avec <model-viewer>
.
Exigences concernant les fichiers de modèles
Scene Viewer est compatible avec les modèles et présente les limites ci-dessous.
Formats de fichiers compatibles | glTF 2.0/glb , avec ces extensions:
|
Animation |
glTF contient plusieurs animations, Scene Viewer ne lit que la première animation.
|
Limites recommandées |
Les performances globales des éléments dépendent de la définition de contraintes et de compromis entre les sommets, les matériaux, la résolution des textures, le maillage par matériau et d'autres facteurs. Respectez les consignes suivantes pour optimiser vos assets.
|
Compatibilité avec les ombres | Les ombres fortes sont automatiquement affichées par Scene Viewer lorsque vous placez un objet. Nous vous déconseillons donc d'intégrer des ombres dans votre modèle. |
Compatibilité avec les textures |
|
Matériau | PBR |
Chargement des 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'affiche 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, et d'un fichier audio facultatif. Le fichier audio est lu en boucle avec l'animation 0.
Vous pouvez effectuer une sélection multiple de 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 par fichier ZIP n'est pas compatible avec les fichiers audio.)
Pour valider votre modèle 3D:
Ouvrez l'outil de prévisualisation en ligne dans un navigateur.
Utilisez l'une des méthodes suivantes pour ajouter les fichiers à l'outil de prévisualisation:
Glissez-déposez. Sélectionnez un fichier glb ou glTF et tous ses fichiers associés (ou un fichier ZIP contenant ces fichiers), puis faites glisser les fichiers sélectionnés ou le fichier ZIP dans l'outil de prévisualisation.
Depuis l'outil de prévisualisation Dans l'outil de prévisualisation, sélectionnez Scene Viewer > Load File (Lecteur de la scène > Charger le fichier). Sélectionnez un fichier glb ou glTF et tous ses fichiers associés (ou un fichier ZIP contenant ces fichiers), puis cliquez sur Open (Ouvrir).
Une fois que vous avez chargé les fichiers composés 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 validation
Pour valider un modèle 3D, ajoutez les fichiers qui le composent à notre éditeur de modèles.
Pour valider un modèle, l'outil d'aperçu a besoin du fichier glb ou glTF du modèle, des fichiers image et bin associés, et d'un fichier audio facultatif. Vous pouvez sélectionner plusieurs fichiers individuels ou ajouter un seul fichier ZIP.
Lors de l'ajout d'un fichier ZIP, l'outil de prévisualisation charge le premier fichier glb ou glTF trouvé, ainsi que les fichiers image et bin associés dans ce fichier ZIP.
Ouvrez l'éditeur de modèle dans un navigateur.
Utilisez l'une des méthodes suivantes pour ajouter les fichiers à l'outil de prévisualisation:
Pour glisser-déposer des fichiers à valider, sélectionnez plusieurs fichiers glb ou glTF et tous les fichiers associés (ou sélectionnez un fichier ZIP contenant ces fichiers), puis faites-le glisser vers l'outil de prévisualisation.
Sélectionner des fichiers dans l'outil de prévisualisation Dans l'outil de prévisualisation, sélectionnez Scene Viewer > Load File (Lecteur de la scène > Charger le fichier). Sélectionnez plusieurs fichiers glb ou glTF ainsi que tous les fichiers associés (ou un fichier ZIP contenant ces fichiers), puis cliquez sur Open (Ouvrir).
Erreurs de validation
Code d'erreur | Gravité | Message | Valeurs actuellement acceptées |
---|---|---|---|
INVALID_INPUT_FILE_EXTENSION |
Erreur | L'extension du fichier d'entrée [filename] n'est pas compatible avec le programme de validation. | ['.glb', '.gltf'] |
REC_INPUT_BINARY_SIZE_EXCEEDED |
Avertissement | La taille binaire de l'entrée utilisateur fournie dépasse la limite recommandée par la spécification Scene Viewer, fixée à [size] Mo. | 10 |
MAX_INPUT_BINARY_SIZE_EXCEEDED |
Erreur | La taille binaire de l'entrée utilisateur fournie 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 acceptée par la spécification Scene Viewer, fixée à [num]. | 1 |
MORPH_TARGET_USED |
Erreur | Le fichier glTF contient une cible de transformation, ce qui n'est pas 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 au niveau de l'index [idx] dans le fichier glTF dépasse la limite recommandée par la spécification Scene Viewer, fixée à [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 acceptée par la spécification Scene Viewer, qui est maximale de [num] UV par maillage. | 1 |
VERTEX_COLOR_USED |
Erreur | Le fichier glTF contient une couleur de sommet, qui n'est pas compatible avec la spécification Scene Viewer. | |
JOINT_LIMIT_EXCEEDED |
Erreur | Le nombre de jointures du fichier glTF dépasse la limite accepté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 : Triangle List, 5 : Triangle Strip, 6 : Triangle Fan} |
MISSING_PBR_METALLIC_ROUGHNESS |
Informations |
Il manque la propriété pbrMetallicRoughness dans le matériau à l'index [idx]. Cette opération n'est pas requise par la spécification Scene Viewer si des facteurs de rugosité et de métal sont utilisés à la place. Si aucune de ces conditions n'est utilisée, le matériau utilisera des valeurs par défaut, ce qui peut entraîner un comportement inattendu.
|