Utilisation de l'occlusion avec EasyAR Mega dans Unity
L'occlusion est une technologie clé pour améliorer l'immersion de la fusion réalité-virtuelle dans la RA. Cet article explique comment réaliser un effet d'occlusion dans Unity via EasyAR Mega.
Avant de commencer
- Avoir terminé le Démarrage rapide avec les exemples Unity d'EasyAR Mega.
- Savoir créer du contenu aligné sur le monde réel.
Méthodes de mise en œuvre de l'occlusion
Modélisation hors ligne : Dans le système de coordonnées du Block, créer des géométries correspondant 1:1 aux entités du monde réel (murs, piliers, gros équipements) ; ou obtenir un modèle optimisé en découpant et en réduisant les faces du modèle dense du Block.
Alignement à l'exécution : À l'exécution, aligner le système de coordonnées du Block avec l'espace réel via le positionnement cloud, puis charger les géométries correspondantes.
Remplacement de matériau : Attribuer un matériau d'occlusion spécial à ces géométries.
Effet visuel : Lors du rendu GPU d'autres objets virtuels, les pixels occultés seront automatiquement éliminés en raison de l'échec du test de profondeur, permettant ainsi aux objets virtuels de respecter la logique d'occlusion de l'espace physique réel.
Comment utiliser des géométries comme occlusion
Suivez ces étapes pour ajouter des géométries d'occlusion dans la scène et vérifier l'effet.
Placer les géométries d'occlusion
Placer des géométries intégrées ou personnalisées comme occlusion aux positions correctes dans le système de coordonnées du Block, en se basant sur le modèle dense du Mega Block.

[Optionnel] Ajuster finement la position des géométries avec la vue panoramique

Attribuer un matériau d'occlusion aux géométries
Modifier le matériau des géométries en matériau d'occlusion, par exemple le SpatialMappingOcculusion intégré à Unity.

Simuler avec des données EIF ou exécuter sur appareil
Ajuster le placement des modèles d'occlusion en fonction du résultat observé.
Comment utiliser un modèle dense découpé et réduit comme occlusion
Suivez ces étapes pour exporter un modèle dense de Mega Block, le découper et réduire ses faces pour obtenir un modèle blanc d'occlusion, puis l'importer dans la scène.
Exporter dans Mega Blocks
Sélectionner l'exportation dans l'outil Mega Blocks du panneau Inspector

Modifier les options d'exportation
Ajuster les options lors de l'exportation.

- Niveau LOD : Plus le niveau est bas, plus le modèle est simplifié (choisir 2 pour la précision maximale, 1 ou 0 pour réduire les faces).
- Exporter les textures : Désactiver car seul le modèle blanc est nécessaire pour l'occlusion.
Découper et réduire les faces du modèle
Découper et réduire les faces du modèle exporté dans un logiciel de création de contenu numérique (ex: Blender), puis sauvegarder en Glb.
Astuce
L'exemple utilise le Decimate Modifier de Blender.

Après découpage et réduction :

Importer le modèle d'occlusion dans Unity et l'attacher sous le nœud Block

Modifier le Transform du modèle
Ajuster le Transform pour que Position et Rotation soient tous à 0.
Le modèle blanc d'occlusion doit alors épouser parfaitement le modèle dense, car le système de coordonnées du Block n'a pas été altéré lors des opérations dans le logiciel de création.

Attribuer un matériau d'occlusion au modèle
Remplacer le matériau du modèle par un matériau d'occlusion, par exemple SpatialMappingOcculusion d'Unity.

Simuler avec des données EIF ou exécuter sur appareil
Tester avec des données EIF ou sur appareil réel pour observer le résultat.
Résultats attendus de l'occlusion
L'efficacité de l'occlusion dépend principalement de :
- La précision du suivi de positionnement
- L'exactitude du placement des modèles
- La précision des modèles eux-mêmes (s'ils ne sont pas de simples géométries)
Un décalage de quelques centimètres lors d'une dérive du positionnement est normal.
Les modèles d'occlusion avec trop de faces impactent les performances. Privilégier les géométries simples et limiter leur usage aux zones nécessaires.