Les enjeux du Cloud Rendering pour les réalités virtuelle et augmentée ?
Le Cloud Rendering est le terme utilisé pour désigner le streaming d’objets ou d’environnements 3D. Cette technologie permet d’effectuer les calculs complexes de rendu graphique sur un serveur distant puis d’afficher le résultat directement dans un client (navigateur ou application).
Aujourd’hui, nous allons nous intéresser à son usage dans les domaines de la réalité augmentée (AR) et de la réalité virtuelle (VR).
En cliquant sur le bouton "play" ci-dessus, vous verrez apparaître une scène 3D en très haute qualité. Si vous êtes sur mobile (ouvrez en parallèle votre gestionnaire de tâches), vous vous rendrez compte que la qualité est largement supérieure à vos expériences 3D habituelles malgré une consommation CPU faible.
Explications
Les expériences AR/VR conventionnelles calculent en temps réel le rendu 3D d’un objet ou d’un environnement et sont souvent limitées par la puissance de calcul disponible dans l’appareil.
Les casques, les ordinateurs ou les mobiles utilisés pour consommer les services AR/VR peuvent avoir des processeurs graphiques (GPU) peu puissants, rendant impossible l'utilisation d'objets 3D détaillés ou nécessitant un rendu haute fidélité (ex. molécules complexes, plans de conception CAD, ...). Le Cloud Rendering permet donc de rendre l’expérience accessible à un plus grand nombre de personnes en réduisant les prérequis matériels. Pouvoir se passer du GPU et de sa consommation électrique ouvre la voie à une série de terminaux AR/VR encore plus légers, en allant au-delà de la miniaturisation prévisible de leurs composants.
Le Cloud Rendering est également une solution qui facilite la collaboration. Toutes les données étant stockées en ligne, il est alors plus facile de visualiser et de synchroniser les interactions sur un même modèle 3D en temps réel dans un scénario multi-utilisateurs et multisupports.
Le plus grand inconvénient dans les expériences AR/VR interactives en Cloud Rendering est la latence due aux appels serveur. En effet, une expérience qui subirait un délai entre l'action d'un utilisateur (tourner la tête, interagir...) et la prise en compte de celle-ci puis de son affichage rendrait l'ergonomie pénible et casserait l’immersion. Lors de l'utilisation de casques AR/VR, cette désynchronisation impactera physiquement les utilisateurs en causant le fameux motion-sickness (maux de tête, nausées).
C’est ici qu’intervient la démocratisation de la 5G qui permet d'accélérer le débit et de réduire considérablement cette latence afin d'échanger plus rapidement des données entre le client (le terminal cible) et le serveur distant (cloud).
Schéma du fonctionnement d’une application avec Cloud Rendering
Le Cloud Rendering fonctionne de la manière suivante :
- 1 : L’application est hébergée sur un serveur distant
- 2 : Plusieurs calculs sont effectués sur le serveur distant. Dont les calculs de rendu 3D de l'objet ou de l'environnement avec l'aide d'une ou plusieurs cartes graphiques (GPU)
- 3 : Le serveur envoie au terminal client le resultat calculé en fonction du point de vue utilisateur, il peut également envoyé un son et un retour haptique
- 4 : Le terminal client affiche l'image 3D calculée
- 5 : Le terminal client renvoie au serveur la position ou l’action de l’utilisateur afin de mettre à jour l’expérience ou l’état de l’application (on reboucle ensuite à l’étape 2)
Le débit de la connexion internet est importante pour les étapes de synchronisation (3 et 5) afin d’avoir une expérience fluide. Aujourd’hui une connexion fibre ou 5G est fortement recommandé pour réaliser une expérience optimisée en Cloud Rendering.
Les impacts sur le business
Le Cloud Rendering AR/VR propose des avantages à plusieurs niveaux.
Pour les constructeurs, cela réduit les contraintes matérielles ; si tout est calculé sur un serveur distant, alors l’appareil pourra avoir des composants plus légers et plus petits ce qui est non négligeable pour les casques de réalité virtuelle ou augmentée. Cet allègement permet in fine de réduire le coût et d’améliorer le confort et donc d’augmenter l’adoption de ces technologies par un public plus large.
Les créateurs d’applications peuvent développer des applications plus facilement sur plusieurs supports différents (cross-platform). Il y a moins de développement spécifique pour chaque plateforme, et nous pouvons imaginer à terme avoir une unique application côté serveur qui fonctionne sur les différents appareils (casque, mobile, etc.).
L’utilisateur quant à lui pourra profiter d’une expérience en qualité maximale avec un appareil minimal. En effet, le Cloud Rendering permettra à l’utilisateur de visualiser des objets 3D plus complexes (par exemple, une forme avec beaucoup d’arrondi) et plus détaillés, mais également d’avoir un environnement de plus en plus photo-réaliste en temps réel.
De plus, l’utilisateur n’aura plus besoin de beaucoup de stockage et d’une carte graphique surpuissante pour utiliser les dernières applications AR/VR.
Il restera tout de même une limite : la résolution de l’écran de l’appareil.
Cette déportation des applications vers le cloud pose également la question de l’obsolescence programmée. Aujourd’hui si j’achète un casque de réalité virtuelle, je sais qu’il sera obsolète dans 1 voir 2 ans. Si demain, seule la résolution évolue, je pourrais garder mon casque plus longtemps, car les nouvelles applications fonctionneront dessus. Ce ne sera plus qu’une question de confort et non de performance.
La fonctionnalité de Cloud Rendering est désormais disponible dans certains moteurs 3D (Blender, 3DS max, sketchup, …). Elle permet de déporter le calcul du rendu 3D (ombres et lumières dans l’environnement 3D, animation de personnage, ...) dans le cloud, ce qui peut améliorer le quotidien d’un infographiste ou d’un concepteur 3D qui n’aura pas besoin de monopoliser son ordinateur pendant plusieurs heures et pourra même avancer en parallèle sur d’autres éléments de l'expérience.
Les grands acteurs dans le domaine du Cloud Rendering AR/VR
Aujourd’hui, plusieurs entreprises proposent des solutions de Cloud Rendering.
****
Nvidia propose son propre kit de développement (SDK) en early access depuis 2019 : NVIDIA CloudXR SDK.
Ce SDK est difficile d’accès puisque limité à un nombre restreint de développeurs. Il est compatible sur les casques reposant sur les systèmes Android (Oculus Quest, Vive Focus Plus, …) et Windows (HoloLens 2) et sur les smartphones et tablettes compatibles ARCore.
Éléments notables, ce SDK est également prévu pour fonctionner on-premises, c'est-à-dire sur un serveur hébergé par votre entreprise et même sur un ordinateur local. Côté client, le SDK peut être intégré dans une application métier.
https://www.youtube.com/watch?v=XIFUcl9PIyI
Exemple d’utilisation du SDK Nvidia
Google propose également sa solution : Google Cloud, pour la réalité augmentée via l’utilisation du Web.
Une fois votre modèle 3D hébergé sur leurs serveurs vous pouvez le visualiser via un site web (accessible facilement via un QR code ou via un lien)
Exemple de rendu via la solution Google cloud
Microsoft, Azure Remote Rendering
Azure Remote Rendering permet de fournir une qualité supérieure de contenus 3D et d’expériences interactives pour le casque HoloLens 2 grâce à la puissance de calcul d’Azure. Il supporte une gestion de rendu hybride, les développeurs peuvent choisir quels objets sont calculés via le cloud et quels objets sont calculés en local, sur le casque.
Ce SDK est disponible sous condition d’avoir une licence Microsoft Azure et possède une bonne documentation pour les développeurs.
https://www.youtube.com/watch?v=XR1iaCcZPrU
Exemple de visualisation d’un objet très détaillé via Cloud Rendering sur un HoloLens 2
Furioos est une filiale du groupe Unity qui propose un SDK compatible sur les dernières versions de Unity et Unreal Engine. Ce SDK permet de créer une application web compatible Cloud Rendering. Aujourd’hui le SDK ne propose pas de réalité virtuelle ou augmentée, mais est prometteur, puisqu’en utilisant des moteurs de jeux tels qu'Unity, le SDK est indépendant du matériel sur lequel l’application est exécutée. Il est possible de tester des exemples concrets sur leur site web, comme celui au début de cet article.
- ISAR SDK
Holo-Light propose un SDK Multiplateforme (mobile, tablette, casque VR et casque AR) pour Unity. C’est aujourd’hui le seul à supporter la majorité des appareils permettant de réaliser des applications AR/VR.
Nous pouvons également observer l’essort des plateformes de cloud gaming (GeForce now, Stadia, Shadow), qui ouvrent une application (en l’occurrence un jeu vidéo) voire un ordinateur Windows sur un serveur distant. Ce qui permet de jouer depuis n’importe quel support (PC, mac, smartphone, …).
Nous imaginons que nous pourrons bientôt utiliser ce type de plateformes pour faire tourner nos applications AR/VR.
Conclusion
Vous l’aurez compris, le cross-platform, ce n’est pas pour tout de suite, chaque acteur propose une solution adaptée à son matériel ou à ses partenaires.
Le Cloud Rendering ouvre tout de même de nouvelles perspectives sur la réalité virtuelle et sur la réalité augmentée, notamment dans les domaines où la précision et les détails sont importants (médecine chirurgicale, design industriel, etc.).
Les solutions hybrides semblent être un bon compromis en permettant de charger sur le cloud uniquement les modèles complexes qui ne pourraient pas être calculés sur l’appareil local. Avec ce système, les pertes de connexion internet ou la latence de récupération des données sont davantage maîtrisés puisque l’interface utilisateur et ses menus sont toujours présents au sein de l'application locale.
Il ne faut pas oublier que d’autres solutions pour optimiser le rendu 3D existe sur le marché comme le calcul prédictif où les déplacements de l’utilisateur sont anticipés grâce à un algorithme de machine learning et permettent de calculer seulement la zone d’interaction.
Comme pour toute expérience cloud, Il faudra également penser au nombre d’utilisateurs simultanés que devra supporter votre expérience afin de choisir le service ayant les capacités les plus adaptés à vos besoins.