dimanche 14 avril 2013

Mes premières impressions avec l'Oculus Rift

J'ai eu la chance d'essayer quelques kits de réalité virtuelle au cours des années. Des premiers VFX1 durant l'époque de Doom ( dans mon cas c'était Marathon sur Mac qui était bien supérieur selon moi ) au dernier par Vuzix, l'expérience était plus du genre "un jour ça va être vraiment bien". Avec l'Oculus Rift, bien le jours est pas mal arrivé. Dans la doc publicitaire, Oculus parle du "day 0" pour la réalité virtuelle et je les crois. C'est la première fois que c'est réellement immersif. Tous les autres kit, non militaires en tout cas, donnait toujours l'impression de regarder à travers une fenêtre plus ou moins grande en plus d'avoir un assez long décalage entre le mouvement de la tête et le rendu. Cette fois, il n'y a plus de fenêtre, la bordure qui est tout de même visible en vision périphérique est si petite que le cerveau en fait abstraction et l'impression d'être dans la scène est complète. La qualité des senseurs d'orientation et du logiciel de prédiction est tel que je n'ai senti aucun lag. Ceci dit, le rift n'est pas un produit commercial. C'est un kit pour développeur dont certains points reste à améliorer. Parlons donc du kit

Close-up du Rift

L'Oculus Rift est un casque de réalité virtuelle permettant l'affichage en 3D stéréoscopique et la détection de l'orientation dans l'espace. Il fut lancé en tant que projet sur Kickstarter et il a été un véritable succès, surtout grâce aux support de vétérans de l'industrie tel que Jonh Carmack Le casque lui-même est connecté à une boîte d'interface qui nécessite du courant, une connexion USB avec l'ordinateur et un signal vidéo soit DVI ou HDMI.Il est livré dans une mallette de transport en plastique. Outre le casque, la boîte d'interface et l'adaptateur de courant, il inclus une panoplie de fils DVI, HDMI ( 3 pieds et 6 pieds ), USB et des convertisseurs pour prise électrique un peu partout dans le monde. Disons que c'est assez inhabituel de voir autant de connectique fournie out-of-the-box. De plus, 3 couples de lentilles sont disponibles pour accommoder différent type de vision et il est possible de déplacer la distance entre les lentilles et les yeux, tout spécialement pour accommoder ceux portant des lunette comme moi.

Les pièces composants le rift sont celles utilisées par l'industrie des téléphones intelligents ( écran, gyro, etc ). C'est leur intégration qui rend le rift si spécial. Premièrement, la déformation optique est compensée par le logiciel de rendu, il y a des lentilles pour chaque oeil qui déforment l'image projetée sur un écran de petite tablette ( 7 pouces ). Cette déformation de loupe sur l'écran est "inverser" par le logiciel. Donc pas d'optique ultra-complexe ou d'électronique ultra-coûteuse pour permettre d'afficher l'image générée tel quel. L'oeil est plus sensible et précis au centre de la vision alors qu'ici il y a le moins de précision justement au centre de l'affichage.

Tous les composant du Rift une fois démonté par iFixit


Comme c'est un kit de développement, il n'y a pas de jeux ou de logiciel fourni avec le Rift, il y a un SDK permettant l'intégration du Rift dans des engin de jeux existant et du code source pour l'intégrer dans un engin maison. Pour essayer le Rift, une scène simple a été réalisée avec Unity permettant de se promener dans une maison de Tuscany. Bien que simpliste et très limité, c'est tout de même renversant. Il y a une version de l'éditeur d'Unreal 3 qui est aussi disponible et il est possible d'essayer n'importe quel scène avec le Rift. Il y a Epic citadel bien connu sur téléphone intelligent mais aussi des tableau d'Unreal qui sont les plus complexe et visuellement impressionnant en plus de permettre de contrôler des véhicules. Être devant une statue de 12 pieds de hauts ou sauter d'une plateforme des 40 pieds prend une toute autre signification avec le Rift.

Je me sens tout petit!

