ETR.fr

   |   

En vous inscrivant, vous acceptez qu'ETR.fr conserve votre identifiant, votre adresse mail et votre adresse IP durant une durée de 6 ans après la dernière connexion.



Publié le 03/11/2018 à 12:00

SteamVR et les reprojections : le micmac

Yo les amis, notre challenge du jour est de nous aventurer dans la mer luminescente qu’est la zone de paramétrage de SteamVR. Notre mission, explorer ce lieu encore méconnu, débroussailler toute la région des reprojections, fouiller le moindre recoin et éliminer toutes les interrogations que nous rencontrerons sur la route.

N’oubliez pas mon général, prenez quelques Steampacks et une bonne dizaine de Radaways et ça devrait bien se passer ! Je vous donne rendez-vous au point de ralliement situé dans OpenVR Advanced Setting (OVRAS). J’ai entendu parler d’ETRiens qui auraient besoin d’aide. Tenez, je vais l’indiquer sur votre carte.

Là, vous vous dites pourquoi je vous parle de Fallout 4 VR ? Quel est le lien avec les reprojections ? Fallout 4 VR est, comment dire…  le jeu idéal pour comprendre l'utilité des reprojections. Si votre PC arrive à faire tourner ce jeu sans saccades, alors vous avez une bonne configuration et vous avez bien paramétré le jeu.

Pour jouer confortablement en réalité virtuelle (VR), il est primordial que votre jeu tienne la cadence des 90 images par seconde (ips), ce qui correspond à une image toutes les 11.1 ms. Un PC muni d’une bonne carte graphique épaulé d’un bon processeur doit faire l’affaire. Mais cela ne suffit pas, il faut aussi que votre jeu soit bien codé et bien paramétré, malheureusement ce n’est pas toujours le cas.

Alors que faire ? Upgrader son PC ? Baisser au minimum les paramètres graphiques du jeu? Oui bien sûr ça peut aider, mais il existe une autre manière d’améliorer les performances du jeu : c’est de bien gérer les options de reprojection que propose SteamVR, et c’est ce que nous allons faire.
OpenVR Advanced Setting, est la boîte à outils qui permet d’améliorer grandement le paramétrage de SteamVR
OpenVR Advanced Setting, est la boîte à outils qui permet d’améliorer grandement le paramétrage de SteamVR
Vous l’avez sûrement remarqué, récemment certaines options ont tout simplement disparu de vos réglages de SteamVR. C’est notamment le cas des reprojections, qui étaient présentes dans l’onglet « développeur ». Rassurez-vous, ces fonctionnalités sont toujours accessibles via OVRAS. Dans cette boîte à outils, la partie réservée aux reprojections se trouve dans l’onglet SteamVR et comprend trois fonctionnalités qu’on va détailler ci-après : Interleaved Reprojection, Asynchronous Reprojection et Always on Reprojection. Une quatrième fonctionnalité qu'on va également expliquer c'est SteamVR Motion Smoothing qui est désormais disponible dans le menu « vidéo» des paramètres de SteamVR.

Avant de parler des reprojections, intéressons nous aux notions d’images synthétisées et d’images perdues.

Images synthétisées et images perdues

Pour comprendre ces deux notions utilisons les 4 schémas fournis par NVIDIA. Ces schémas vont me permettre d'expliquer le Pipeline de réalité virtuelle dans SteamVR.

Ils montrent comment les images rendues par le jeu sont envoyées au casque après traitement par le runtime de SteamVR.

NB: une trame est la résultante d'une image rendue par le jeu après intégration des informations de déformation (warp) par le runtime.
Une trame produite avant le seuil des 11.1ms           (couleur verte)
Une trame produite avant le seuil des 11.1ms (couleur verte)
Le pipeline idéal
La création d'une trame se déroule en 3 étapes :
  1. le jeu produit une 1ère image (frame1)
    avant le seuil des 11.1 ms
  2. le runtime de SteamVR récupère cette image puis la modifie, et on obtient une nouvelle image qui est la trame1
  3. cette trame1 est envoyée par le runtime vers le casque
