Concevoir une application compatible avec tous les casques de réalité virtuelle

 

Application virtuelle installée sur un ordinateur ou dans un casque autonome

Pour qu’une application installée sur un ordinateur (casque filaire) ou dans un casque autonome s’affiche en réalité virtuelle dans le casque et communique avec les contrôleurs et autres périphériques du casque, il est préférable de la concevoir en y intégrant l’interface OpenXR. OpenXR remplace OpenVR, qui ne fonctionnait pas avec les casques de réalité augmentée. Par exemple, l’application SteamVR intègre l’interface OpenXR. La plupart des éditeurs d’applications 3D (Godot Engine, O3DE, OpenSpace3D, Unity, Unreal Engine…) permettent d’intégrer l’interface OpenXR dans vos créations.

Logotype OpenXR

 

Application virtuelle en mode web

Pour qu’une application web s’affiche en réalité virtuelle dans un casque et communique avec les contrôleurs et autres périphériques du casque, via le navigateur web installé sur un ordinateur, ou dans le casque s’il est autonome, il est préférable que ce navigateur web intègre l’interface WebXR et que l’application web ait été conçue pour utiliser WebXR. WebXR remplace WebVR, devenue obsolète.

Logotype WebXR

 

Une application web peut utiliser le microprocesseur de votre carte graphique (le GPU) si elle fait appel à l’interface WebGPU. Cela permet d’améliorer la qualité et la vitesse de l’affichage. WebGPU remplace WebGL, devenue obsolète. Vous pouvez tester la compatibilité de votre navigateur web sur WebGPU Browser Report ou sur Web Graphics API Tester.

 

Liste des éditeurs 3D, des moteurs de rendu 3D et autres outils utilisant WebXR :

(les solutions ne permettant pas d’exporter ses créations ne sont pas répertoriées)

  • Extension WebXR Export pour l’éditeur d’applications 3D Unity. Utilisable sur poste de travail.
  • Éditeur d’applications 3D Godot Engine. Utilisable sur poste de travail.
  • Quid des éditeurs d’applications 3D Bevy, O3DE, OpenSpace3D, Panda3D, Unreal Engine ?
  • Éditeur de scènes 3D Wonderland Engine. Utilisable sur poste de travail. Les scènes créées incluent un environnement d’exécution dans un navigateur web grâce à WebAssembly.
  • Moteur de rendu 3D Babylon.js, écrit en TypeScript. Utilise WebGPU. Licence Open Source.
  • Éditeur de scènes 3D + moteur de rendu 3D PlayCanvas. Utilise WebGPU. Licence Open Source.
  • Cadriciel de développement Elixr, écrit en TypeScript. Utilise la librairie de rendu 3D three.js. Licence Open Source.
  • Cadriciel de développement A-Frame, écrit en JavaScript. Utilise la librairie de rendu 3D three.js. Licence Open Source. Extension Blender Exporter to A-Frame VR.
  • Cadriciel de développement enable3d, écrit en TypeScript. Les scènes utilisent la librairie de rendu 3D three.js et le moteur physique ammo.js. Licence Open Source.
  • Éditeur de scènes 3D Digital Bacon. Utilisable en mode web. Licence Open Source.
  • Éditeur de scènes 3D Spline. Utilisable en mode web ou sur poste de travail. Les scènes utilisent la librairie de rendu 3D three.js.
  • Éditeur de scènes 3D nunuStudio. Utilisable en mode web ou sur poste de travail. Les scènes utilisent la librairie de rendu 3D three.js et le moteur physique cannon.js. Licence Open Source.
  • Éditeur de scènes 3D Rogue Engine. Utilisable sur poste de travail. Les scènes utilisent la librairie de rendu 3D three.js, sous la forme d’applications Node.js.
  • Needle s’utilise seul, ou en complément d’Unity ou de Blender. Les scènes utilisent la librairie de rendu 3D three.js.

 

Scènes multi-utilisateurs et métavers utilisant WebXR :

  • Cadriciel de développement ATON. Utilise la librairie de rendu 3D three.js. Licence Open Source.
  • Cadriciel de développement Networked-Aframe. Licence Open Source.
  • UMI3D permet de créer des scènes 3D interactives mais nécessite un navigateur web spécifique. Licence Open Source.
  • Le cadriciel de développement Colyseus, écrit en JavaScript/TypeScript et Node.js, permet de rendre multi-utilisateurs des scènes 3D développées avec PlayCanvas, Babylon.js… Licence Open Source.
  • Métavers Infinite Reality Engine, écrit en TypeScript. Transmission voix et vidéo en WebRTC. Utilise le moteur physique Rapier. Licence Open Source.
  • Métavers Vircadia, écrit en TypeScript. Licence Open Source.
  • Métavers Third Room complètement décentralisé, chaque monde installé sur un ordinateur communique en WebRTC via le réseau pair-à-pair Matrix, on passe d’un monde à l’autre par des portes. Utilise la librairie de rendu 3D three.js et le moteur physique Rapier. Licence Open Source. Third Room Unity Exporter permet d’exporter des scènes Third Room depuis Unity. Développement en pause ?

 

Moteurs physiques :

 

Réalité augmentée :

 

Exemples d’applications web utilisant WebXR :

 

Jumeaux numériques en réalité virtuelle

Le protocole de transmission MQTT permet de faire communiquer des objets virtuels avec des objets physiques. Il suffit d’intégrer un client MQTT dans l’application de réalité virtuelle, qu’elle soit installée sur un ordinateur ou dans un casque autonome, ou en mode web. MQTT permet aussi bien de transmettre des mesures (position et vitesse d’un objet, valeur d’un capteur…) que des commandes.

 

Auteur : David VANTYGHEM <david.vantyghem@ensam.eu>. Ce document est mis à disposition selon les termes de la Licence Creative Commons Attribution – Partage dans les Mêmes Conditions 4.0 International. Logotype licence CC BY-SA

Image en vignette : Logotypes OpenXR et WebXR.

Laisser un commentaire