Puisque que chaque moitié horizontale est affiché pour un oeil différent, il n'y a pas de d'alternance dans le rendu et l'affichage contrairement à les télé 3D ou au cinéma avec le système de RealD. L'image résultante est donc séparée en deux horizontalement et déformée pour compenser la déformation optique.

Ma première expérience avec le Rift se résume à être Flabergasté, me mettre à rire en essayant de suivre le petite boule de pollen et soudainement avoir des nausées. Oui, ça prend 3 minutes et si on ne sait pas trop comment contrôler notre déplacement, le mal des transports nous frappe. Il ne faut surtout pas essayer de se déplacer de côté ou encore compenser la rotation du personnage avec la tête, c'est une recette pour induire des vomissements. Rester la tête droite pendant que l'on déplace le personnage ( surtout les rotations ), ne pas marcher de côté ( straffer ) et si possible ne pas reculer, sont des conseils à suivre. Ceci dit, à force d'essayer et de s'habituer au genre de déplacement, en plus d'habituer notre cerveau à accepter ce genre de réalité, j'arrive à rester connecté beaucoup plus longtemps qu'au début, mais pas plus de 15 minutes encore. Il est a noter que le casque est confortable, pas trop lourd et mes lunettes ne cause pas de problème, quoi que je porte un modèle assez petit.

Leurs réactions n'est pas fake, c'est vraiment l'effet que ça fait

Je dois dire que j'ai été chanceux d'essayer le Rift ce week-end. Puisqu'Oculus envoie ses colis par UPS et que j'ai manqué la livraison, je pensais être obligé d'attendre à lundi prochain pour le recevoir, tout en étant obligé de travailler de la maison puisqu'il faut payer la douane sur réception. Heureusement, il y a un arrangement avec Purolator ici à Rimouski afin de pouvoir aller chercher et payer les frais de dédouanage, chose qui n'était pas indiquée sur le papier laissé sur ma porte mais qu'un ami m'a fait savoir. Parce que oui, UPS charge à fort prix leur dédouanage. Tellement qu'avec les plaintes des autres canadiens, Oculus à changer l'envoie vers le Canada en utilisant USPS ( la poste américaine ). Sincèrement, plus de 60$ de frais de dédouanage ( à part les taxes ) c'est vraiment exagéré.

Problématiques à résoudre pour la version commerciale du Rift


Intégration et support du Rift par les développeurs.

Contrairement au casque de Vuzix qui utilisait les drivers stéréo d'Nvidia, le Rift nécessite une modification à l'intérieur de l'engin de rendu. De plus, il faut ajouter le support du moteur de prédiction de mouvement pour avoir une meilleure intégration des senseur d'orientation. Il y a tout de même certains qui ont réussi à bricoler des drivers qui permettent à certains jeux existant d'être utilisé avec le rift comme vireio et vorpX, Il n'y a rien d'étonnant a ce que ce soit le cas et plusieurs développeur ont déjà annoncés l'intégration du Rift dans leur prochains produits. Même ceux qui n'on pas publiquement parlé du Rift en ont plusieurs dans leur bureaux De plus, plusieurs moteur de rendu ont déjà ajouté l'intégration du Rift dans leur version actuelle et future. D'ailleur, le kit de développement fourni une version d'Unreal et de Unity supportant le Rift. Le seul jeu présentement disponible pour le Rift est Team Fortress 2 de Valve. Hawken devrait sortir un update prochainement permettant d'être à l'intérieur du cockpit de leurs robots géants spécialement pour le Rift. Mojang est l'un des premiers développeur à recevoir des Rift pour l'intégrer à Minecraft. Tout ça pour dire que c'est probablement un problème qui n'en sera pas un. Alors que le Rift devait être livré avec une version de Doom 3 BFG, Zenimax ne semble pas avoir laissé Carmack mettre à jour le code qu'il avait fait pour la démo de l'ancien prototype. Cependant, le source de Doom 3 est ouvert et il y a une gang de mordu qui y travail déjà. Ce devrait donc être pour bientôt. 

La résolution de la dalle LCD du Rift.

