Soweit ich weiß, sollte das vertikale Sichtfeld angepasst werden auf:
fov = 2 * arctan(0.5*screenHeight / distanceEyeScreen);
Das heißt, das Sichtfeld sollte dem Abstand und der Größe des Bildschirms eines Benutzers entsprechen.
In vielen FPS gibt es einen Standardwert von 90 ° für horizontales FoV oder 60 ° für vertikales FoV (16: 9 vorausgesetzt). Ein Beispiel ist CryEngine. Bei einem 16: 9 20 "-Bildschirm (Diagonale des sichtbaren Bereichs, dh ca. 40 cm x 25 cm) muss der Benutzer bei diesem Standardwert einen Abstand von 20 cm zum Bildschirm einhalten, um eine perspektivisch korrekte Ansicht zu erhalten.
Entweder habe ich einen Fehler in meinen Berechnungen gemacht, oder es muss einen Grund geben, warum Sie absichtlich einen unzureichenden FoV-Wert wählen würden.
Was ist der Grund für einen voreingestellten FoV von 90 ° horz / 60 ° vert?
quelle
Antworten:
Ich denke, ein FoV von 90 Grad ist das, was sich natürlich anfühlt, wenn Sie versuchen, "durch menschliche Augen schauen" nachzuahmen. Ihre Berechnungen wären korrekt, wenn Sie den Bildschirm verwenden würden, um ein Fenster in eine virtuelle Welt zu simulieren, nicht in eine Perspektive der ersten Person. Bild, das Sie die Welt durch einen 20 "Rahmen 80cm weg von Ihrem Kopf sehen müssten ...
quelle
Ein Großteil der Wirkung von FOV hängt davon ab, wie schnell Sie sich scheinbar durch die Welt bewegen (es ist immer noch die gleiche Geschwindigkeit; dies ist eine reine Wahrnehmung). Bei einem zu breiten horizontalen FOV scheinen Sie sich sehr schnell zu bewegen, bei einem zu engen FOV scheinen Sie sich sehr langsam zu bewegen. 90 Grad horizontal scheint der "Sweet Spot" zu sein, und der Spieleentwickler kann von dort aus eine gewünschte Bewegungsgeschwindigkeit für einzelne Spiele einstellen.
Es ist auch der Fall, dass 4 mal 90 Grad 360 Grad sind, was ein Kreis ist. Es erscheint sinnvoll, das horizontale FOV so einzustellen, dass es gut auf die vorderen / linken / hinteren / rechten Quadranten abgestimmt ist.
Und schließlich gibt es die alte Kastanie der Vorrangstellung und Trägheit. Ich bin mir nicht sicher, ob Spiele ein vom Spieler einstellbares Sichtfeld vor dem Beben boten, aber das Beben tat es und es war standardmäßig auf 90 Grad horizontal eingestellt. Es ist leicht vorstellbar, dass andere Spiele von dort aus nur um 90 Grad ansteigen.
Es ist anzumerken, dass 90 Grad heutzutage weniger verbreitet sind und Spiele (insbesondere moderne FPS) einen etwas niedrigeren Wert haben - in oder um 80.
Wenn Sie Ihr FOV aspektkorrigieren möchten, können Sie so etwas verwenden (ich behaupte nicht, dass es der einzige oder beste Weg ist, aber er steht im Einklang mit dem FOV-Rechner unter http://www.emsai.net/projects/widescreen / fovcalc / ; dies wird relativ zu einem Basis-Seitenverhältnis von 4: 3 vorausgesetzt (Sie können dies im Aufruf von CalcFovY unten anpassen)
Dann nenne es wie folgt:
Das berechnete fov_x und fov_y können dann in die folgende perspektivische Matrix (OpenGL-Konvention) eingefügt werden:
Auf diese Weise erhalten Sie ein an das Seitenverhältnis angepasstes horizontales FOV, das das vertikale FOV unabhängig von Auflösung und Seitenverhältnis beibehält.
quelle