Développer

Occultations de la caméra réelle dans Unity

Mis à jour: 11 sep 2024
Parfois, vous souhaitez que votre contenu virtuel se fonde parfaitement dans l’environnement physique autour des utilisateurs et utilisatrices. Si vous disposez d’un personnage virtuel, vous voulez qu’il bloque ou occulte les objets du monde réel derrière lui, mais vous voulez aussi qu’il soit occulté par des objets du monde réel devant lui. Le SDK Passthrough ne fournit pas une méthode prête à l’emploi pour cette fonctionnalité, et il est nécessaire d’effectuer le rendu de ses calques soit derrière la couche application (mode Passthrough AR (Caméra réelle AR)), soit devant (lorsque le paramètre Placement de la couche est défini sur Overlay (Superposer)).
Scene with and without occlusions
La plateforme Meta Quest offre plusieurs façons d’obtenir des occultations crédibles dans votre application.

Occultations génériques avec l’API Depth

À partir de Quest 3, l’API Depth peut fournir des cartes de profondeur en temps réel à votre application. Avec ces informations, vous pouvez implémenter des occultations dynamiques réalistes pour que les objets du monde réel obscurcissent les objets virtuels en mode caméra réelle. Pour en savoir plus à ce sujet et apprendre à l’intégrer dans vos applications, consultez la fonctionnalité Occultations de l’API Depth.
Hand Occlusion with Depth SDK
L’API Depth est un outil puissant, mais qui n’en comporte pas moins quelques limites. Elle pourrait solliciter de trop le CPU et le GPU, ou la latence des informations de profondeur en temps réel pourrait ne pas vous convenir. Il peut se révéler particulièrement compliqué de l’intégrer à un projet Unity lorsque des modifications du shader sont nécessaires. Enfin, vous souhaiterez peut-être que les occultations fonctionnent pour les casques Meta Quest plus anciens comme Meta Quest 2.

Occultations pour des objets du monde réel suivis

Si vous avez accès à la géométrie et à la position d’un objet du monde réel, alors vous pouvez occulter le contenu virtuel avec celui-ci. Par exemple, vous pouvez utiliser les mains suivies pour occulter la scène virtuelle, comme un interrupteur de lumière virtuel, et faire apparaître les mains en mode caméra réelle.
Passthrough occlusion
Effectuez un rendu des mains ou d’un objet obturateur avec un matériau qui écrit uniquement dans le tampon de profondeur, avant les autres objets (file d’attente de rendu < 2 000). Les objets virtuels ou les matériaux suivants échoueront au test de profondeur et leur rendu ne sera pas effectué dans la zone de l’objet obturateur, ce qui donnera l’illusion qu’ils se trouvent derrière cet objet.
Passthrough occlusion setting
La superposition entre le mode caméra réelle et le mode VR peut être complexifiée de manière arbitraire en alternant le rendu des objets VR et des objets obturateurs en mode caméra réelle, et en utilisant les commandes de shader ZTest/ZWrite. Par exemple, une montre virtuelle peut être dessinée au-dessus de la main ou du poignet en caméra réelle en effectuant le rendu du modèle 3D d’une montre soit dans une file d’attente de rendu encore plus basse, ce qui occulte le rendu de la main, soit en désactivant la commande ZTest de telle sorte qu’elle ignore la main en tant qu’objet obturateur.
Cette approche d’occultation fonctionne uniquement sur l’ensemble du maillage, ce qui en fait une solution entièrement opaque. Pour un masquage progressif qui autorise la translucidité, pensez à utiliser le matériau et le shader de l’exemple SelectivePassthrough.

Autres solutions d’occultation des mains

En particulier pour les mains, il existe bien d’autres solutions visant à améliorer leur interaction dans divers environnements MR. Ces solutions utilisent le SDK Interaction avec le mode caméra réelle, ce qui permet d’accorder la représentation des mains au type précis d’interaction. Pour plus d’informations, consultez Représentation des mains.
Hand mesh visualization
Logo nav.
Français (France)
©2026 Meta