Sélectionner une page

Titre de l’Étude : La Chambre XR : Reconstitution Volumétrique de la Mémoire Filmique en Réalité Mixte Passive. Dispositif : Installation Immersive HMD (Meta Quest 3) Paradigme Technique : Occlusion Dynamique par Depth API & Rendu Point Cloud Statut du Projet : Phase de Prototypage Rapide (Sprint de Production)


1. ABSTRACT & PROBLÉMATIQUE

1.1. L’Hypothèse de la « Mémoire Spatiale »

Ce projet interroge la persistance rétinienne et cognitive des espaces cinématographiques. Lorsqu’un spectateur quitte une salle de cinéma, il n’emporte pas seulement une narration, mais une empreinte spatiale : la topographie d’une chambre, la texture d’une lumière, l’acoustique d’un lieu. Mnemosyne postule que la Réalité Mixte (MR) permet de transformer cette empreinte mentale en une architecture navigable. Il ne s’agit plus de « regarder » un film, mais d’habiter la structure mémorielle de son décor.

1.2. Le Concept : L’Immersion par Soustraction

Contrairement aux approches classiques de la VR qui cherchent à masquer le réel (occultation totale), ce projet adopte une approche de coexistence spectrale. L’utilisateur est physiquement ancré dans le réel (proprioception active via un fauteuil physique), tandis que le dispositif HMD (Head-Mounted Display) vient « napper » ce réel d’une couche de données virtuelles. Le décor du film n’efface pas le salon de l’utilisateur ; il le hante.


2. APPROCHE TECHNIQUE & MÉTHODOLOGIE

2.1. Stratégie de Mapping : L’Occlusion Dynamique (Zero-Friction)

Pour garantir une immersion immédiate (« Time-to-Magic » minimal), nous rejetons la contrainte du Room Setup manuel (dessin des murs par l’utilisateur). Nous exploitons la Meta Depth API pour générer une occlusion en temps réel.

  • Le Principe : Le casque analyse la carte de profondeur de l’environnement physique à 60Hz.
  • L’Application : Un shader personnalisé compare la profondeur du pixel virtuel (Z-buffer) avec la profondeur du monde réel. Si Depth_Reel < Depth_Virtuel, le pixel virtuel est écarté.
  • Résultat Phénoménologique : Le nuage de points virtuel (le souvenir) semble se déposer physiquement sur le mobilier réel de l’utilisateur, créant une fusion topologique instantanée sans calibration préalable.

2.2. Esthétique de l’Incertitude : Le « Point Cloud »

Le choix du rendu par Nuage de Points (Point Cloud) n’est pas uniquement stylistique, il est sémantique. La mémoire n’est pas un modèle 3D texturé en 4K ; c’est une donnée fragmentaire, lacunaire et mouvante. Le Point Cloud matérialise cette incertitude : les murs vibrent, les objets sont translucides. C’est une esthétique de la « donnée brute » (Raw Data), signifiant à l’utilisateur qu’il se trouve dans une reconstruction mentale et non dans une réalité alternative.


3. PROTOCOLE D’EXPÉRIENCE (UX FLOW)

L’expérience se décompose en trois phases cognitives distinctes :

  1. L’Ancrage (The Anchor) :
    • L’utilisateur s’assoit. Le Passthrough (vue caméra) est actif. Il voit ses mains et son environnement. La confiance proprioceptive est établie.
  2. La Dissolution (The Decay) :
    • Activation progressive du shader de transition. Le réel perd sa saturation. Les arêtes des meubles se mettent à scintiller (effet Wireframe). Le son ambiant du film (bruit blanc, vent) monte progressivement, spatialisé à 360°.
  3. La Rémanence (The Ghosting) :
    • Le décor du film se superpose au réel. L’utilisateur est « dans » la chambre du film. Il peut tourner la tête pour explorer le hors-champ (les zones non filmées par la caméra d’origine, extrapolées par notre moteur 3D).

4. FEUILLE DE ROUTE DE PRODUCTION (SPRINT TRACKER)

Le développement suit une méthodologie Agile « Commando » sur 10 jours ouvrés, visant un Vertical Slice (tranche jouable) fonctionnel.

PHASE I : INFRASTRUCTURE & CALIBRATION (Jours 1-3)

  • Objectif : Validation de la pipeline technologique Unity/Quest 3.
  • Tâches Critiques :
    • Implémentation du SDK Meta XR Core.
    • Configuration de l’Occlusion Manager (Depth API).
    • Proof of Concept (POC) : Un cube virtuel doit être correctement masqué par une main réelle.

