Si ya ha utilizado la APIConcepto de API¿Qué es una API?Una API, siglas de Application Programming Interface o Interfaz de Programación de Apps, es un recopilatorio de código que se puede emplear para que varias apps se comuniquen entre ellas. Es algo que realiza una tarea equivalente a la interfaz de usuario al momento de promover la interacción entre persona y programa, solo que aplicado única y exclusivamente dentro del entorno del software.Aún cuando suene Suite de dispositivo WebXR, ya ha recorrido la mayor parte del camino.
L'API WebXR Device a été livrée à l'automne dernier dans Chrome 79. Comme indiqué à l'époque, la mise en œuvre de l'API dans Chrome est un travail en cours. Chrome est heureux d'annoncer qu'une partie du travail est terminée. Dans Chrome 81, deux nouvelles fonctionnalités sont arrivées:
Este artículo cubre la realidad aumentada¿Qué es la realidad aumentada?Tecnología que posibilita la reproducción en pantalla del entorno real captado por una cámara, sobre el que se superpone una capa de contenidos virtuales e interactivos generando una nueva realidad combinada. Suite. Si ya ha utilizado WebXR Device API, le alegrará saber que hay muy pocas novedades que aprender. Entrar en una sesión de WebXR es básicamente lo mismo. Ejecutar un bucle de cuadro es básicamente lo mismo. Las diferencias radican en configuraciones que permiten mostrar el ContenuEl contenido puede ser muy difícil de definir con precisión. Es una definición que se refiere a las declaraciones contenidas en un documento o publicación de cualquier tipo y puede incluir las tecnologías de la información y la comunicación. Esto cubre todos los tipos de medios como imágenes y texto. A parte de esto, en el campo de la optimización de motores de búsqueda, los términos duplicar contenido, contenido único, Suite de forma adecuada para la realidad aumentada. Si no está familiarizado con los conceptos básicos de WebXR, debería leer mis publicaciones anteriores sobre la API del dispositivo WebXR, o al menos estar familiarizado con los temas que se tratan allí. Debe saber cómo solicitar e ingresar a una sesión y debe saber cómo ejecutar un bucle de tramas.
Pour plus d'informations sur les tests de positionnement, consultez l'article complémentaire Positionnement d'objets virtuels dans des vues du monde réel. Le code de cet article est basé sur l'exemple de session immersive AR (manifestation
Fontaine) du groupe de travail Immersive Web Exemples d'API de périphérique WebXR.
Avant de plonger dans le code, vous devez utiliser le Exemple de session de réalité augmentée immersive
au moins une fois. Vous aurez besoin d'un téléphone Android moderne avec Chrome 81 ou version ultérieure.
Pourquoi est-ce?
La realidad aumentada será una valiosa adición a muchas páginas web nuevas o existentes al permitirles implementar casos de uso de RA sin salir del le navigateurUn navegador (además: browser) es una herramienta informática que te permite ver documentos y datos y navegar por la red. Los navegadores pueden mostrar distintos tipos de recursos de información; principalmente documentos HTML, a pesar de todo, además son posibles otros tipos de archivos y contenido multimedia, como PDF, JPEG, MPEG, GIF o el lenguaje de meta marcado. A través el uso de complementos especiales y la configuración respectivo, los Suite. Por ejemplo, puede ayudar a las gensLas personas son personalidades imaginarias que representan a un determinado grupo objetivo. En el marketing online, las personas ayudan a entender mejor a los usuarios de un portal web o a los clientes de una tienda online. Concepto de personas Para que las personas puedan ejercer su efecto positivo, deben ser lo más detalladas viable. Esto conlleva un término exhaustiva de los grupos destinatarios para conseguir datos empíricos. La próxima Suite a aprender en sitios educativos y permitir que los compradores potenciales visualicen objetos en su hogar mientras compran.
Considérez le deuxième cas d'utilisation. Imaginez la simulation de placer une représentation grandeur nature d'un objet virtuel dans une scène réelle. Une fois placée, l'image reste sur la surface sélectionnée, apparaît à la taille qu'elle aurait si l'élément réel était sur cette surface et permet à l'utilisateur de se déplacer autour d'elle, ainsi que de s'en rapprocher ou de s'en éloigner. Cela donne aux téléspectateurs une compréhension plus profonde de l'objet que ce qui est possible avec une image bidimensionnelle.
Je prends un peu d'avance sur moi-même. Pour faire ce que j'ai décrit, vous avez besoin de la fonctionnalité AR et de certains moyens de détecter les surfaces. Cet article couvre le premier. L'article d'accompagnement sur l'API WebXR Success Test (lien ci-dessus) couvre ce dernier.
Demander une session
Demander une session est très similaire à ce que vous avez vu auparavant. Vérifiez d'abord si le type de session souhaité est disponible sur l'appareil actuel en appelant
xr.isSessionSupported (). Au lieu de demander 'immersive-vr' comme avant, demandez 'immersif-ar'.
si (navigateur.xr) {
const supported = attendre navigateur.xr.isSessionSupported('immersif-ar');
si (supported) {
xrButton.addEventListener('click', onButtonClicked);
xrButton.textContent = 'Enter AR';
xrButton.enabled = supported;
}
}
Comme précédemment, cela active un bouton «Entrer AR». Lorsque l'utilisateur clique dessus, appelez
xr.requestSession (), se passe aussi 'immersif-ar'.
laisser xrSession = nul;
une fonction onButtonClicked() {
si (!xrSession) {
navigateur.xr.requestSession('immersif-ar')
.then((session) => {
xrSession = session;
xrSession.isImmersif = vrai;
xrButton.textContent = 'Exit AR';
onSessionStarted(xrSession);
});
} else {
xrSession.finir();
}
}
Une propriété de commodité
Vous avez probablement remarqué que j'ai mis en évidence deux lignes dans le dernier exemple de code. Les XRSession l'objet semble avoir une propriété appelée isImmersif. Il s'agit d'une propriété de commodité que j'ai créée moi-même et qui ne fait pas partie de la spécification. Je l'utiliserai plus tard pour décider de ce que je vais montrer au spectateur. Pourquoi cette propriété ne fait-elle pas partie de l'API? Étant donné que votre application peut avoir besoin de suivre cette propriété différemment, les auteurs de la spécification ont décidé de garder l'API propre.
Entrez une session
Souviens-toi que onSessionStarted () cela ressemblait à mon article précédent:
une fonction onSessionStarted(xrSession) {
xrSession.addEventListener('end', onSessionEnded);laisser canvas = document.createElement('canvas');
gl = canvas.getContext('webgl', { xrCompatible: vrai });
xrSession.updateRenderState({
baseLayer: new XRWebGLLayer(session, gl)
});
xrSession.requestReferenceSpace('local-floor')
.then((refSpace) => {
xrRefSpace = refSpace;
xrSession.requestAnimationFrame(onXRFrame);
});
}
Je dois ajouter quelques éléments pour rendre compte du rendu de la réalité augmentée. Désactiver l'arrière-plan Tout d'abord, je vais déterminer si j'ai besoin de l'arrière-plan. C'est le premier endroit où j'utiliserai ma propriété de commodité.
une fonction onSessionStarted(xrSession) {
xrSession.addEventListener('end', onSessionEnded);
si (session.isImmersif) {
removeBackground();
}
laisser canvas = document.createElement('canvas');
gl = canvas.getContext('webgl', { xrCompatible: vrai });
xrSession.updateRenderState({
baseLayer: new XRWebGLLayer(session, gl)
});
refSpaceType = xrSession.isImmersif ? 'local' : 'viewer';
xrSession.requestReferenceSpace(refSpaceType).then((refSpace) => {
xrSession.requestAnimationFrame(onXRFrame);
});
}
Espaces de référence
Mes articles précédents sont passés par les espaces de référence. L'exemple que je décris en utilise deux, il est donc temps de corriger cette omission.
Une explication complète des espaces de référence serait plus longue que ce que je peux fournir ici. Je ne parlerai d'espaces de référence qu'en matière de réalité augmentée.
Un espace de référence décrit la relation entre le monde virtuel et l'environnement physique de l'utilisateur. Il le fait en:
- Spécifiez l'origine du système de coordonnées utilisé pour exprimer les positions dans le monde virtuel.
- Spécifiez si l'utilisateur doit se déplacer dans ce système de coordonnées.
- Si ce système de coordonnées a des limites prédéfinies. (Les exemples présentés ici n'utilisent pas de systèmes de coordonnées avec des limites prédéfinies.)
Pour tous les espaces de référence, la coordonnée X exprime la gauche et la droite, Y exprime le haut et le bas et Z exprime l'avant et l'arrière. Les valeurs positives sont correctes, respectivement vers le haut et vers l'arrière.
Les coordonnées renvoyées par XRFrame.getViewerPose () dépend de ce qui est demandé
type d'espace de référence. Plus d'informations à ce sujet lorsque nous arrivons à la boucle de trame. À ce stade, nous devons sélectionner un type de référence adapté à la réalité augmentée. Encore une fois, cela utilise ma propriété de commodité.
laisser refSpaceType
une fonction onSessionStarted(xrSession) {
xrSession.addEventListener('end', onSessionEnded);
si (session.isImmersif) {
removeBackground();
}
laisser canvas = document.createElement('canvas');
gl = canvas.getContext('webgl', { xrCompatible: vrai });
xrSession.updateRenderState({
baseLayer: new XRWebGLLayer(session, gl)
});
refSpaceType = xrSession.isImmersif ? 'local' : 'viewer';
xrSession.requestReferenceSpace(refSpaceType).then((refSpace) => {
xrSession.requestAnimationFrame(onXRFrame);
});
}
Si vous avez visité le Exemple de session de réalité augmentée immersive
Vous remarquerez qu'au départ la scène est en réalité statique et non augmentée. Vous pouvez faire glisser et faire glisser votre doigt pour vous déplacer dans la scène. Si vous cliquez sur "START AR", l'arrière-plan disparaît et vous pouvez vous déplacer dans la scène en déplaçant l'appareil. Les modes utilisent différents types d'espaces de référence. Le texte en surbrillance ci-dessus montre comment il est sélectionné. Utilisez les types de référence suivants:
local - L'origine native est à la position du spectateur au moment de la création de la session. Cela signifie que l'expérience n'a pas forcément un plancher bien défini et que la position exacte de l'origine peut varier en fonction de la plate-forme. Bien qu'il n'y ait pas de limites prédéfinies pour l'espace, on s'attend à ce que le contenu puisse être visualisé sans mouvement autre que la rotation. Comme vous pouvez le voir dans notre propre exemple de RA, certains mouvements sont possibles dans l'espace.
téléspectateur - Plus fréquemment utilisé pour le contenu présenté en ligne sur la page, cet espace suit le dispositif d'affichage. Lorsqu'il est passé à getViewerPose, il ne fournit pas de suivi et signale donc toujours une pose à l'origine à moins que l'application ne la modifie avec XRReferenceSpace.getOffsetReferenceSpace (). L'exemple l'utilise pour activer le panoramique tactile de la caméra.
Exécution d'une boucle d'image
Conceptualmente, nada cambia con respecto a lo que hice en la sesión de realité virtuelLa Realidad Virtual es un mundo artificial creado por medio de programas informáticos. Un usuario es teléfono celular en este mundo. La sección respectivo del mundo digital creado artificialmente se adapta a los movimientos y puntos de vista del usuario. Al ingresar en la realidad virtual, todos los movimientos del cuerpo pueden ser utilizados para la navegación y la percepción. "Las "gafas de realidad virtual" se usan normalmente como interfaz Suite descrita en mis artículos anteriores. Pase el tipo de espacio de referencia a XRFrame.getViewerPose (). Retour XRViewerPose sera pour le type d'espace de référence actuel. Utilisant
téléspectateur comme valeur par défaut, permet à une page d'afficher des aperçus de contenu avant que le consentement de l'utilisateur pour la RA ou la RV ne soit demandé. Cela illustre un point important: le contenu en ligne utilise la même boucle de trame que le contenu immersif, ce qui réduit la quantité de code à conserver.
une fonction onXRFrame(hrTime, xrFrame) {
laisser xrSession = xrFrame.session;
xrSession.requestAnimationFrame(onXRFrame);
laisser xrViewerPose = xrFrame.getViewerPose(refSpaceType);
si (xrViewerPose) {
}
}
conclusion
Cette série d'articles ne couvre que les bases de la mise en œuvre de contenu immersif sur le Web. Le groupe de travail Web immersif présente de nombreuses autres fonctionnalités et cas d'utilisation. Exemples d'API de périphérique WebXR. También acabamos de publicar un artículo de prueba de éxito que explica una API para detectar superficies y colocar elementos virtuales en una vista de cámara del mundo real. Échales un vistazo y mira el BlogEl término blog se usa para describir un diario virtual en Internet. El autor de un blogger puede publicar posts sobre cualquier tema. Los posts suelen estar presente de forma cronológica. El estilo de redacción de un blog suele ser informal y se escribe en primera persona. No obstante, además son posibles otros estilos, por ejemplo en el caso de los periódicos online, en los que la atención se centra Suite de web.dev para ver más artículos durante el próximo año.
photo par David Grandmougin au Unsplash




