Bien démarrer avec son OSVR Hacker Development Kit

Vous venez de recevoir votre Hacker Development Kit et vous êtes perdu ? Ce billet est fait pour vous, nous allons voir ensemble tout ce qu’il faut faire pour profiter de votre casque de réalité virtuelle pour développer, et peut être même jouer. Ce tutoriel se limitera à Windows, mais vous pouvez utiliser son contenu et l’adapter pour Linux et Mac.

20160514_091058

Bien que cela soit un détail, nous allons parler de vocabulaire pour commencer. Vous tenez dans les main un HDK (Hacker Development Kit), c’est un casque produit par la société Razer. La conception du casque est le fruit du travail de la société Sensics, déjà experte dans ce domaine depuis des années. OSVR est une organisation ayant pour but de proposer de démocratiser et standardiser la réalité virtuelle, en proposant du software et du hardware open source. Ainsi vous n’avez pas entre les main un casque OSVR, mais un Razer HDK exploitant la plateforme OSVR, utilisant des logiciels issus de cette dernière pour fonctionner.

info-xxlToutes les instructions qui suivent fonctionnent avec le HDK 1.3/1.4, il est très facile de les adapter pour le HDK 2.0, il suffit généralement de remplacer 1.3 par 2.0 dans les fichiers de configuration.


Parlons du branchement

Même si le branchement peut paraître relativement simple, il faut bien garder en tête que le casque se branche sur un port USB 3 et que la prise HDMI se branche sur votre carte vidéo dédiée. Si vous avez une carte mère avec un GPU intégré, comme c’est aujourd’hui le cas sur presque tous les modèles, il ne faut pas brancher le HDK sur cette prise, mais bien sur votre carte vidéo. Brancher le HDK sur la prise HDMI de la carte fonctionnera, mais vous n’aurez pas la puissance de votre carte graphique dédiée pour l’affichage, et donc de très mauvaises performances en plus de fonctionnalités limités.

Installation des pilotes

La première chose à faire est d’installer les pilotes du casque, vous pouvez les télécharger à cette adresse. Utilisez toujours la dernière version, par exemple OSVR-HDK-Combined-Driver-Installer-1.2.7.exe ici. Une fois téléchargement terminé, il suffit de l’installer.

Installation et configuration du serveur

Le casque utilise un serveur fonctionnant avec des plugins. Par chance, il y a justement un plugin pour le HDK, mais sachez que ce serveur n’est pas limité au HDK, vous pouvez y faire fonctionner l’Oculus Rift, le HTC Vive ainsi que d’autres casques VR plus ou moins connus. Le fait d’avoir un fonctionnement via des plugins est une force, car vous pouvez si vous le désirez, créer votre plugin. OSVR met à notre disposition un site permettant de récupérer la dernière version de développement du runtime. A chaque modification dans le code, une nouvelle version sera compilée et accessible à tous.

Rendez vous sur cette page et téléchargez la version que vous voulez pour l’architecture de votre processeur. OSVR Runtime si vous ne voulez pas faire de développement C++, sinon OSVR SDK qui contient la même chose que la précédente, avec en plus les bibliothèques permettant de créer ses plugins. Personnellement je prends le SDK en 64 bit. Une fois que tout est installé, il va falloir configurer le serveur, c’est peut être la partie la moins amusante, mais n’oubliez pas que vous avez entre les mains un kit de développement, pas un casque grand publique.

Configuration du serveur

Si vous lancez le serveur maintenant vous aurez la configuration de base et suivant votre modèle de carte graphique, rien ne fonctionnera. Il va falloir le configurer pour indiquer le modèle du casque ainsi que le mode de fonctionnement.

Les modes de fonctionnement

 

red_round_warning_sign_4867N’oubliez pas de mettre à jour vos pilotes de carte graphique avant de faire cette opération. C’est assez contradictoire, mais jetez aussi un œil sur cette documentation pour déterminer quel est la meilleur version du driver pour votre carte graphique.

Le mode direct

