--- title: Ressource 360° — et la lecture immersive qu'elle débloque ---
Clos le 12/09. Trois valeurs ajoutées en fin de ResourceType — Image360 (11), Video360 (12), Model3D (13) — sans migration : la colonne est déjà integer, une valeur d'enum n'y change rien. Un test les verrouille une par une, parce que le commentaire du code avertissait du risque (« les PDF deviendraient des JSON ») sans que rien ne l'empêche.
La carte disait « une valeur d'enum et un branchement dans l'affichage ». Il manquait les deux morceaux qui comptent.
Un : comment on déclare une 360. Aucune extension ne le dit — un panorama est un .jpg comme un autre. La pastille de type du sélecteur de médias devient donc cliquable : elle bascule Image ↔ Image 360°, Vidéo ↔ Vidéo 360°, et se colore quand c'est immersif. Le .glb, lui, se déduit seul : un GLB n'est jamais autre chose qu'un modèle 3D.
Deux, et c'est le vrai piège : la compression. ImageCompressor ramène toute image à 2560 px de côté long. Une équirectangulaire de 8192×4096 y perd les trois quarts de sa définition — invisible sur un écran, une bouillie dans un casque où elle couvre tout le champ de vision. Les trois types en sont exclus, sur les deux chemins d'upload, qui avaient déjà divergé deux fois par le passé.
✅ Bonne surprise : le prérequis « le backend ne sait pas écrire dans le bucket », qui bloque le Studio et le TTS, ne s'applique pas ici — manager-app pousse directement dans Firebase Storage puis enregistre l'URL. L'ancienne route serveur /upload plafonne à 1,5 Mo, mais elle n'est plus le chemin utilisé.
➡️ Ce que ça débloque : E6 du lot XR-4, la lecture 360° dans le casque, écrite dans la foulée (SkyboxView, image et vidéo dans le même shader panoramique). C'était le dernier prérequis du POC VR. ⚠️ Skybox/Panoramic doit être dans Always Included Shaders, sinon le ciel sort magenta sur le casque et correct dans l'éditeur. Plan de test §25.7 — sa première moitié se joue sans casque.
Non fait, et assumé : l'exploitation du Model3D. La valeur existe, mais un modèle 3D demande encore un type de section dédié, une position 3D sur les points d'intérêt et un éditeur de placement — c'est E7, et le §9 du plan VR le décrit.