Si je comprends bien, le champ de vision vertical doit être ajusté pour:
fov = 2 * arctan(0.5*screenHeight / distanceEyeScreen);
Autrement dit, le champ de vision doit correspondre à la distance et à la taille de l'écran d'un utilisateur.
Dans de nombreux FPS, il existe une valeur par défaut de 90 ° pour le FoV horizontal ou de 60 ° pour le FoV vertical (en supposant 16: 9). Un exemple est CryEngine. Mais pour un écran 16: 9 20 "(diagonale de la zone visible, soit environ 40 cm x 25 cm), cette valeur par défaut obligerait les utilisateurs à avoir les yeux à 20 cm de l'écran afin d'avoir une vue en perspective correcte.
Donc, soit j'ai fait une erreur dans mes calculs, soit il doit y avoir une raison pour laquelle vous choisiriez volontairement une valeur FoV inadéquate.
Quelle est la raison d'un FoV par défaut de 90 ° horz / 60 ° vert?
la source
Réponses:
Je pense qu'avoir un FoV de 90 degrés est ce qui semble naturel lorsque vous essayez d'imiter «regarder à travers les yeux humains». Vos calculs seraient corrects si vous utilisiez l'écran pour simuler une fenêtre dans un monde virtuel, pas une perspective à la première personne. Image, il faudrait voir le monde à travers un cadre de 20 "à 80 cm de votre tête ...
la source
Une grande partie de l'effet du FOV est sur la vitesse à laquelle vous semblez vous déplacer dans le monde (c'est toujours la même vitesse; c'est purement perceptionnel). Avec un champ de vision horizontal trop large, vous semblerez vous déplacer très rapidement, avec trop étroit, vous semblerez se déplacer très lentement. Un angle de 90 degrés semble être le "point idéal", et le développeur du jeu peut régler la vitesse de déplacement souhaitée pour les jeux individuels à partir de là.
C'est aussi le cas que 4 fois 90 degrés soit 360 degrés, ce qui est un cercle. La configuration du champ de vision horizontal de manière à ce qu'il corresponde parfaitement aux quadrants avant / gauche / arrière / droit semble logique.
Et enfin, il y a le vieux châtaignier de préséance et d'inertie. Je ne sais pas si certains jeux offraient un champ de vision réglable par le joueur avant Quake, mais Quake l'a fait et il était par défaut à 90 degrés horizontal; il est facile d'imaginer que d'autres jeux prennent juste 90 degrés à partir de là.
Il convient de noter que de nos jours, les degrés 90 deviennent de moins en moins courants, les jeux (en particulier les FPS modernes) ayant une valeur légèrement inférieure - aux alentours de 80.
Si vous voulez corriger l'aspect de votre FOV, vous pouvez utiliser quelque chose comme ça (je ne prétends pas que c'est la seule ou la meilleure façon, mais c'est cohérent avec la calculatrice FOV à http://www.emsai.net/projects/widescreen / fovcalc / ; cela suppose un rapport d'aspect de base de 4: 3 (vous pouvez l'ajuster dans l'appel à CalcFovY ci-dessous))
Ensuite, appelez-le comme:
Les fov_x et fov_y calculés peuvent ensuite être branchés dans la matrice de perspective suivante (convention OpenGL):
Cela vous donnera un champ de vision horizontal ajusté qui conserve le champ de vision vertical quels que soient la résolution et le rapport d'aspect.
la source