Fonction de la caméra dans les scènes AR
L'effet AR dans Unity dépend de la caméra. Vous découvrirez ici le rôle de la caméra dans les scènes AR et comment la session contrôle ses propriétés pour garantir une expérience AR correcte.
Composants de session
- Comprenez les concepts de base, la composition et le flux de travail d'une session via Introduction à ARSession.
Fonction de la caméra dans les scènes AR
Dans Unity, la caméra est utilisée pour présenter le monde du jeu au joueur. Dans les scènes AR, son rôle est encore plus crucial. Non seulement elle rend le contenu virtuel, mais elle doit également s'aligner avec le monde réel pour que les objets virtuels se superposent correctement au monde réel.
Cette vidéo montre une scène AR simple. À gauche se trouve la vue
Scene, à droite la vueGame. La vidéo a été enregistrée en modePlayde l'éditeur Unity avec des données de simulation. Le contenu de la vueGamecorrespond à ce que l'utilisateur voit dans le monde réel sur son téléphone.On peut observer que la caméra (icône de caméra) représentant l'utilisateur se déplace en fonction de ses mouvements dans le monde réel. Le cône blanc capture la trajectoire passée de la position et de l'orientation de la caméra. Dans la vue
Game, la caméra affiche non seulement le contenu virtuel de la vueScene, mais superpose également l'image du monde réel sous le contenu virtuel, ce qui est typique du fonctionnement d'une caméra dans une scène AR.
Pour garantir un alignement correct entre les objets virtuels et le monde réel, certaines propriétés de la caméra doivent être ajustées en fonction de l'état d'exécution AR. Ces propriétés incluent :
- Le transform de la caméra (position et orientation)
- Le champ de vision (FOV), le rapport d'aspect (aspect ratio) et la matrice de projection de la caméra
- Les paramètres de délimitation (culling) de la caméra (GL.invertCulling)
Avertissement
Pendant le développement d'applications, la modification de ces propriétés de la caméra de session n'est pas prise en charge. Cela pourrait entraîner un mauvais alignement du contenu virtuel avec le monde réel, affectant l'expérience utilisateur. Même si ces propriétés sont modifiées par certains moyens, le système AR écrasera ces modifications pendant l'exécution ou provoquera des comportements imprévisibles en raison d'incohérences entre les données de rendu et de calcul.
Selon l'entité contrôlant ces propriétés, les caméras utilisées par la session se divisent en deux catégories : caméras contrôlées par la session et caméras non contrôlées par la session.
Caméras contrôlées par la session
Si la caméra de la session n'appartient à aucun système externe (comme un casque ou AR Foundation), la session contrôle automatiquement les propriétés ci-dessus pour garantir un alignement correct avec le monde réel.
Transform
Le transform de la caméra (position et orientation) est ajusté par la session en fonction de l'état d'exécution des fonctionnalités AR. Généralement, la session met à jour la position et l'orientation de la caméra en utilisant les données de suivi de mouvement et/ou les données de suivi des cibles (targets), assurant ainsi la cohérence entre ce que voit l'utilisateur et le monde réel.
Dans Unity, le point de référence central de tout suivi AR est appelé centre de session. Les règles déterminant ce centre pendant l'exécution de la session sont appelées modes de centre. Le comportement du transform de la caméra varie selon le mode de centre :
En mode centre Camera, la caméra peut se déplacer librement.
Le mode Camera est rarement utilisé par les applications.
Dans les autres modes de centre (comme FirstTarget), la caméra ne peut pas se déplacer librement.
FirstTarget est le mode adopté par la plupart des applications AR.
Avertissement
La valeur d'échelle (scale) du transform de la caméra doit toujours rester (1, 1, 1). La modifier pourrait provoquer des comportements imprévisibles.
Matrice de projection
La matrice de projection de la caméra est mise à jour à chaque image par la session en fonction des paramètres internes de la caméra physique, garantissant un positionnement correct du contenu virtuel dans le monde réel.
Paramètres de délimitation
Les paramètres de délimitation (culling) de la caméra (GL.invertCulling) sont ajustés en fonction des paramètres de miroir de la session pour assurer un rendu correct du contenu virtuel dans le monde réel.
Lorsque le paramètre HorizontalFlip correspond à World pour la caméra utilisée, GL.invertCulling est défini sur true. C'est la configuration par défaut pour les caméras frontales.
Flux vidéo d'arrière-plan AR
Dans les scènes AR, la caméra affiche généralement le flux vidéo de la caméra physique en arrière-plan pour renforcer l'immersion. La session gère automatiquement l'acquisition et le rendu du flux vidéo, assurant son alignement avec le contenu virtuel.
Caméras non contrôlées par la session
Lors de l'utilisation de casques ou d'AR Foundation, et lorsque la FrameSource spécifie IsCameraUnderControl comme false, la session ne contrôle pas les propriétés ci-dessus de la caméra. C'est un système externe qui en est responsable.
Avertissement
Bien que la session ne contrôle pas ces propriétés dans ce cas, elles sont gérées par des systèmes tiers (comme un SDK de casque ou AR Foundation). Leur modification pendant le développement d'applications reste non prise en charge.
Considérations lors de la copie d'une caméra
Lors de la copie des paramètres d'une caméra de session vers une autre caméra, portez une attention particulière à ces deux points :
- Moment d'acquisition des propriétés : Avec une caméra contrôlée, référez-vous à Obtenir les résultats d'exécution de la session pour acquérir les paramètres au bon moment. Avec une caméra non contrôlée, consultez la documentation du système tiers pour déterminer le moment approprié.
- Champ de vision (FOV), rapport d'aspect et matrice de projection : Utilisez Camera.projectionMatrix pour obtenir la matrice de projection et la copier sur l'autre caméra. Camera.fieldOfView et Camera.aspect font mathématiquement partie de la matrice de projection. Les utiliser seuls est insuffisant.
Étapes suivantes
- Lisez Configuration de la caméra pour apprendre à configurer la caméra pour une expérience AR optimale