Calculating horizontal FOV

Hi,

is there anyone who can tell me how to calculate horizontal FOV ?

What I want is to place in object attached to the visible bounds of the view. Now, the upper and lower bounds of the view can be calculated simply rotating the view transform by either FOV or -FOV for upper or lower bound.

However, now I have the problem of doing the same for the left and right side. My first thought was to use the canvas aspect ratio as a factor for the FOV value (e.g. 1.3333f for 4:3 canvas). But with this value the object is outside the view. For a 4:3 canvas the magic number is around 1.25 instead. In a square 1:1 canvas it works of course without correction.

any ideas on how to get the correct factor for the horizontal FOV ?

thanks,
Ca$cade

width/height = hfov/vfov, so hfov = vfov*(width/height). So you want an object that remains fixed in front of the view? It sounds like a Foreground node might be the solution.

I need to do this too - I’ve positioned my Foreground nodes fine for 4:3 but if the user changes the width of the window, they stay where they are.

Will.

So you want to keep HUD objects a fixed distance from the left and right edges of the screen? Can you split the HUD into distinct objects and manage their translations? If fov remains constant, oldX/oldWidth = newX/newWidth should hold.

yes, my problems are only when the fov changes. However, this can be common. For example, my mac has a wide-screen but my PC a 4:3. Games such as Warcraft still look great on the wide-screen infact you actually see more of the game thus have a slight advantage! (my brother was not happy when we worked this out, lol).

If I make my game screen wider - the hud elements stay where they are. They are distinct objects and can be moved, I just need to make them do it.

Will.