Is it possible for a camera have a full field of view of 360 degrees?
The point is to have a player character in a FPS/TPS game have an ability to look everywhere at once.
The image would be such of a 360’ panorama image both horizontally and vertically fitted across the entire screen. Distortions do not matter, as it is simply a temporary ability the player may toggle on/off.
This video shows what I’m trying to achieve
Well it is possible actually. But you need to have PRO…
Check this function:
It makes a cubemap and you can say which sides of the cubemap you need. Rendering this to a long rendertexture can make it possible to show the cubemap back on screen. It needs some coding, but yes it is possible.
You could also have two cameras of 180 degrees each, one forward the other rear facing, and render side-by-side.
This is impossible, because the camera model used in standard computer graphics is based on a 2-dimensional rectangular viewport (to fit it to a screen). You can read this article on graphical perspective to learn more:
The short version is that the width of the plane onto which the scene is projected approaches infinity when the field of view approaches 180 degrees, and 0 when FOV ~ 0. That’s why Unity’s cameras have the FOV value limited to 1-179.
Real world cameras with fields of view higher than 180 do not project the scene onto a 2D rectangular surface, they use a cylindar instead, and what you see in that YouTube video is what happens when you project 360 degrees onto a cylindar and then unwrap the cylindar’s surface to a 2D sheet instead.
But, as said, the cameras of computer graphics aren’t mathematically designed that way.
Thanks for the replies, both of you.
I’m definitely going to read that wiki page you suggested, Christian H Pedersen. It wouldn’t hurt to learn how this stuff works and what limitation should one consider. Thanks.
The scripting reference says the Camera.RenderToCubemap that Marnix suggested might be quite expensive to do in real time, but even if it would work at a slower FPS or with a simplified wireframe view, it would still be perfect for the purpose. Its just a quick awareness booster the player could do anytime, not the main game camera, so this is exactly what I’m looking for.
However since I do not have unity pro, I’ll need to implement this feature much later when I can afford to buy pro. I’ll probably find the answer later on how to pull this off when the time comes.