Les cartes graphique Nvidia de milieu et haut de gamme, ainsi que les dernières cartes AMD haut de gamme, proposent une fonctionnalité très utile en réalité virtuelle, le mode direct. Le mode direct permet de dire au système d’exploitation que le casque n’est pas un écran secondaire mais bien un casque de réalité virtuelle. Le programme n’affichera donc pas le contenu sur l’écran, mais directement dans le casque, sans passer par les routines graphiques du système d’exploitation. Le principal avantage est que cette méthode est rapide et c’est justement ce dont nous avons besoin.

Les GPUs sur PC portable, les cartes Intel* et les modèles d’entrée de gamme ou dépassés ne supportent pas le mode direct. De même les drivers graphiques sous Linux et Mac ne supportent pas encore cette fonctionnalité. Rassurez vous, si votre GPU n’est pas compatible ce n’est pas trop grave car vous pouvez utiliser le mode étendu.

* Il semblerait qu’Intel travaille à l’ajout du mode direct dans ses drivers..

Le mode étendu

Le casque sera reconnu comme un écran à part entière, d’ailleurs vous pourrez le voir dans la configuration d’affichage de Windows. Le contenu sera directement mis sur l’écran concerné et le fonctionnement sera quasiment transparent pour vous. Presque car Windows vous affichera un écran de plus dans le gestionnaire d’affichage.

OSVR_Extended
L’écran numéro 2 correspond au HDK en mode portrait

En mode étendu, il n’est pas obligatoire de passer l’affichage en paysage, ce n’est d’ailleurs pas recommandé car c’est moins performant que le mode portrait. Rassurez vous encore une fois, lorsque vous afficherez du contenu, la partie software fera ce qu’il faut pour que ça fonctionne bien :-p Le contenu sera placé automatiquement sur l’écran du casque.

20160227_094747
Le HDK fonctionnant sur un PC portable en mode d’affichage étendu paysage

Choisir son mode d’affichage

OSVR_Modes

Allez dans le dossier d’installation du Runtime ou SDK et suivant la marque de votre carte graphique, cliquez sur EnableOSVRDirectMode[AMD].exe, si tout est noir dans votre casque, c’est que vous êtes en mode direct ! Sinon, si vous voyez encore votre bureau c’est que votre GPU n’est malheureusement pas compatible et vous devrez continuer avec le mode étendu.

Configuration du serveur

La configuration du serveur se trouve dans le dossier du Runtime ou du SDK, dans un fichier qui se nomme osvr_server_config.json, par défaut, ce fichier contient le minimum d’informations et nous allons le remplir avec les informations nécessaires au bon fonctionnement de votre casque. Toujours dans le dossier du Runtime ou SDK, allez dans le dossier sample-configs, et repérez les fichiers nommés osvr_server_config.HDK13[DirectMode|Extended][Landscape|Portrait].sample.json.

OSVR_ConfigFiles

Suivant le modèle de votre casque et votre mode d’affichage il faudra choisir le fichier adapté et copier son contenu (avec notepad++ en mode administrateur par exemple) dans le fichier osvr_server_config.json. Voici quelques exemples de fichiers à utiliser.

  • Mode direct : osvr_server_config.HDK13DirectMode.sample.json
  • Mode étendu portrait : osvr_server_config.HDK13ExtendedPortrait.sample.json
  • Mode étendu paysage : osvr_server_config.HDK13ExtendedLandscape.sample.json

Les plus perspicaces d’entre vous aurons remarqué qu’il existe exactement les mêmes fichiers avec le suffixe _with_mesh. Ces fichiers utilisent ce que l’on appel un Barrel Mesh pour la correction de distorsion (le noir autour de l’image dans le casque). Vous pouvez utiliser ces versions, mais j’ai noté que dans certains cas, les performances étaient moins bonnes, mais cela dépend du programme, donc c’est à vous d’essayer. Je vous recommande la version classique pour l’instant.

Mise à jour du firmware du HDK

Il est possible que le firmware de votre HDK ne soit pas à jour quand vous recevrez votre kit, il va donc falloir faire une mise à jour du firmware du casque. Vous aller avoir besoin d’installer trois choses

  1. OSVR Control : Panneau de contrôle du HDK
  2. FLIP : Un logiciel pour flasher le firmware du HDK utilisé par OSVR Control
  3. Jave Runtime : Parce que FLIP utilise Java en version 32 bit

OSVR_Control

