Aujourd'hui, nous examinons le flou de mouvement dans War Thunder — ce que c'est, comment il est implémenté dans le jeu, et les défis auxquels nous avons été confrontés. War Thunder se met au cinéma!
Qu'est-ce que le flou de mouvement?
Dans un jeu vidéo, les images sont créées de toutes pièces, chaque image affiche un instant précis.
Les vraies caméras ou même nos yeux ne fonctionnent pas de cette manière. Prendre une photo prend du temps, et pendant ce temps, le monde ne reste pas toujours immobile. Si un objet bouge pendant que nous prenons la photo, il apparaîtra dans tous ces endroits en même temps sur l'image finale. C'est ce que nous appelons le flou de mouvement.
Explication des bases
Pour simuler l'effet de flou de mouvement, nous devons savoir comment chaque pixel s'est déplacé depuis la dernière image. Cela nécessite que toutes les animations et effets de mouvement rapportent leurs positions actuelles et anciennes. Cela peut être l'une des parties les plus difficiles de la mise en œuvre de cette fonctionnalité. Mais heureusement, nous avions déjà cela en place pour les techniques d'anti-aliasing. Les quelques animations qui ne prenaient pas en charge cela sont devenues très faciles à repérer car le flou de mouvement les transformait en une grande tache floue. Nous les avons donc rapidement corrigées!
Comme point de départ, nous avons utilisé une technique éprouvée pour implémenter l'effet, vous pouvez en lire plus à ce sujet ici. En gros, nous vérifions où un pixel était dans la dernière image et où il se trouve maintenant, puis nous floutons ce pixel le long de la ligne entre les deux.
Pour rendre les calculs plus efficaces et lisser certains bords, la ligne est également floutée dans la direction avant, prolongeant la ligne au-delà de la position actuelle du pixel. Pour accélérer les choses, nous prenons certaines décisions ensemble pour de plus grands blocs de pixels en fonction de leur direction générale.
La distance de chaque pixel par rapport à la caméra doit également être prise en compte pour nous permettre de flouter séparément l'arrière-plan et le premier plan. La ligne floue d'un pixel d'arrière-plan peut parfois passer derrière un objet immobile et net au premier plan. D'autres fois, nous devons garder l'arrière-plan net tandis qu'un pixel au premier plan est flouté dessus. Lorsque deux objets se floutent ensemble dans un seul pixel, leur vitesse individuelle est également importante car parfois aucun des deux ne doit rester net.
Défis techniques dans War Thunder
Bien sûr, nous avons dû apporter quelques modifications pour l'adapter à nos besoins. Pour décider comment flouter un pixel, nous devons connaître sa vitesse. Mais que faire s'il n'y a pas de réponse unique parce qu'il y a plus d'une chose visible au même endroit? Sans soin particulier, la transparence est invisible pour l'algorithme.
Dans War Thunder, nous avons des cockpits en verre et des ampoules colorées attachées aux avions survolant des arbres tout en franchissant le mur du son. Nous devions donc traiter les surfaces en verre d'une manière particulière. Ici, nous avons des vitesses complètement différentes sur le même pixel. Le verre est stable mais la forêt derrière lui est très rapide.
Nous avons fini par utiliser une astuce similaire à celle de la séparation arrière-plan/premier plan. Si nous voyons quelque chose à travers du verre, nous traitons cela comme une catégorie, tandis que les objets directement visibles sont une autre. Nous ne floutons pas une catégorie sur l'autre mais nous permettons le mélange au sein des catégories.
De cette manière, nous obtenons des images où l'arrière-plan est flou à travers le verre mais le verre lui-même peut maintenir sa silhouette nette.
Note: au moment de la rédaction de cet article, le traitement spécial de la transparence n'est activé que si le flou de mouvement est au maximum.
Limitations
Étant donné que nous n'avons qu'une seule vitesse connue pour chaque pixel, les objets transparents en mouvement rapide ne seront pas floutés, seulement les objets d'arrière-plan que vous pouvez voir à travers eux. Cela signifie également que les reflets sur de telles surfaces ne peuvent être floutés qu'en fonction de l'arrière-plan.
Pour créer un effet parfait, nous aurions besoin d'informations parfaites. Même si nous connaissons la position à l'écran d'un pixel à la fois dans le passé et dans le cadre actuel, nous ne savons pas quel chemin il a pris entre les deux. Nous le floutons simplement en ligne, comme s'il se déplaçait en ligne droite, ce qui est presque toujours suffisant. Une exception importante concerne les roues des véhicules. Ici, un point sur la roue peut passer du côté opposé en un seul temps d'image. Supposer un mouvement droit ici est loin de la réalité.
Pour le moment, ce problème n'est pas résolu, les roues auront besoin d'une méthode personnalisée pour un flou de mouvement correct qui fonctionne sur des principes différents.
Est-ce réaliste?
Le flou de mouvement est visible non seulement pour les objets en mouvement rapide, mais aussi si la caméra elle-même bouge. Au cinéma, c'est un effet très courant, mais dans notre vision naturelle, l'œil se verrouille généralement sur des objets, maintenant le monde plus stable pour nous. Le flou de mouvement dans les jeux vidéo est cinématographique — il ressemble à un vrai film réalisé avec de vraies caméras. Mais ce n'est pas comme voir le monde avec vos propres yeux.
Pour mieux simuler la vision humaine, nous avons ajouté une option pour désactiver le flou de mouvement causé par le mouvement de la caméra. Cela floutera toujours les objets en mouvement rapide comme les avions qui passent ou les débris qui explosent, mais gardera l'image nette lorsque vous regardez simplement autour de vous.
Flou de la caméra désactivé, seul le tourelle bouge
Tournant la tourelle avec un flou de mouvement complet
Le flou de mouvement est-il bon pour nos jeux?
Nous entendons souvent cette question et avons également eu des discussions internes à ce sujet. Certains disent que cela donne la sensation de mouvement et rend l'expérience plus immersive. Tandis que d'autres disent que cela rend plus difficile de viser des cibles en mouvement, cela enlève la clarté qui est importante pour le jeu compétitif. Eh bien, ils ont tous les deux raison. C'est une question de goût et de ce que vous voulez du jeu. Si vous êtes surtout intéressé à gagner et à monter dans le classement, cela peut ne pas être pour vous — n'hésitez pas à le désactiver. Nous sommes tout à fait d'accord avec cela. Mais si vous avez déjà gagné et que vous réalisez un montage vidéo de vos replays, ou que vous voulez simplement ressentir la vitesse alors que vous volez, vous pouvez le maximiser et l'utiliser pour un effet de qualité cinématographique.