Ça marche avec n'importe quel casque qui fournit un runtime OpenXR et avec des manettes comparables à celles Quest.
Seule la version Android est complète, une version Linux existe mais ne gère pas le son ni la décompression matérielle.
Je n'ai pas inventé le principe de base, d'autres logiciels comme Virtual Desktop ou ALVR le faisaient avant. On utilise le réseau pour synchroniser l'état entre le serveur (PC) et le client (casque), les images sont compressées (résolution réduite sur les bords) et encodées (h264 généralement, mais des options pour h265 ou AV1 existent) pour pouvoir être transférées en un temps raisonnable.
Toute la difficulté est de se battre contre la latence, on arrive à 55ms de latence totale entre le moment où un mouvement est enregistré par le casque et celui où il est physiquement visible à l'écran.
Pour ça toutes les techniques sont autorisées: les mouvements des casques et manettes sont envoyés avant que l'application les demande avec une prédiction de déplacement. La vidéo est découpée en blocs pour commencer à envoyer et décoder une image avant que l'ensemble ne soit encodé, les statistiques du temps des différentes phases sont enregistrées pour commencer les calculs juste à temps et minimiser le temps où une image décodée attend d'être affichée.
[^] # Re: Excellent projet !
Posté par Patrick Nicolas . En réponse au journal Croissance d'un projet open source - WiVRn. Évalué à 6.
Ça marche avec n'importe quel casque qui fournit un runtime OpenXR et avec des manettes comparables à celles Quest.
Seule la version Android est complète, une version Linux existe mais ne gère pas le son ni la décompression matérielle.
Je n'ai pas inventé le principe de base, d'autres logiciels comme Virtual Desktop ou ALVR le faisaient avant. On utilise le réseau pour synchroniser l'état entre le serveur (PC) et le client (casque), les images sont compressées (résolution réduite sur les bords) et encodées (h264 généralement, mais des options pour h265 ou AV1 existent) pour pouvoir être transférées en un temps raisonnable.
Toute la difficulté est de se battre contre la latence, on arrive à 55ms de latence totale entre le moment où un mouvement est enregistré par le casque et celui où il est physiquement visible à l'écran.
Pour ça toutes les techniques sont autorisées: les mouvements des casques et manettes sont envoyés avant que l'application les demande avec une prédiction de déplacement. La vidéo est découpée en blocs pour commencer à envoyer et décoder une image avant que l'ensemble ne soit encodé, les statistiques du temps des différentes phases sont enregistrées pour commencer les calculs juste à temps et minimiser le temps où une image décodée attend d'être affichée.