Une trame produite après le seuil des 11.1ms           (couleur jaune)
Une trame produite après le seuil des 11.1ms (couleur jaune)

Les images synthétisées
Le schéma suivant représente le pipeline quand une image est rendue trop tardivement. Une image est alors synthétisée, si bien sûr un système de reprojection est activé.

 
  • la 1ère image s’affiche correctement. Par contre le jeu a pris du retard pour fournir l’image 2.
  • le runtime va alors synthétiser une nouvelle image à partir de l’image précédente.
  • l’image 2 n’est par contre pas perdue, elle sera affichée après l’image synthétisée.
Une trame est perdue (couleur rouge)
Une trame est perdue (couleur rouge)
Les images perdues
C'est ce qui arrive lorsque une image est en retard et que la synthèse ne se fait pas. Une trame est donc manquante. Il y a plusieurs raisons possibles : reprojection non activée, CPU peu performant…

Le nombre de trames affichées chute, par conséquent le nombre d’ips également. Le jeu est alors saccadé.

Il est temps de rentrer dans le vif du sujet. Les reprojections !

Les reprojections

Définition
Il faut retenir qu'un jeu n'envoie pas directement l'image calculée au casque, il la stocke dans un buffer appelé frame-buffer. Le runtime de SteamVR qui s'exécute en même temps que le jeu récupère ce frame-buffer, puis effectue sur celui-ci plusieurs opérations de correction pour compenser la déformation due aux lentilles du casque, et crée une trame. Cette trame est ensuite "reprojetée" au casque.

Il existe plusieurs types de reprojections.

1- Interleaved Reprojection

(Reprojection entrelacée)

La Reprojection entrelacée (RE) a été la première reprojection mise en place par SteamVR à l’image de Spacewarp Asynchrone développé par Oculus. Cette technologie se déclenche quand un jeu n’arrive pas à atteindre les 90 ips qui sont nécessaires pour jouer de façon fluide. Quand la RE est activée, SteamVR force le jeu à descendre à 45 ips. Les 45 images restantes sont générées à partir des images rendues par le jeu.
Cette fonctionnalité est utile si vous avez un goulot d’étranglement CPU.
La trame précédemment rendue est injectée à la place de la trame qui aurait dû être manquée
La trame précédemment rendue est injectée à la place de la trame qui aurait dû être manquée

2- Asynchronous Reprojection

(Reprojection Asynchrone)

Cette techno vient appuyer la reprojection entrelacée. L’objectif ici est toujours le même, atteindre les 90 ips. Mais au lieu de forcer le jeu à descendre à 45 ips, cette techno laisse votre jeu produire son maximum d’images, et se contente d’injecter intelligemment les images manquantes.
Votre jeu est proche des 90 ips, mais de temps en temps vous avez une baisse de framerate
Votre jeu est proche des 90 ips, mais de temps en temps vous avez une baisse de framerate

3- Always On Reprojection

(Reprojection Permanente)

Beaucoup pensent à tort, que cette techno force le jeu à passer à 45 ips, ce n’est pas le cas.

Avec cette technique de reprojection, le jeu peut solliciter le GPU sans contrainte. il peut ainsi atteindre les 90 ips plus facilement.

SteamVR affiche une image toutes les 11.1 ms. Pour ce faire SteamVR impose au jeu de ne faire sa demande GPU que  2-3 ms avant la fin de chaque intervalle. Par conséquent le jeu et donc le CPU sont mis en attente par SteamVR pendant tout le début de l'intervalle (8 ms).

De son côté, SteamVR exploite ce délai de 8 ms pour calculer la position du casque avec précision et ne la communique au jeu qu'à la fin des 8 ms.
Ainsi une seule image est rendue par intervalle de 11.1 ms, mais avec un maximum d'informations de position.

Si cette restriction n'est pas respectée, on aura toujours une image par intervalle de 11.1 ms mais avec une information de position potentiellement erronée. En effet, si l'information de position du casque est donnée en début d'intervalle, alors que le casque s'est déplacé entre temps, le jeu va rendre une image erronée par rapport à la nouvelle position du casque et donc provoquer un inconfort.