OSVR Control permet de modifier certains paramètres sur le casque mais aussi de mettre à jour le firmware. Il faut commencer par cliquer sur le bouton Connect en haut à droite, de là nous pouvons utiliser les différents boutons de l’interface.

Le mode Side by Side (SBS) permet de passer le casque en affichage stéréoscopique. Par exemple en mode étendu ou clonage, vous pourrez voir votre bureau normalement. L’utilisation de cette option en mode direct n’a absolument aucun intérêt, cependant si un jour votre casque passe tout seul en mode SBS, il faudra lancer cet utilitaire pour repasser en mode normal. Je vous laisse découvrir les autres paramètres via la documentation.

Pour mettre à jour le casque il faut cliquer sur Update Firmware et cliquer sur suivant jusqu’à la sélection du firmware. Le dernier devrait être automatiquement sélectionné, mais vous pouvez le vérifier manuellement.

OSVR_Firmwares

Après il faut simplement valider et cliquer sur le bouton Go !

OSVR_Control_Flash

Après quelques instants, votre casque sera flashé avec la dernière version du firmware !

Mise à jour de la caméra IR

Mettre à jour le casque est une chose, mais la caméra infrarouge aura peut être une mise à jour elle aussi… Dans un premier temps vous devez télécharger Firmware update tool for HDK IR Camera, disponible à cette adresse.

OSVR_IRCameraUpdate

Le processus est relativement simple, vous devez brancher votre caméra au PC via le cordon USB (le cordon Jack n’est pas nécessaire) et lancer le programme téléchargé précédemment. Il n’y a qu’un seul bouton qui va mettre à jour la caméra si une mise à jour est disponible.

Calibration de la caméra IR

Le HDK possède plusieurs leds infrarouge sur sa façade, vous pouvez les voir avec une caméra de téléphone portable quand le casque fonctionne. Ces leds permettent à la caméra infrarouge (IR) livrée avec le kit, de faire ce que l’on appel du position tracking (suivi de position de la tête). Cette fonctionnalité est encore très expérimentalle avec le HDK, certains préfèrent la débrancher, personnellement je vous recommande de la placer au bon endroit et de bien la calibrer en attendant une mise à jour. Pour démarrer le processus il faut aller dans le dossier d’installation et lancer le serveur osvr_server.exe ainsi que l’utilitaire VideoTrackerCalibrationUtility.exe.

OSVR_CalibrationTracker

Vous devez tourner le casque dans tous les sens jusqu’à ce que tous les points passent au vert. La barre en bas vous permet de suivre la progression du processus. Une fois que tout est vert, appuyez sur la touche S et fermez l’application.

Tester le fonctionnement avec les outils et démos

Maintenant vous pouvez lancer le programme osvr_server.exe si ce n’est pas déjà fait et votre casque sera désormais fonctionnel !

Vous devriez avoir une fenêtre dans ce genre là… J’ai quelques plugins, il est donc tout à fait normal que vous n’ayez pas exactement la même chose 😉 Maintenant il faut tester votre installation, vous pouvez le faire très simplement avec le logiciel OSVRTrackerView.exe ou avec les quelques démos présentes dans le dossier d’installation.


OSVR_TrackedView

Installation du driver SteamVR

Vous pensiez qu’il fallait un HTC Vive pour utiliser l’API OpenVR ou jouer à des jeux VR sur Steam ? OpenVR permet aux développeurs de créer des drivers permettant d’ajouter la prise en charge d’autres casques. C’est le cas pour les Oculus Rift DK2 et CV1 par exemple. Dans un premier temps il faut installer Steam puis l’application SteamVR qui est disponible dans la section Outils. Ensuite nous allons installer le driver OSVR-SteamVR qui est téléchargeable ici. Rendez vous sur la page du projet, descendez un peu et téléchargez la version pour Windows.

OSVR_SteamVRGithub
Téléchargement sur la page github (dans la description)
OSVR_SteamVRDownload
Ce site permet de récupérer une nouvelle version dès qu’une modification est faite sur github !