PHASE II : DIRECTION ARTISTIQUE & SHADERS (Jours 4-7)

  • Objectif : Traduction de l’intention émotionnelle en langage graphique.
  • Tâches Critiques :
    • Développement du Ghost Shader (HLSL/Shader Graph) : Gestion de la transparence additive et du scintillement des points.
    • Intégration des assets volumétriques (Modélisation procédurale du décor).
    • Design Sonore : Implémentation de l’audio spatialisé (HRTF) pour guider l’attention fovéale de l’utilisateur.

PHASE III : INTÉGRATION & OPTIMISATION (Jours 8-10)

  • Objectif : Stabilité et fluidité (72 FPS constants).
  • Tâches Critiques :
    • Optimisation du Draw Call Batching (gestion du nombre de points affichés).
    • Gestion du cycle de vie de l’application (Intro/Loop/Outro).
    • Compilation Gold Master (.APK) et déploiement sur matériel cible.

5. RESSOURCES DOCUMENTAIRES

L’accès aux prototypes de pré-visualisation (WebGL) est disponible pour l’équipe de recherche afin de valider les intentions avant l’implémentation moteur.

  • [LIEN] : Prototype V13 – Simulation de l’Occlusion & Narrateur IA.
  • [LIEN] : Prototype V6 – Étude comportementale des particules.

SETUP DU PROJET UNITY

Une fois Unity ouvert avec un nouveau projet (Template : 3D URP – Universal Render Pipeline est obligatoire pour le VFX Graph et les performances Quest).

Étape A : Installation des SDK Meta

Au lieu de tout chercher à la main, nous utilisons l’outil officiel de Meta.

  1. Dans Unity, aller dans Window > Package Manager.
  2. Cliquer sur le + en haut à gauche -> Add package by name.
  3. Taper : com.meta.xr.sdk.all
  4. Cela va installer le Meta XR All-in-One SDK.
  5. Redémarrer Unity si demandé.

Étape B : Configuration Automatique (Project Setup Tool)

Meta fournit un outil qui corrige les paramètres tout seul.

  1. En bas à droite de Unity, cliquer sur l’icône Meta (ou via Oculus > Tools > Project Setup Tool).
  2. Aller dans l’onglet Android (le petit robot).
  3. Cliquer sur « Fix All » pour corriger les paramètres de rendu (Texture compression, Color Space, etc.).
  4. Note critique : Assurez-vous que le Render Pipeline est bien réglé sur OpenGLES3 (plus stable) ou Vulkan (plus performant mais parfois capricieux avec les shaders, à tester). Pour le Point Cloud, Vulkan est souvent mieux.

4. IMPLÉMENTATION « NO-MAPPING » (DEPTH API)

C’est ici que se joue votre concept d’occlusion (la poussière qui se dépose sur les meubles).

  1. Importation du Package Depth :
    • Vérifier que le package com.meta.xr.depth est présent (il est inclus dans le All-in-One normalement, sinon l’ajouter via le Package Manager).
  2. Configuration de la Caméra :
    • Dans la scène, supprimer la « Main Camera ».
    • Chercher le prefab OVRCameraRig (dans les dossiers Oculus) et le glisser dans la scène.
    • Dans l’inspecteur du OVRCameraRig, trouver le composant OVR Manager.
    • Aller dans la section Quest Features.
    • Régler Scene Support sur Required.
    • Régler Passthrough Support sur Supported (ou Required).
  3. Activation de la Depth :
    • Toujours dans OVRManager, cocher Depth API (parfois appelé « Environment Depth »).
    • Cela va permettre au casque de générer la texture de profondeur en temps réel.

5. PIPELINE ARTISTIQUE (POINT CLOUD)

Comment passer d’un fichier scan au rendu « poussière » dans Unity.

Le Logiciel de Scan (En amont)

Pas besoin de scanner la salle de classe, mais pour créer les assets « souvenirs » (le fauteuil, la lampe…) :

  • Utiliser Polycam ou Luma AI (sur iPhone/Android).
  • Exporter en format .PLY ou .LAS (Point Cloud).

L’Import dans Unity (VFX Graph)