Alors que le Rift utilise un écran de 1280 pixels de large par 800 pixels de haut, cette résolution est coupée en deux horizontalement puisque chaque oeil n'en voit que la moité. Déjà donc, 640 par 800 pixels. Ensuite, la déformation sphérique grossit les pixels du centre et élague ceux en périphérie. Donc approximativement au centre 90% de pixels horizontale sont visible mais ceux du haut ou du bas sont quasi inexistants. Je dirais qu'environs le tiers des pixels sont visibles. Donc une résolution perceptible d'environs 480 par 400. Les pixels sont donc clairement visible et les détails de la dalle LCD le sont surtout au centre ( séparation des couleurs et bordure noir entre pixels ). Imaginez regarder un vieux téléviseur CRT de trop près avec un moustiquaire placer dessus. C'est une des amélioration prévue pour la version commerciale. Au minimum, une dalle de 1920 par 1080 ou encore quelque chose du genre retina display ( 2048 par 1536 ). Pouvoir doubler réellement la résolution serait bien ( 2560 par 1600 ). Autre problématique relié à la dalle LCD, la vitesse de rafraîchissement laisse des traces ( ghosting ). Alors que les écrans d'ordinateur sont entre 1 et 5 millisecondes, le Rift est à 30.

Le manque de positionnement dans l'espace. 

Avec cette immersion visuelle quasi totale, tous les petits détails deviennent important. La rotation est si bien implémentée que le cerveau s'attends à ce que la position y soit aussi. Bouger la tête de gauche à droite ou se pencher ne change rien à ce qui est rendus à l'écran. C'est un manque que le cerveau n'aime pas et est une cause de mal des transports ( cinétose ).  Il y a déjà des technologies pouvant être ajoutées au Rift facilement et qui risque fort bien de l'être pour la version finale. Il y a déjà beaucoup de gens qui utilise le Rift en conjonction avec le Hydra de Razer et Oculus à déjà fait mention de discussions faite avec Razer. Le Hydra sera probablement mon prochain achat d’ailleurs. 

Standardisation de la configuration.

Oui, il est important de configurer le Rift, et ce pour chaque personne. Il y a la distance pupillaire ( la distance entre vos yeux ) qui sert dans le calcul du rendu. Pour le moment, seulement Team Fortress offre une interface pour configurer cette distance. Cependant, je ne sais pas si cette information est stockée pour l'usager ou seulement pour le jeu. Il serait bien de pouvoir configurer une seule fois et de pouvoir utiliser l'information pour tous les jeux, au minimum localement sur l'ordinateur. Si Steam, Live et autres services utilisant le cloud pour le stockage des info de joueurs emboîte le pas, se serait vraiment bien. De plus, d'un jeu à l'autre, le test de distance pupillaire doit être implémenté. Il serait bien que ce test soit fourni par Oculus, donc standard partout. De plus, des informations comme la taille du joueur pourrait servir, tout spécialement pour les premières incursions puisque d'avoir une taille différente dans un jeu comparativement à celle dans la réalité n'est pas facile à accepter par le cerveau. La plupart des engins permette de configurer ces valeurs mais elles sont cachées dans des fichiers de configurations obscures.

Les prochaines problématique sont cependant le plus difficiles à corriger


La cinétose induite par le style de jeu. 

Oui, simplement intégrer le support du Rift dans un jeu n'est fait pas un bon jeu pour la réalité virtuelle.Tomber de 50 pieds puis tout simplement repartir à courir à environs 25 Km/h n'est pas quelque chose que le cerveau accepte facilement. Alors que c'est trippant dans un jeu comme Quake sur un écran d'ordi, ça rend malade la plupart des gens avec le Rift. Il va donc falloir non seulement modifier les jeux pour permettre une entré en matière mais il est nécessaire de désensibiliser le cerveau, tout comme pour ceux qui ont le mal de mer. Aussi, comme les jeunes de 2 à 12 ans sont le plus sensible, il leur sera déconseillé. De toute manière, la 3D stéréoscopique n'est pas recommandée pour eux non plus. 