Il est possible qu’OSVR propose un fichier d’installation automatique plus tard, mais pour le moment il faut tout faire à la main. Une fois l’archive récupérée, vous pouvez la décompresser et copier le dossier SteamVR-OSVR\lib\openvr\osvr dans C:\Program Files (x86)\Steam\steamapps\common\SteamVR\drivers. De manière à ce que le dossier osvr soit à côté des dossiers lighthouse, oculus, etc.. Toujours dans ce dossier, il y a un fichier nommé drivers.cfg, il faut ajouter [osvr] en début de fichier.

[osvr]

[oculus]

[vortex]

Vous pouvez désormais lancer SteamVR et profiter du contenu disponible. Malheureusement il n’existe pas encore de contrôleurs VR officiels, vous pourrez tout de même profiter des titres se jouant assis avec un clavier ou une manette, mais pour les autres il faudrait vous procurer des contrôleurs VR compatibles. J’utilise des Razer Hydra qui sont durs à trouver et à mon avis trop chères,  mais qui permettent une utilisation correct de SteamVR en mode RoomScale. Vous pouvez aussi essayer les PS Move ou le Leap Motion, mais ces solutions sont soit encore en développement soit relativement limitées.

Développer des applications et des jeux avec OSVR

Si il y a une chose qui est sur, c’est que vous avez le choix ! Le SDK OSVR est disponible pour une large variété de moteur

  • Unity : Encore assez instable et pas évident à utiliser *
  • Unreal Engine 4 : Il est intégré au moteur, il suffit d’activer sa prise en charge dans les options
  • CryEngine : Là aussi c’est intégré au moteur
  • MonoGame : Je vous recommande plutôt de regarder du côté de Managed-OSVR

Maintenant vous avez peut être votre propre moteur ? Là encore il existe un SDK pour

  • C++ (inclus lorsque vous installez le paquet OSVR-SDK)
  • Managed-OSVR : Il est utilisé dans Unity
  • OSVR-Java

Et pourquoi pas SteamVR ?

OSVR_SteamVR_Unity

Si vous installez le driver OSVR-SteamVR vous êtes en mesure de développer directement avec l’API OpenVR ! Ajouter à ça des contrôleurs alternatifs type Razer Hydra ou PSMove et vous voilà prêt pour créer du contenu RoomScale, à condition d’avoir le tracker de position qui va bien évidemment (mais ça sera pour un prochain article ça les amis).

En résumer, en plus de pouvoir jouer à des jeux VR sur Steam, vous pouvez aussi en développer, sympa non ? Dans Unity, c’est une case à cocher, rien de plus ! Il suffit d’aller dans les paramètres du player (Player Settings) et de cocher la case Virtual reality Supported, ensuite vous n’avez plus qu’à ajouter OpenVR dans la liste et le tour est joué !

info-xxlA partir de là, la caméra principale sera automatiquement surchargée avec la position et la rotation du HDK ! Si vous voulez aller plus loin, avec l’utilisation des contrôleurs par exemple, il faudra installer le SDK SteamVR.

Le HDK EST un DevKit, mais…

Nous venons de voir comment configurer le HDK et bien que pas particulièrement compliqué, vous aurez remarqué à la taille de l’article qu’il y avait pas mal de choses à dire. Le HDK est effectivement réservé avant tout aux développeurs n’ayant pas peur de perdre du temps, à configurer le casque et chercher la meilleur configuration possible. Il n’est pas rare de mettre les mains dans le code des différents SDK pour faire avancer un peu les choses par vous même. Mais nous sommes aujourd’hui dans une phase de stabilisation et on peut espérer que cette tendance continue doucement jusqu’à la sortie effective du casque pour les consommateurs. Les plus curieux et bidouilleurs peuvent aussi l’essayer sans problème, ce n’est cependant pas un produit grand publique.

Suivre OSVR

Projets à suivre de très près

Dans tous les cas les possibilités actuelles du casque sont déjà intéressantes, vous pouvez par exemple développer avec Unity ou Unreal. Côté gaming pur, il est possible de jouer à des jeux VR sur Steam (en étant équipé pour certains) et même de profiter de la bibliothèque d’Oculus en utilisant ReVive !

Enfin, si vous cherchez quelques jeux natifs sympas à essayer, je vous propose de faire un tour sur ma page itch.io.

Vous avez des questions ? Envie d’échanger vos retours d’expérience sur la plateforme OSVR, de parler de développement ? Alors n’hésitez pas à laisser un commentaire 😉