Scene Viewer es un visor inmersivo que permite experiencias 3D y AR desde su sitio web o aplicación de Android. Permite a los usuarios de dispositivos móviles Android previsualizar, colocar, ver e interactuar fácilmente con modelos 3D alojados en la web en su entorno.
La mayoría de los navegadores de Android son compatibles con Scene Viewer. Muchos socios de Google han implementado con éxito Scene Viewer para admitir experiencias 3D y AR de manera confiable. También impulsa estas experiencias para la Búsqueda de Google.
La implementación es sencilla:
Las experiencias basadas en la web solo requieren enlaces con el formato adecuado en una página web.
Las experiencias basadas en aplicaciones solo requieren integrar unas pocas líneas de código Java.
Requisitos de tiempo de ejecución de Scene Viewer
Para experimentar AR con Scene Viewer, los usuarios deben tener:
- Un dispositivo compatible con ARCore que ejecute Android 7.0 Nougat (nivel de API 24) o posterior.
- Una versión actualizada (reciente) de Google Play Services para AR . Este servicio se instala automáticamente y se mantiene actualizado en la gran mayoría de los dispositivos compatibles con ARCore.
- Una versión actualizada de la aplicación de Google . Esta aplicación viene preinstalada y también se actualiza automáticamente en la gran mayoría de los dispositivos compatibles con ARCore.
Para proporcionar casos en los que los Servicios de Google Play para AR o la aplicación de Google no estén presentes o las versiones instaladas sean demasiado antiguas, puede especificar una URL alternativa que inicie una experiencia alternativa, por ejemplo, una página web, un mensaje de error, o una experiencia alternativa que haya creado.
Casos de uso admitidos
Caso de uso previsto | Aplicación recomendada | Beneficios |
---|---|---|
Desde un botón o enlace en un sitio web o aplicación de Android, inicie una vista AR nativa de un modelo 3D. Si Google Play Services para AR no está presente en el dispositivo, vuelva a mostrar el modelo en un modo 3D impulsado por Scene Viewer. | Inicie Scene Viewer utilizando una intención explícita para el paquete de búsqueda de Google y elija una configuración de mode adecuada para mostrar el modelo 3D.
|
|
Desde un botón o enlace en un sitio web o aplicación de Android, inicie una vista AR nativa de un modelo 3D. Si Google Play Services for AR no está presente en el dispositivo, controle el comportamiento alternativo. | Inicie Scene Viewer con una intención explícita de Google Play Services for AR (ARCore) y elija una configuración de mode adecuada para mostrar el modelo 3D.
| Use su propio visor de modelos 3D o proporcione otra respuesta alternativa de su propio diseño para casos de uso que no sean AR. |
Aloje una vista en línea de un modelo 3D en su sitio web y permita que el usuario ingrese manualmente en un modo AR nativo de pantalla completa. | Use <model-viewer> o cualquier otro visor 3D basado en la web para iniciar Scene Viewer mostrando de forma nativa el modelo 3D en AR. |
|
Inicie Scene Viewer usando una intención explícita (3D o AR)
Para admitir la gama más amplia de dispositivos Android, use una intención explícita de Android para iniciar Scene Viewer. La intención explícita se puede activar desde una página HTML o una aplicación nativa de Android. La aplicación Google se encargará de la intención que viene preinstalada en los dispositivos Android compatibles con ARCore.
Según los parámetros de intención configurados y las capacidades del dispositivo, los modelos 3D interactivos se pueden colocar en el entorno del usuario o volver a mostrarse en un visor 3D.
Si Google Play Services para AR está presente en el dispositivo, tal como está actualizado, Scene Viewer mostrará el modelo en una vista nativa de AR o en una vista 3D.
Si Google Play Services para AR no está presente o no está actualizado, Scene Viewer vuelve a mostrar el modelo en una vista 3D.
Si no se puede mostrar un modelo 3D, por ejemplo, porque la aplicación de Google no está instalada o es una versión anterior, se usará el parámetro
S.browser_fallback_url
para mostrar una página web alternativa.
Inicie Scene Viewer desde HTML o Java
HTML
Para activar la intención explícita de HTML, use la siguiente sintaxis:
<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
Para activar la intención explícita de Java, use el siguiente código:
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);
Versión de intención
La versión de la intención se indica mediante el número de versión después de arvr.google.com/scene-viewer
. Por ejemplo, la versión inicial utilizó la versión 1.0. Cuando se requieran funciones más nuevas de Scene Viewer, puede iniciar Scene Viewer con una versión de intención superior correspondiente a las funciones que necesita.
La versión 1.1 de Intent agregó compatibilidad con los enlaces intent://
, que pueden iniciarse directamente en una aplicación de Android en lugar de en una URL. Si desea que Scene Viewer garantice que esta funcionalidad está disponible cuando se inicia y no se inicia de lo contrario, inicie el visor de escenas con la intención de intent://arvr.google.com/scene-viewer/1.1
.
Parámetros de intención admitidos
Los siguientes parámetros son compatibles con una intención explícita del paquete de búsqueda de Google.
Parámetro de intención | Valores permitidos | Comentarios |
---|---|---|
file (requerido) | Una URL válida | Esta URL especifica el archivo glTF o glb que debe cargarse en Scene Viewer. Esto debe ser escape de URL. |
S.browser_fallback_url (requerido para intenciones basadas en HTML) | Una URL válida | Esta es una función de Google Chrome admitida solo para implementaciones basadas en la web. Cuando la aplicación de Google no está presente en el dispositivo, esta es la URL a la que navega Google Chrome. |
mode (opcional) | 3d_preferred (predeterminado) | Scene Viewer muestra el modelo en modo 3D con un botón Ver en su espacio . Si Google Play Services for AR no está presente en el dispositivo, el botón Ver en su espacio está oculto. |
3d_only | Scene Viewer se inicia con el modelo que se muestra en modo 3D, incluso si Google Play Services for AR está presente en el dispositivo. El botón Ver en tu espacio nunca se muestra. | |
ar_preferred | Scene Viewer se inicia en modo AR nativo como modo de entrada. El usuario tiene la opción de cambiar entre los modos AR y 3D a través de los botones Ver en su espacio y Ver en 3D . Si Google Play Services para AR no está presente, Scene Viewer vuelve con gracia al modo 3D como modo de entrada. | |
ar_only | Al usar este valor, debe iniciar a través de una intención explícita de Android en com.google.ar.core .Nota: No use el modo ar_only cuando se inicie a través de una intención explícita de Android en la aplicación de Google . | |
link (opcional) | Una URL válida | Una URL para una página web externa. Si está presente, aparecerá un botón en la interfaz de usuario que apunta a esta URL cuando se hace clic. |
title (opcional) | Cadena válida | Un nombre para el modelo. Si está presente, se mostrará en la interfaz de usuario. El nombre se truncará con puntos suspensivos después de 60 caracteres. |
sonido (opcional) | Una URL válida | Una URL a una pista de audio en bucle que está sincronizada con la primera animación incrustada en un archivo glTF. Debe proporcionarse junto con un glTF con una animación de longitud equivalente. Si está presente, el sonido se repite después de cargar el modelo. Esto debe ser escape de URL. |
resizable (opcional) | true (predeterminado) | Cuando se establece en false , los usuarios no podrán escalar el modelo en la experiencia AR. El escalado funciona normalmente en la experiencia 3D. |
enable_vertical_placement (opcional) | false (predeterminado) | Cuando se establece en true , los usuarios podrán colocar el modelo en una superficie vertical. |
Guía de experiencia de usuario
Para proporcionar la mejor experiencia de usuario posible a los usuarios, recomendamos que las llamadas a la acción visibles transmitan que el usuario está a punto de ingresar a un entorno inmersivo.
Para experiencias de visor 3D, recomendamos una llamada a la acción etiquetada Ver en 3D que se parece a una de las siguientes imágenes:
Inicie Scene Viewer con una intención explícita de Google Play Services para AR (solo modo AR)
El modo AR en Scene Viewer funciona con Google Play Services para AR.
Para asegurarse de que AR esté disponible en Scene Viewer, puede usar una intención explícita de Android desde un sitio web o una aplicación nativa de Android para iniciar Scene Viewer a través del com.google.ar.core package
y proporcionar un browser_fallback_url
. De esta manera, puede asegurarse de que todos los usuarios tengan una experiencia AR nativa a través de Scene Viewer o una experiencia alternativa que haya creado usted mismo. Por ejemplo, puede crear experiencias alternativas, como su propio visor 3D o un elegante mensaje de error.
Para activar la intención explícita de HTML, use la siguiente sintaxis:
<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>;
Para activar la intención explícita de Java, use el siguiente código:
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);
Parámetros de intención admitidos
Los siguientes parámetros son compatibles con una intención explícita del paquete Google Play Services for AR.
Parámetro de intención | Valores permitidos | Comentarios |
---|---|---|
browser_fallback_url (requerido para intenciones basadas en HTML) | Una URL válida | Esto solo se admite para implementaciones basadas en web. Cuando Google Play Services for AR no está presente en el dispositivo o no está actualizado, esta es la URL a la que navega. |
mode (opcional) | ar_only | Scene Viewer siempre inicia el modelo 3D en una vista AR nativa y oculta cualquier interfaz de usuario para cambiar al visor 3D de Scene Viewer. Si Google Play Services for AR no está presente, Scene Viewer inicia la URL que configuró en browser_fallback_url para experiencias basadas en la web. Para las experiencias basadas en aplicaciones, Scene Viewer recurre a una experiencia alternativa, como un mensaje de error u otra experiencia que haya creado usted mismo. |
ar_preferred | Scene Viewer se inicia en modo AR nativo como modo de entrada y brinda a los usuarios la opción de cambiar entre los modos AR y 3D a través de los botones Ver en su espacio y Ver en 3D . Si Google Play Services for AR no está presente, Scene Viewer inicia la URL que configuró en browser_fallback_url para experiencias basadas en la web. Para las experiencias basadas en aplicaciones, Scene Viewer recurre a una experiencia alternativa, como un mensaje de error u otra experiencia que haya creado usted mismo. | |
link (opcional) | Una URL válida | Una URL para una página web externa. Si está presente, aparecerá un botón en la interfaz de usuario que apunta a esta URL cuando se hace clic. La versión 1.1 agregó soporte para enlaces intent:// en Scene Viewer para permitir que el botón de visita de Scene Viewer se active directamente en otras aplicaciones. Tenga en cuenta que esto debe usarse con cuidado y solo debe especificarse cuando se garantiza que un controlador de intención esté presente para la intención dada. |
title (opcional) | Cadena válida | Un nombre para el modelo. Si está presente, se mostrará en la interfaz de usuario. El nombre se truncará con puntos suspensivos después de 60 caracteres. La versión 1.1 agregó soporte para el estilo html del contenido del título, con una cantidad arbitraria de texto permitida. Tenga en cuenta que el título debe tener escape de URL. |
sound (opcional) | Una URL válida | Una URL a una pista de audio en bucle que está sincronizada con la primera animación incrustada en un archivo glTF. Debe proporcionarse junto con un glTF con una animación de longitud equivalente. Si está presente, el sonido se repite después de cargar el modelo. |
resizable (opcional) | true (predeterminado) | Cuando se establece en false , los usuarios no podrán escalar el modelo en la experiencia AR. El escalado funciona normalmente en la experiencia 3D. |
Guía de experiencia de usuario
Para proporcionar la mejor experiencia de usuario posible a los usuarios, recomendamos seguir estas pautas.
Para las experiencias AR, la llamada a la acción visible debe transmitir que el usuario está a punto de ingresar a un entorno inmersivo. Le recomendamos que utilice la llamada a la acción Ver en su espacio :
Es posible que los usuarios no tengan Google Play Services para AR instalado en su dispositivo. Así es como
<model-viewer>
maneja el respaldo y puede sentirse libre de usar ese fragmento de código como punto de partida.// 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);
Uso <model-viewer>
para iniciar Scene Viewer
Puede habilitar Scene Viewer desde su sitio web al incluir el componente web <model-viewer>
con el atributo ar
.
<model-viewer ar
ar-modes="scene-viewer webxr quick-look"
alt="A 3D model of an astronaut."
src="Astronaut.gltf"></model-viewer>
Cuando se ve en un dispositivo Android compatible con ARCore, un sitio web que incluye el componente <model-viewer>
con el atributo ar
muestra un botón como se muestra en el siguiente ejemplo.
Cuando el modo scene-viewer
se usa en ar-modes
, cambia a una vista AR nativa e invita al usuario a colocar el modelo en su entorno usando el Visor de escena.
Si Google Play Services con AR no está presente, tocar este botón muestra el modelo en el visor 3D de <model-viewer>
.
Consulte la documentación de <model-viewer>
para obtener más información sobre cómo comenzar con <model-viewer>
.
Requisitos de archivo para modelos
Scene Viewer tiene el siguiente soporte y limitaciones para los modelos.
Soporte de formato de archivo | glTF 2.0/ glb , usando estas extensiones:
|
Animación |
glTF contiene varias animaciones, Scene Viewer solo reproduce la primera animación. |
Límites recomendados | El rendimiento general de los activos depende de establecer restricciones y hacer concesiones entre vértices, materiales, resolución de textura, malla por material y otros factores. Use las siguientes pautas para optimizar sus activos.
|
Soporte de sombra | El Visor de escenas procesa automáticamente las sombras marcadas al colocar un objeto, por lo que le recomendamos que no hornee sombras en su modelo. |
Soporte de textura |
|
Material | PBR |
Carga de archivos | HTTPS |
Escena |
|
Uso de la herramienta de vista previa para validar sus modelos 3D
Para asegurarse de que su archivo de modelo 3D se muestre correctamente en Scene Viewer, use nuestra herramienta de vista previa en línea para validar los archivos en su PC.
Validación de su modelo 3D
Para validar un modelo, la herramienta de vista previa necesita un archivo glb o glTF, cualquier imagen asociada y archivos bin, y un archivo de audio opcional. El archivo de audio se repetirá junto con la animación 0.
Puede seleccionar múltiples archivos individuales u, opcionalmente, colocar el glb o glTF y sus archivos asociados en un archivo zip. (El método de archivo zip no admite archivos de audio).
Para validar su modelo 3D:
Abra la herramienta de vista previa en línea en un navegador.
Utilice uno de estos métodos para agregar los archivos a la herramienta de vista previa:
Arrastra y suelta . Seleccione un archivo glb o glTF y todos sus archivos asociados (o un archivo zip que contenga estos archivos) y arrastre los archivos seleccionados o el archivo zip a la herramienta de vista previa.
Desde la herramienta de vista previa . En la herramienta de vista previa, seleccione Visor de escenas > Cargar archivo . Seleccione un archivo glb o glTF y todos sus archivos asociados (o un archivo zip que contenga estos archivos) y haga clic en Abrir .
Después de cargar los archivos que consisten en su modelo 3D en la herramienta de vista previa, una consola en la parte inferior del navegador muestra los resultados, incluidos los mensajes de error.
Adición de modelos 3D para validación
Para validar un modelo 3D, agregue los archivos que componen el modelo 3D a nuestra herramienta Model Editor .
Para validar un modelo, el visualizador necesita el archivo glb o glTF del modelo, cualquier imagen asociada y archivos bin, y un archivo de audio opcional. Puede seleccionar múltiples archivos individuales o agregar un solo archivo zip.
Al agregar un archivo zip, la vista previa carga el primer glb o glTF que encuentra, así como la imagen asociada y los archivos bin dentro de ese archivo zip.
Abra la herramienta Editor de modelos en un navegador.
Utilice uno de estos métodos para agregar los archivos a la herramienta de vista previa:
Para arrastrar y soltar archivos para la validación, seleccione varias veces el archivo glb o glTF y cualquier archivo asociado (o seleccione un archivo zip que contenga estos archivos) y arrástrelo a la herramienta de vista previa.
Seleccionar archivos de la herramienta de vista previa . En la herramienta de vista previa, seleccione Visor de escenas > Cargar archivo . Seleccione varias veces el archivo glb o glTF y todos sus archivos asociados (o un archivo zip que contenga estos archivos) y haga clic en Abrir .
Errores de validación
Código de error | Gravedad | Mensaje | Valores admitidos actuales |
---|---|---|---|
INVALID_INPUT_FILE_EXTENSION | Error | El archivo de entrada [nombre de archivo] tiene una extensión de archivo que no es compatible con el validador. | ['.glb', '.gltf'] |
REC_INPUT_BINARY_SIZE_EXCEEDED | Advertencia | La entrada de usuario proporcionada tiene un tamaño binario que supera el límite recomendado por la especificación de Scene Viewer, que es un límite de tamaño recomendado de [tamaño] MB. | 10 |
MAX_INPUT_BINARY_SIZE_EXCEEDED | Error | La entrada de usuario proporcionada tiene un tamaño binario que supera el límite máximo admitido por la especificación de Scene Viewer, que es un límite de tamaño máximo de [tamaño] MB. | 15 |
UNSUPPORTED_GLTF_EXTENSION_USED | Error | La extensión [ext] en glTF no es compatible con la especificación de Scene Viewer. | ['KHR_materials_pbrSpecularGlossiness', 'KHR_materials_unlit', 'KHR_texture_transform'] |
ANIMATION_LIMIT_EXCEEDED | Error | La cantidad de animaciones en el glTF excede el límite admitido por la especificación de Scene Viewer, que es un máximo de [num] animaciones. | 1 |
MORPH_TARGET_USED | Error | El glTF contiene un objetivo de transformación, que no es compatible con la especificación de Scene Viewer. | |
MATERIAL_LIMIT_EXCEEDED | Advertencia | La cantidad de materiales en el glTF excede el límite recomendado por la especificación de Scene Viewer, que es un máximo de [num] materiales. | 10 |
TEXTURE_RESOLUTION_LIMIT_EXCEEDED | Advertencia | La resolución de la imagen en el índice [idx] en el glTF supera el límite recomendado por la especificación de Scene Viewer, que es una resolución máxima de [res] x [res]. | 2048x2048 |
UV_LIMIT_EXCEEDED | Error | El número de UV por malla en el glTF supera el límite admitido por la especificación de Scene Viewer, que es un máximo de [num] UV por malla. | 1 |
VERTEX_COLOR_USED | Error | El glTF contiene un color de vértice, que no es compatible con la especificación de Scene Viewer. | |
JOINT_LIMIT_EXCEEDED | Error | El número de articulaciones en el glTF excede el límite admitido por la especificación de Scene Viewer, que es un máximo de [num] articulaciones. | 254 |
TRIANGLE_LIMIT_EXCEEDED | Advertencia | La cantidad de triángulos en el glTF excede el límite recomendado por la especificación de Scene Viewer, que es un máximo de [num] triángulos. | 100,000 |
PRIMITIVE_MODE_UNSUPPORTED | Error | El modo primitivo [modo] no es compatible con la especificación de Scene Viewer. | {4: Lista de triángulos, 5: Tira de triángulos, 6: Abanico de triángulos} |
MISSING_PBR_METALLIC_ROUGHNESS | Información | Al material del índice [idx] le falta la propiedad pbrMetallicRoughness . Esto no es requerido por la especificación de Scene Viewer si en su lugar se utilizan factores metálicos y de rugosidad. Si no se utiliza ninguno de estos, el material utilizará valores predeterminados, lo que puede provocar un comportamiento no deseado. |