A la découverte de la réalité augmentée avec ARCore - Snowcamp.io
1. A la découverte de la réalité
augmentée avec ARCore
Christophe Jollivet @jollivetc
Jérémy Voisin @_JeremyVoisin_
1
2. A la découverte de la réalité
augmentée avec ARCore
service Google pour la réalité
augmentée
Christophe Jollivet @jollivetc
Jérémy Voisin @_JeremyVoisin_
2
6. @jollivetc - @_JeremyVoisin_
VR vs AR vs MR
6
Oculus Rift, Playstation VR
HTC Vive, Oculus Go
Samsung Gear VR
Lenovo Mirage Solo
XWing by Jim Reichert https://poly.google.com/view/1ykktCaJIum
Background by Jean Dean https://apod.nasa.gov/apod/ap190412.html
VR
Smartphones
Google Glass
Vuzix Blade AR
Everysight Raptor
AR
Microsoft Hololens
Magic Leap One
MR
10. @jollivetc - @_JeremyVoisin_
Pose
10
Combinaison de rotation et une translation par rapport à une
origine
Définit l’emplacement et l’orientation d’un élément de la scène
par rapport à un autre point de la scène
13. @jollivetc - @_JeremyVoisin_
Téléphones compatibles
13
Version Android 7 (API 24)
Liste téléphones compatibles :
https://developers.google.com/ar/discover/supported-devices
183 modèles le 23/01/2020
14. @jollivetc - @_JeremyVoisin_
Capacités d’ARCore
• Compréhension de
l’environnement
• les plans
• la lumière
• les visages
• les images
14
• le mouvement
• Cloud Anchors
16. @jollivetc - @_JeremyVoisin_
La lumière
16
Basée sur les lighting cues :
• Estimation de l’intensité
• Correction de couleur à appliquer
• Ombres intelligentes
• Emulation des reflets
17. @jollivetc - @_JeremyVoisin_
Suivi de mouvement
17
VIO Algorithm : Visual-Inertial Odometry
Combine l’identification de points d’intérêts détectés par la
caméra et les informations des capteurs de mouvements
22. @jollivetc - @_JeremyVoisin_
<model-viewer>
22
Intégration d’ARCore dans le navigateur
Sous forme de WebComponent
<model-viewer ar alt="A 3D model of an astronaut." src="Astronaut.gltf"></model-viewer>
Compatible avec la plupart des navigateurs
23. @jollivetc - @_JeremyVoisin_
<model-viewer> - limitations
23
Limitations sur la complexité du modèle 3D :
• 30000 vertices max
• 10 materials max
Une seule animation possible, jouée en boucle
Interaction limitée
30. @jollivetc - @_JeremyVoisin_
Anchor
30
Décrit une localisation fixe et orientation dans le monde réel
Peut évoluer quand la compréhension du monde réel par
ARCore évolue
Attention coûte continuellement du temps de calcul
31. @jollivetc - @_JeremyVoisin_
API basique
31
APi bas niveau avec OpenGL
On gère tout à la main :
- inviter l’utilisateur à scanner l’environnement
- affichage des plans
- affichage de modèle depuis un fichier obj
- gestion des interactions
32. @jollivetc - @_JeremyVoisin_
Sceneform
32
Permet le rendu réaliste de scène 3D en AR ou non sans
apprendre OpenGL
- API haut niveau
- Un moteur de rendu physique réaliste (Filament)
- Un plugin Android Studio pour les modèles 3D
33. @jollivetc - @_JeremyVoisin_
ARFragment
33
Gestion de la détection des plans et de l’affichage
Gestion des gestes de l’utilisateur (tap, drag, pinch, twist)
<fragment android:name="com.google.ar.sceneform.ux.ArFragment"
android:id="@+id/ux_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
34. @jollivetc - @_JeremyVoisin_
Scene / Node
34
Scene est un graph de Node
Tout est Node : AnchorNode, TransformableNode,
SkeletonNode, AugmentedFaceNode, Camera, Light
Scene fournit la détection de Hit
45. @jollivetc - @_JeremyVoisin_
CloudAnchor
45
Permet le partage d’Anchor entre appareils
Sauvegarde pendant 24h
Nécessite le service sur Google Cloud Platform (clé à ajouter
dans le AndroidManifest.xml)
53. @jollivetc - @_JeremyVoisin_
ARKit
53
• Sur iOS, ARKit est le framework de réalité augmentée
• Interprétation de l’environnement, estimation de lumière,
tracking des mouvements
• Gestion d’un mode « multijoueur » avec le
MultipeerConnectivity
57. @jollivetc - @_JeremyVoisin_
AR et Unity
57
• Framework Vuforia historiquement intégré à Unity
• Reconnaissance d’images et d’objets simples via RN
• Superposition d’images ou modèles 3D
58. @jollivetc - @_JeremyVoisin_
ARCore vs Vuforia
58
• Intégration dans Unity
• Images / Objets augmentés
• Détection du sol
• Licence commerciale
• Intégration dans Unity
• Suivi des mouvements
• Compréhension de l’environnement
• Estimation de la lumière
• Licence Apache 2.0
59. @jollivetc - @_JeremyVoisin_
Pourquoi Unity ?
59
• Un moteur de jeux vidéos, moteur physique, gestion réseau
• Un asset store riche
• Intégration de modèles 3D standards du marché
61. @jollivetc - @_JeremyVoisin_
Unity
61
Un coût d’entrée qui n’est cependant pas neutre pour ARCore :
• C# vs Java
• IDE à prendre en main
• Concepts à appréhender
• Nouveau mode de programmation
63. @jollivetc - @_JeremyVoisin_
OpenXR
63
• Un standard pour l’AR et la VR annoncé en Février 2017
• Par le consortium Khronos Group
• Version 1.0 le 29 juillet 2019