Par contre si le casque ne se déplace pas, l'absence de restriction n'est pas pénalisante pour l'utilisateur. Et l'avantage est que toute la puissance ainsi libérée profite au jeu.

À l’instar de la reprojection entrelacée, cette fonctionnalité résout le goulot d’étranglement CPU. Elle fait des merveilles dans les jeux où il y a peu de mouvements de translation et beaucoup de mouvements de rotation de la tête. Ce qui est le cas des jeux assis. Par exemple, les jeux de voitures qui ont la facheuse tendance à souvent solliciter le CPU.

Son défaut ? Elle entraîne un temps de latence supplémentaire pour le suivi de position. Il faut la désactiver dans le cas de jeux qui utilisent beaucoup de mouvements de translation, notamment les jeux qui exploitent toute la surface d'une pièce. 

4- Motion Smoothing


(Lissage de Mouvement)

Le Motion Smoothing (MS) a été récemment le sujet d’un article que je vous invite à lire ici. C’est une nouvelle techno qui est activée par défaut dans la version bêta de SteamVR. Une fois activée, MS se déclenche si votre jeu a du mal à atteindre les 90 ips. Cette technique vient en complément de la reprojection asynchrone avec une méthode différente pour synthétiser les nouvelles images.

Quelle techno utiliser ?

La réponse est : ça dépend de votre machine et aussi du jeu auquel vous jouez !

Bon, vous allez commencer par désactiver toutes les options dans SteamVR, puis lancer votre jeu. Fallout 4 VR par exemple.

Comme toujours, des ETRiens ont besoin de vous, il faut rallier d’autres VRiens. Tenez, je sais que ce n’est pas grand chose, mais je vous remets ces quelques caps pour avoir réussi votre mission d’exploration des reprojections. (ajout.. 4 caps)
Chaque Caps représente 1 cas de figure

Caps 1: Votre jeu est saccadé (le jeu est loin des 90 ips).
Activez uniquement la reprojection entrelacée et baissez les paramètres graphiques du jeu. Vous remarquerez tout de suite la différence.

Caps 2: le jeu peine à maintenir les 90 ips:
Si vous remarquez que vos pertes d’images ne surviennent que rarement. Dans ce cas vous n’avez aucun intérêt à réduire votre jeu à 45 ips. Vous pouvez laisser la reprojection entrelacée désactivée et n'activer que la reprojection asynchrone. Cette dernière suffira à compenser les quelques images perdues.

Caps 3: vous jouez souvent à des jeux en configuration "debout" ou "assise"
Avec majoritairement des mouvements de rotation de la tête. Alors activez la reprojection permanente cela soulagera votre CPU.

Caps 4: le Lissage de Mouvement
Comme cette fonctionnalité est en phase bêta, c’est à vous de voir si son utilisation vous apporte un plus. Cette techno vient appuyer toutes les autres avec des images de meilleure qualité et beaucoup plus lissées, mais malheureusement  elle produit quelques artefacts.

Et pour finir voici quelques règles à suivre.
Conclusion

TL;NR - 3 règles à suivre :
  1. utilisez la reprojection asynchrone dans tous les cas
     
  2. si malgré l'activation de la reprojection asynchrone vous constatez des saccades alors désactivez la reprojection asynchrone et activez la reprojection entrelacée.
     
  3. s’il s'agit d'un jeu assis et que vous pensez qu'il pourrait tourner à plus de 45 images par seconde, et que vous avez un goulot d'étranglement CPU, alors activez uniquement la reprojection permanente.
     
  4. Vous pouvez améliorer la qualité des images reprojetées en activant le lissage de mouvement

Si vous ne constatez pas d'amélioration, baissez les paramètres graphiques de votre jeu, et reprenez à partir de la 1ère règle.
 


HTC Vive Pro
Vos avis
Mots-Clés ActualitéDossier
Publié par
Lecteur ETR

MESSAGES (12)

Intéragissez avec la communauté
   Les Forums
Publicité
Publicité
VR Cover

© 2013-2018 ETR | Tous droits réservés               Nos partenaires :
Version Mobile