Unity ne lit pas les nuages de points nativement de manière performante. Il faut un outil.

  1. Solution Pro (Payante mais gain de temps énorme) :
    • Acheter/Télécharger « PCX – Point Cloud Importer » (C’est un plugin standard développé par Keijiro Takahashi, une légende chez Unity). C’est gratuit et open-source sur GitHub.
    • Lien GitHub : https://github.com/keijiro/Pcx
  2. Méthode d’installation PCX :
    • Dans Unity Package Manager -> + -> Add package from git URL.
    • Coller l’URL du git de Pcx.
  3. Usage :
    • Glisser le fichier .ply dans Unity. Il se transforme automatiquement en prefab « Nuage de points ».
    • Vous pouvez ensuite écrire un shader personnalisé (Shader Graph) pour faire scintiller ces points ou les rendre sensibles à la Depth API (pour qu’ils disparaissent derrière les vrais meubles).

6. CONFIGURATION DU CASQUE (QUEST 3)

Pour que les étudiants puissent tester sans compiler (Build) à chaque fois, ils doivent utiliser le Quest Link.

  1. Sur le téléphone (App Meta Horizon) :
    • Jumeler le casque.
    • Aller dans Paramètres du casque > Paramètres développeur.
    • Activer le Mode Développeur (Indispensable !).
  2. Sur le PC :
    • Installer l’application Meta Quest Link (le logiciel PC).
    • Connecter le casque en USB-C 3.0 (Câble officiel ou haute qualité type Anker).
    • Dans le casque, accepter « Activer Quest Link ».
  3. Dans Unity :
    • Faire « Play ». Si tout est vert, la scène se lance directement dans le casque.

RESSOURCES & TUTORIELS (LA LISTE D’OR)

Voici les liens exacts à donner aux étudiants pour les parties spécifiques.

1. Tuto Absolu – Setup Mixed Reality (Passthrough + Setup) :

  • Chaîne YouTube : Valem Tutorials
  • Vidéo à chercher : « Meta Quest 3 Mixed Reality Tutorial – Unity 2022 »
  • Pourquoi : C’est la référence mondiale. Il est clair, rapide et précis.

2. Tuto Depth API (L’occlusion « No-Map ») :

  • Chaîne YouTube : Dilmer Valecillos
  • Vidéo à chercher : « How to use Meta Quest 3 Depth API for Occlusion »
  • Pourquoi : Dilmer est un expert Unity XR. Il montre exactement le code pour cacher les objets virtuels derrière les objets réels.

3. Tuto Point Cloud & VFX Graph :

  • Chaîne YouTube : Keijiro Takahashi (pour voir les possibilités) ou The Unity Workbench.
  • Sujet : « Unity VFX Graph Point Cloud Tutorial ».
__  __ _   _ _____ __  __  ___  _____   ___  _ _____ 
|  \/  | \ | | ____|  \/  |/ _ \/ __\ \ / / \| | ____|
| |\/| |  \| |  _| | |\/| | | | \__ \\ V /| .` |  _|  
| |  | | |\  | |___| |  | | |_| |___/ | | | |\ | |___ 
|_|  |_|_| \_|_____|_|  |_|\___/|____/|_| |_| \_|_____|
        >>> THE GHOST IMAGE INITIATIVE <<<
.-----------------------------.
|  MNEMOSYNE XR   [ACCESS OK] |
|                             |
|       .:::.   PROJECT       |
|      ( @ @ )  GHOST         |
|       \ - /   PROTOCOL      |
|      --` `--                |
|                             |
|  NAME: ___________________  |
|  ROLE: UNITY ARCHITECT      |
|  ID:   #940-2A              |
|                             |
|  [||||||||||||||] SCAN      |
'-----------------------------'
.-----------------------------.
|  NANTES_XR      [UNIT 44]   |
|                             |
|         __      [###]       |
|       /|  |____/   /        |
|      (   @     _  (         |
|       \_______/ \__\        |
|        | |  | |             |
|                             |
|  CODENAME: THE_MECHANIST    |
|  ZONE: ILE_DE_NANTES        |
|  STATUS: HEAVY DUTY         |
|                             |
|  [|||||||||||||] HYDRAULIC  |
'-----------------------------'
[TITAN_LOADER] -----------------
| SECTOR: YELLOW_CRANE         |
|          ________            |
|         [| | | | ]\          |
|          |_____|   \         |
|            / \      v        |
|           /   \    [#]       |
|          /_____\             |
|                              |
| ROLE: DATA ARCHITECT         |
| SYSTEM: NANTES_PORT_AUTH     |
--------------------------------
+-- BZH_PROTOCOL --------------+
| IDENTITY: BREIZH_NET_RUNNER  |
| ...........................  |
|           \ | /              |
|          -- + --             |
|           / | \              |
|             v                |
| ...........................  |
| MOTTO: PULTOT_LA_MORT        |
|        QUE_LA_SOUILLURE      |
+------------------------------+