Le projet SmoothVideo utilise l'interpolation d'images pour augmenter le nombre d'images par seconde de 24 à 60. Les résultats sont assez impressionnants . Je me demandais si cela pouvait être appliqué et si cela aurait l'air bien dans les jeux vidéo?
Il utilise beaucoup moins de ressources que le rendu de toutes les images, ce qui permettrait aux plates-formes d'extrémité inférieure de restituer la qualité de plates-formes bien meilleures à un certain niveau de compromis. Je sais que ce ne sera pas aussi précis et augmenterait légèrement la latence d'entrée car il doit s'accrocher à la nouvelle image pour pouvoir générer et insérer celle interpolée. Ce n'est pas aussi mauvais qu'une image complète, selon mon raisonnement, seul le décalage serait le temps d'interpolation plus la moitié du temps de rafraîchissement d'origine. Donc, pour 30 fps, ce serait 33 ms / 2 + temps d'interpolation.
Peut-être que ce décalage le rendrait inapproprié pour les jeux à la première personne passés rapidement, mais je doute que ce soit un obstacle dans les jeux au rythme plus lent.
Le décalage devient plus faible à des taux de démarrage plus élevés, donc je pense que cela en vaudrait certainement la peine en passant de 60 images par seconde à 100 images par seconde, ce qui améliore l'expérience de manière de plus en plus marginale, tout en imposant une fiscalité extrême sur le système.
la source
Réponses:
Un système dans ce sens a été utilisé dans The Force Unleashed . Je ne connais pas d'autres titres qui l'aient utilisé cependant.
la source
Oui c'est possible, mais ce n'est pas sans complications.
Bien que l'interpolation d'images puisse fonctionner en temps réel sur des vidéos, ce n'est pas nécessairement le cas avec les jeux vidéo. Même s'il s'agit d'un traitement en temps réel sur des vidéos, le logiciel est en mesure de "regarder vers l'avant" jusqu'à l'image suivante. Il s'agit d'un composant assez critique de l'interpolation. C'est là que le problème entre en jeu avec les jeux. La plupart du temps, la prochaine image suivante n'a pas encore été rendue! Le logiciel ne connaît donc pas le point suivant de l'interpolation.
Il y a certainement la possibilité de lancer le jeu une ou deux images derrière pour donner à votre logiciel d'interpolation les images avec lesquelles il doit travailler. Cependant, cela ne fonctionne pas aussi bien pour les médias interactifs. Maintenant, ce qui est affiché à l'écran est retardé de l'entrée reçue. Cela rend les choses plus difficiles à traiter et à fournir une bonne réactivité au jeu. C'est comme créer un retard de performance artificiel. De plus, il est peu probable d'avoir un support natif dans l'un des principaux moteurs de jeu, ce qui signifie écrire le vôtre.
la source
Oui, ce n'est pas seulement possible, mais disponible maintenant: branchez votre PC / console de jeu à un téléviseur qui utilise l'interpolation de mouvement . Les opinions varient, ce qui est moins adapté aux jeux de twitch comme FPS en raison du retard d'interpolation, mais pour les taux de rafraîchissement de 60 à 120 Hz, cela fonctionne très bien.
Quant à savoir si cela peut être fait dans le jeu lui-même, il n'y a pas encore assez d'impulsion, dans la mesure où la plupart des moniteurs ne peuvent pas produire ces fréquences d'images élevées. Les moniteurs 120 + Hz pour ordinateurs sont moins courants, mais à en juger par la façon dont les téléviseurs fonctionnent, cela peut arriver bientôt. Avoir un moniteur à taux de rafraîchissement élevé présente des avantages même si le jeu ne peut pas atteindre ces fréquences d'images: en plus de l'interpolation de mouvement basée sur la télévision susmentionnée, il peut offrir des images plus fluides si le jeu est autorisé à produire des images lorsqu'elles sont prêtes, au lieu d'être synchronisées jusqu'à ala v-sync. Une fois que les moniteurs 120 + Hz sont monnaie courante, je m'attends à ce que les développeurs de jeux rattrapent leur retard et commencent à utiliser plus d'astuces, y compris l'interpolation de mouvement, pour atteindre ces fréquences d'images élevées.
la source
Le décalage entre le moment où l'utilisateur fait quelque chose et le moment où le résultat apparaît à l'écran ne doit jamais dépasser 100 ms, sinon l'utilisateur peut remarquer le retard.
Le moniteur de l'utilisateur peut prendre environ 30 ms pour afficher l'image qu'il reçoit. Des moniteurs beaucoup plus rapides sont disponibles, mais de nombreux utilisateurs moyens n'en ont pas. Si la carte vidéo calcule 30 images par seconde, il faut 33 ms pour calculer une image. Je suppose 30 fps car nous n'avons pas besoin d'interpolation de trame si le jeu tourne déjà à 60 fps. Si nous utilisons une triple mise en mémoire tampon, cela passe à 66 ms. C'est 90 ms.
Je pense que nous avons besoin d'un triple tampon pour l'interpolation de trame pour avoir du sens. Donc, si nous utilisons l'interpolation de trames en plus pour obtenir 60 ips, nous augmentons le retard d'une trame de 60 Hz, ce qui correspond à 17 ms + temps d'interpolation X, ce qui nous amène à 107 ms + X. Le problème n'est pas l'interpolation comme tel, mais le fait que nous sommes déjà proches du point où la latence est perceptible avant d'introduire l'interpolation.
Ce serait probablement bien pour un jeu qui est principalement un film virtuel, mais dans un FPS, les utilisateurs remarqueraient que quelque chose ne va pas dans le but.
la source