Le niveau de détail des mondes virtuels

 Il y a plusieurs truc de rendu qui donne d'excellent résultat lorsque rendus sur un écran 2D. Cependant, ces techniques ne valent plus rien en 3D puisque le trucage est visible. La plupart d'effet de parallax ne passent pas car bien que la couleur est correct selon l'effet 3D, la géométrie elle reste plate  ce qui est maintenant visible. Il faut le faire à la dure en utilisant plus de vertex. Alors que les nouvelles cartes vidéo supportent la tessellation en shader, ce n'est pas encore encré dans les pipelines de production. La prochaine génération de console va forcer l'adoption de ces techniques mais ça va prendre encore un peu de temps avant que ce soit répandu  De plus, par le côté immersif de cette technologie, l'exploration des lieux devient plus intuitif et il faut donc plus de détails dans l'ensemble de l'univers représenté pour ne pas induire de discontinuité dans l'illusion ( suspension of disbelief ). C'est un peu comme le 48 images par secondes au cinéma. Tout les petits trucs utilisés qui donnent c'est impression spéciale au grand écrans s'estompent et le monde féerique devient ordinaire et cheap. Les changement de mipmaps sont terriblement apparent  De plus, il n'y pas que le côté visuel mais aussi auditif qu'il faut travailler. L'immersion visuelle étant totale, le son devient étrange s'il n'est pas aussi immersif. Être dans l'eau et entendre le son de l'eau qui coule devant soit et non sous ses pieds parce qu'il n'y que deux ou 3 sources sonores de placées le long d'un cours d'eau ne marche plus. 

Le besoin d'un séquence d'image constante ( frame rate )

Il est hyper important pour ne pas briser l'illusion d'avoir un minimum de 60 images par seconde, et ce synchronisée. Pas de teering en plein milieu de l'écran, donc pas le droit de changer d'image pendant l'affichage, en plus de demander une assez bonne résolution et un monde plus détaillé. Le Rift demande beaucoup à la carte vidéo. Alors qu'un PS3 n'a pas de problème à générer des images en Full HD, le Rift risque d'être taxant même pour le prochain PS4. Ma GT 650 arrive à peine à faire le travail avec des scène moyenne sur le kit de développement du Rift, elle ne sera jamais capable de fournir pour la version commerciale. D'ici deux ans, les cartes vidéos moyennes gamme devrait suffire mais j'ai l'impression que ce sera le haut de gamme qui sera nécessaire. Pas certains qu'une GTX 680 ou un HD 7970, bien que parfaite pour le kit de dev, soit assez performante pour la version commerciale. Je pensais que ce serait l'adoption du 4K qui serait le prochain catalyseur pour augmenter la puissance des cartes vidéos mais finalement ce sera plus l'adoption de la réalité virtuelle, si elle se fait, qui gonflera les portefeuilles de Nvidia de ce monde. Je serait curieux de voir un engin de raytracing utilisé au lieu d'un rasterizer standard. Non seulement les pixels non utilisés ne sont pas calculer mais comme il y a un poids visuel différent entre le pixel du centre et ceux en périphérie, il est possible de modifier le niveau de récursion et de d'aliasing par pixel, sans parler de la qualité visuelle. Peut-être qu'un engin hybride va faire du sens ( pré-calcul des map d'ombre, de réflexion   et d'environnement avec la carte, rendu final via ray-tracing en GPGPU ).


La création de contenu spécifique pour la réalité virtuelle.

Alors que de plus beaux graphiques, plus de détails, une séquence d'image soutenue sont tous perceptible dans un contexte 2D, le style de jeux et de contrôle doit être modifié pour pour utiliser pleinement un casque comme le Rift. Pour certains, il suffit de mettre le joueur à l'intérieur d'un cockpit, ce qui non seulement aide à diminuer la cinétose en donnant un point de repère fixe au joueur, ça augmente le réalisme. Pour d'autre, il faut ralentir le déplacement ce qui a un impact sur le gameplay. Il va donc y avoir certains jeux qui ne seront pas portés en VR alors que d'autre ne seront pas intéressant dans un contexte de salon. Il est impossible de placarder directement les UI en 2D ( pointage, etc. ) puisque ce peut être une cause de cinétose, il faut donc que le UI soit 3D lui aussi. Reste à voir si l'adoption du Rift va permettre le développement d'un écosystème viable pour le développement de jeux spécialement conçus pour la VR. C'est un peu le problème de la poule et de l'oeuf. Il y a cependant certains style de jeux qui aurait tout avantage à implémenter le Rift:

