আপনি কতটা দ্রুত বিশ্বের মাধ্যমে চলতে দেখায় এফওভির বেশিরভাগ প্রভাব (এটি এখনও একই গতি; এটি নিখুঁত উপলব্ধিযোগ্য)। খুব প্রশস্ত একটি অনুভূমিক FOV দিয়ে আপনি খুব দ্রুত সরানোতে দেখবেন, খুব সংকীর্ণের সাথে আপনি খুব ধীর গতিতে চলেছেন বলে মনে করছেন। 90 ডিগ্রি অনুভূমিকটি "মিষ্টি স্পট" হিসাবে উপস্থিত হবে এবং গেম ডেভেলপার সেখান থেকে পৃথক গেমগুলির জন্য একটি পছন্দসই চলার গতি টিউন করতে পারে।
এটি এমনও হয় যে 4 বার 90 ডিগ্রি হয় 360 ডিগ্রি, যা একটি বৃত্ত। অনুভূমিক FOV সেট আপ করা যাতে এটি সামনে / বাম / পিছনে / ডান চতুর্ভুজগুলিতে সুন্দরভাবে মানচিত্র করে তা বোধগম্য হয়।
এবং অবশেষে আছে প্রাধান্য এবং জড়তার পুরানো বুকভরা। আমি নিশ্চিত নই যে কোনও গেমস ভূমিকম্পের আগে প্লেয়ার-অ্যাডজাস্টেবল এফওভি সরবরাহ করেছিল কিনা, তবে কোপ্পনটি করেছে এবং এটি 90 ডিগ্রি অনুভূমিক ডিফল্ট হয়েছে; অন্যান্য গেমগুলি কেবল সেখান থেকে 90 ডিগ্রি অর্জনের বিষয়টি কল্পনা করা সহজ।
এটি লক্ষণীয় যে আজকাল 90 ডিগ্রি কম সাধারণ হয়ে উঠছে, গেমস (বিশেষত আধুনিক এফপিএস) কিছুটা কম মান নির্ধারণ করে - 80 বা তার কাছাকাছি।
আপনি যদি নিজের এফওভিটির দিকনির্ধারণ করতে চান তবে আপনি এই জাতীয় কিছু ব্যবহার করতে পারেন (আমি এটির একমাত্র বা সর্বোত্তম উপায় হিসাবে ভান করি না তবে এটি http://www.MSai.net/projects/widescreen এ FOV ক্যালকুলেটরের সাথে সামঞ্জস্যপূর্ণ ) / fovcalc / ; এটি 4: 3 এর বেস আকৃতির অনুপাতের সাথে তুলনামূলকভাবে ধরে নেওয়া হয় (আপনি নীচে ক্যালকাফভায় কলটিতে এটিকে সামঞ্জস্য করতে পারেন))
float CalcFovX (float fov_y, float width, float height)
{
float a;
float y;
if (fov_y < 1) fov_y = 1;
if (fov_y > 179) fov_y = 179;
y = height / tan (fov_y / 360 * M_PI);
a = atan (width / y);
a = a * 360 / M_PI;
return a;
}
float CalcFovY (float fov_x, float width, float height)
{
float a;
float x;
if (fov_x < 1) fov_x = 1;
if (fov_x > 179) fov_x = 179;
x = width / tan (fov_x / 360 * M_PI);
a = atan (height / x);
a = a * 360 / M_PI;
return a;
}
তারপরে এটিকে কল করুন:
// you should use #define of const instead of magic numbers here, which are just here for illustration purposes in this sample
fov_y = CalcFovY (playerAdjustableFOV, 4, 3); // this is your base aspect that adjusted FOV should be relative to
fov_x = CalcFovX (fov_y, width, height); // this is your actual window width and height
গণনা করা fov_x এবং fov_y এর পরে নিম্নলিখিত দৃষ্টিকোণ ম্যাট্রিক্স (ওপেনগিএল কনভেনশন) এ প্লাগ করা যেতে পারে:
1.0f / tan (DEG2RAD (fov_x) * 0.5f),
0,
0,
0,
0,
1.0f / tan (DEG2RAD (fov_y) * 0.5f),
0,
0,
0,
0,
(zFar + zNear) / (zNear - zFar),
-1,
0,
0,
(2.0f * zFar * zNear) / (zNear - zFar),
0
এটি আপনাকে এমন একটি দিক-সমন্বিত অনুভূমিক FOV দেবে যা রেজোলিউশন এবং দিক অনুপাত নির্বিশেষে উল্লম্ব FOV বজায় রাখে।