Sejauh yang saya mengerti, bidang pandang vertikal harus disesuaikan dengan:
fov = 2 * arctan(0.5*screenHeight / distanceEyeScreen);
Artinya, Bidang Tampilan harus sesuai dengan jarak pengguna ke dan ukuran layar.
Dalam banyak FPS, ada nilai default 90 ° untuk FoV horizontal, atau 60 ° untuk FoV vertikal (dengan asumsi 16: 9). Salah satu contohnya adalah CryEngine. Tetapi untuk layar 16: 9 20 "(diagonal area yang terlihat, yaitu sekitar 40 cm x 25 cm), nilai default ini akan mengharuskan pengguna untuk memiliki mata mereka 20 cm dari layar untuk mendapatkan tampilan yang benar secara perspektif.
Jadi entah saya membuat kesalahan dalam perhitungan saya, atau pasti ada alasan mengapa Anda memilih nilai FoV yang tidak memadai dengan sengaja.
Apa alasan FoV default 90 ° horz / 60 ° vert?
3d
camera
perspective
dyp
sumber
sumber
Jawaban:
Saya pikir memiliki FoV 90deg adalah apa yang terasa alami ketika Anda mencoba meniru 'melihat melalui mata manusia'. Perhitungan Anda akan benar jika Anda akan menggunakan layar untuk mensimulasikan jendela ke dunia virtual, bukan perspektif orang pertama. Gambar Anda harus melihat dunia melalui 20 "bingkai 80cm dari kepala Anda ...
sumber
Banyak efek dari FOV adalah pada seberapa cepat Anda tampaknya bergerak di dunia (masih kecepatan yang sama; ini murni persepsi). Dengan FOV horizontal terlalu lebar Anda akan terlihat bergerak sangat cepat, dengan terlalu sempit Anda akan terlihat bergerak sangat lambat. 90 derajat horisontal tampaknya menjadi "sweet spot", dan pengembang game dapat menyesuaikan kecepatan gerakan yang diinginkan untuk masing-masing game dari sana.
Ini juga terjadi bahwa 4 kali 90 derajat adalah 360 derajat, yang merupakan lingkaran. Menyiapkan FOV horizontal sehingga memetakan dengan baik ke kuadran depan / kiri / belakang / kanan tampaknya masuk akal.
Dan akhirnya ada kastanye tua yang diutamakan dan inersia. Saya tidak yakin apakah ada game yang menawarkan FOV yang dapat disesuaikan pemain sebelum Quake, tetapi Quake melakukannya dan defaultnya adalah 90 derajat horizontal; mudah membayangkan game lain hanya mengambil 90 derajat dari sana.
Perlu dicatat bahwa saat ini 90 derajat menjadi kurang umum, dengan permainan (terutama FPS modern) ditetapkan pada nilai yang sedikit lebih rendah - di atau sekitar 80.
Jika Anda ingin memperbaiki aspek FOV Anda, Anda dapat menggunakan sesuatu seperti ini (saya tidak berpura-pura itu satu-satunya atau cara terbaik, tetapi konsisten dengan kalkulator FOV di http://www.emsai.net/projects/widescreen / fovcalc / ; ini mengasumsikan relatif terhadap rasio aspek dasar 4: 3 (Anda dapat menyesuaikannya dalam panggilan ke CalcFovY di bawah))
Kemudian menyebutnya seperti:
Fov_x dan fov_y yang dihitung kemudian dapat dicolokkan ke matriks perspektif berikut (konvensi OpenGL):
Ini akan memberi Anda FOV horizontal yang disesuaikan dengan aspek yang mempertahankan FOV vertikal terlepas dari resolusi dan rasio aspek.
sumber