Les jeux d'exploration et de puzzle:

Par défaut, le déplacement dans l'univers est calqué sur la réalité et l'attention au détails fait partie du gameplay. Les Myst, Dear Esther ou encore les survial horror du style du premier Residen Evil  vont redevenir intéressant en VR.

Jolie chute d'eau à la sortie du château d'Epic citadel. L'effet de profondeur est saisissant.


Les RTS, stratégie et autre God game:

Avoir un point de vue surplombant l'aire de jeu et tout simplement tourner la tête pour voir les ennemis s'en venir ou rapidement voir la dispersion de ses unités devient tout un atout. Une fois les HUD modifiés et l'interface de contrôle adaptée, je me vois mal revenir jouer à quelque chose du genre sur un écran d'ordi.

Tout simulateur de véhicule:

Que ce soit des simulateur d'avions, bateaux, de gros robots, de voitures, de vaisseaux spatiaux ou même de tracteurs de ferme, pouvoir admirer de l'intérieur du véhicule le paysage extérieur donne une tout autre expérience. Probablement que les simulateur de F1 risque de donner le mal des transport puisque si près du sol, mais bon, on verra.

Conclusion


On est bien rendu là où les films des années 90 voulaient nous le laisser croire. Toute la technologie existe et est abordable. Utiliser un Kinect, le Hydra et le Rift permet de faire une interface d'immersion tel que vue dans des films ( OK, pas très bon ) comme Harcèlement avec Michael Douglas et Demi Moore ou même à la limite comme le Cobaye. Outre le jeu, il y a beaucoup d'espoir et de recherche pour aider les gens souffrant de phobies, d'autisme ou de syndrome post-traumatique avec la réalité virtuelle, donc oui ça affecte le cerveau beaucoup plus que l'on pense ce genre de technologie. Oublions le bout on ça développe les pouvoir paranormaux ;-) 

Pour ceux qui veulent se procurer le kit de développement même seulement pour essayer le jeux et autres applications ( il y a des visionneuse d'image et de film 3D déjà ) qui seront développés d'ici à ce qu'une version finale soit disponible, bien il est possible de le pré-commander sur le site d'Oculus pour 300$ US. C'est difficile de donner une idée de ce que cette technologie permet de faire à moins de l'essayer soit-même. Mais sincèrement, attendez un peu, il y a encore pas mal de travail à faire avant que ce soit prêt pour monsieur et madame tout le monde. Possible aussi que d'autres joueurs comme SONY ou Vuzix décident d'y aller de l'avant avec leur propre casque qui supplantera le Rift à sa sortie. Ce n'est peut-être pas le Rift qui sera le vainqueur de la commercialisation de la réalité virtuelle mais c'est lui qui sera à l'origine de l'adoption de la réalité virtuelle par les développeurs.

jeudi 11 avril 2013

Procrastination, quand tu nous tiens...

Tellement de projets en cours. Tellement d'équipements qui dorment chez-moi. Tellement de jeux vidéo même pas essayés. Me semble que je devrais avoir mes soirées bien remplies. Finalement non, ça fait quelques jours que le cerveau est en sauce blanche. En même temps, je pourrais bien faire deux ou trois trucs ne nécessitant peu sinon aucune matière grise. Mais non, je perd mes soirées devant l'ordi à browser le web ou même jouer à Minecraft.

Il y a madame insomnie qui semble s'être installée chez-moi et ne semble pas pressée de repartir. Malheureusement, je suis juste assez fatigué pour ne pas être capable de me concentrer convenablement pour travailler sur un projet mais évidemment pas assez pour m'endormir.

Je me botte le derrière juste après avoir écrit ce post et vais faire un peu de peinture dans la salle de jeux de monstres. Quoi qu'il y avait un article pas vraiment intéressant mais que ...