Je développe actuellement un environnement VR pour une grande plate-forme de simulateur de mouvement (physiquement) existante. L'utilisateur peut s'asseoir sur cette plate-forme de mouvement et est accéléré et incliné pour induire la sensation de mouvement dans un environnement de simulateur de voiture de recherche. Le tracker positionnel Oculus Rift est déjà monté sur la plateforme mobile devant l'utilisateur, comme vous le feriez sur votre PC.
Le moteur 3D que j'utilise actuellement est Unity 5.3. Les angles de rotation et les accélérations linéaires de la plateforme sont déjà introduits dans Unity. Les résultats ne sont cependant pas ceux que je visais. Bien que la compensation de rotation fonctionne bien tant que nous inclinons la plate-forme, une fois que la vitesse angulaire est nulle, le tracker est réinitialisé sans être appelé par moi ni déclencher un événement qu'il a fait. La compensation d'accélération linéaire vacille toujours autour du vrai point de repos.
J'ai déjà essayé d'utiliser l'implémentation Unity VR native et également le plugin Oculus. Cependant, la fusion des capteurs n'est pas disponible à ce niveau. Les forums Oculus ont de nombreux sujets sur ce problème, mais je n'ai trouvé aucune solution.
Existe-t-il des alternatives que l'on pourrait essayer pour utiliser l'Oculus sur une plateforme mobile?
Idéalement, ce que je voudrais faire, c'est de soustraire le mouvement induit des données du capteur Oculus avant de poursuivre le traitement. J'ai déjà envisagé d'appliquer des correctifs, par exemple LibOVR, mais je n'ai pas trouvé non plus de fonctions utiles liées à la fusion des capteurs.
Réponses:
Je ne peux pas donner de réponse définitive, mais ma suggestion est que vous expérimentiez avec des casques d'écoute de différents fabricants (Microsoft Mixed Reality, VIVE et potentiellement basés sur les téléphones mobiles), et voyez si le problème de réinitialisation se produit également avec eux. Mon intuition est que le problème de réinitialisation est spécifique à Oculus et n'est pas un trait des systèmes VR en général.
Comme exemple d'un projet réussi qui est similaire, voir le document CarVR: Enabling In-Car Virtual Reality Entertainment . Il parle de l'utilisation de la VR dans une voiture en mouvement.
Comme ce que vous avez fait, ils ont mis une IMU dans la plate-forme (la voiture) et soustraient ces données du rendu dans Unity. Il semble qu'ils aient réussi leurs tests et ne mentionnent pas de réinitialisation ou d'autres problèmes. Dans leurs recherches, ils ont spécifiquement utilisé Samsung GearVR avec un Samsung Galaxy S6 Edge comme appareil VR.
Une autre approche consisterait à utiliser un système VR qui repose sur des caméras pour déterminer l'orientation. Théoriquement, un système à caméra seule pourrait gérer entièrement tous les mouvements et toutes les orientations de la tête s'il était suffisamment puissant. Les casques de réalité mixte de Microsoft le font dans une certaine mesure. Consultez cette page Microsoft sur le suivi pour obtenir des informations à ce sujet. Cela dit, je crois que le système de Microsoft est un mélange de suivi de caméra avec des capteurs intégrés pour une approche hybride.
la source