Résumé rapide :
Je travaille sur une application VR, et nous voulons rendre un site web en 3D dans notre scène VR, de préférence sur une texture. Il existe de nombreuses façons d'y parvenir sur un ordinateur de bureau (PC/Mac), mais pas sur les appareils Android.
Détails :
Nous disposons d'un prototype fonctionnel sous Windows qui s'appuie sur le logiciel Zen Fulcrum Plugin de navigateur intégré Mais nous voulons prendre en charge les appareils Android tels que Google DayDream, Gear VR et, à terme, les casques autonomes basés sur Android qui seront commercialisés au cours de l'année prochaine.
Voici une liste de toutes les solutions de rendu de pages web Unity que j'ai trouvées jusqu'à présent :
- Navigateur intégré par Zen Fulcrum - supporte Windows et OSX
- UniWebView par Yumigi - Ils ne soutiennent pas le rendu des pages web en textures. Les pages web sont rendues sur une couche plane au-dessus du rendu du moteur graphique.
- Navigateur Web intégré à l'application par Piotr Zmudzinski - Semble avoir la même limitation
- Webkit pour iOS by Chestnut Games - Ne fonctionne que pour iOS, leur site web ne semble pas fonctionner.
- Moteur HTML pour NGUI & Unity GUI by ZHing - Ne semble pas être un vrai navigateur web. On dirait simplement que quelqu'un a créé des scripts qui convertissent le HTML en éléments d'interface utilisateur.
- EasyWebViewTexture pour Android by JaeYunLee - Je connais quelques développeurs qui l'ont utilisé mais le projet a été mystérieusement supprimé et abandonné.
- Awesomium pour Unity by Khrona Software - Les articles de leur wiki pour Unity sont mystérieusement vides à la fois sur leur site wiki et sur leur GitHub . Les l'ensemble du site web awesomium a également été fermée, de même que le site Web de l Logiciel Krhona site web de l'entreprise. Ils disposent d'un Repo GitHub pour leur intégration Unity mais leur readme indique qu'il ne supporte que Windows et Mac.
- uWebKit3 par Mythos Labs - N'est plus disponible. Leur site web original n'existe plus. Les versions précédentes de uWebKit prétendaient prendre en charge Android. Leur annonce sur les forums Unity à propos de leur fermeture était très mystérieuse et abrupte. J'ai trouvé quelque chose sur GitHub qui prétend être uWebKit3, mais le readme dit ne supporter que PC et Mac.
- Widget du navigateur Web d'Unreal Engine 4 - Il s'agit d'un widget expérimental qui est intégré à UE4 et qui, sur le bureau, rend les pages web dans le monde 3D sans trop de problèmes. Malheureusement, même s'il prétend prendre en charge Android, lorsque vous le déployez sur un appareil, vous constaterez que le navigateur est rendu à plat au-dessus du moteur de jeu, et non dans le monde 3D.
Je n'arrive pas à trouver d'informations sur la raison pour laquelle ce système n'est plus supporté sur Android alors qu'il l'était auparavant. Peut-être que quelque chose a changé dans la pile Android ? Si j'essayais d'utiliser Chromium moi-même et de le faire fonctionner sur Android, est-ce que je me retrouverais dans les mêmes impasses que celles qui ont tué tous ces projets ?
Le SDK Android offre la fonction native WebView qui est rendu comme un élément indépendant à l'écran auquel nous ne pouvons pas vraiment nous connecter. Google vient de publier un aperçu de l'application Navigateur Chrome VR dans Daydream mais il est très tôt dans le développement et je ne pense vraiment pas qu'ils prévoient de fournir une solution pour les développeurs VR de sitôt. Oculus a le système expérimental Navigateur Carmel mais il semble plus axé sur le rendu WebVR que sur la fourniture d'outils pour les développeurs VR. J'ai été en contact avec quelqu'un de l'équipe de la Navigateur Web Oculus (je l'ai rencontré à la PAX, lol), et ils prévoient de mettre en place une fonctionnalité qui permettra aux développeurs de lancer plus facilement des pages web qui s'ouvrent dans le navigateur Oculus Web Browser intégré au Gear VR. Mais il s'agit d'un scénario de changement d'application, qui ne permet pas de rendre une page web dans sa propre scène 3D.
Une possibilité que j'envisage d'explorer : que se passerait-il si un serveur rendait les pages web pour les utilisateurs et transmettait le contenu à leurs appareils sous forme de données de texture ? Cela ressemblerait un peu à ce que OnLive a fait avec les jeux vidéo, sauf que l'on pourrait tolérer plus de latence à certains moments. On pourrait utiliser Selenium (ou un autre outil de test de régression visuel pour le développement web) pour gérer le rendu... Je ne sais pas si notre société peut se permettre de passer des mois sur un projet de ce genre, mais ça a l'air d'être une vraie galère à réaliser. -_-
Des suggestions ? Merci de votre compréhension.