I discovered a cool trick while reading the Unity Manual :

Using an Oblique Frustum : Unity - Manual: Using an oblique frustum

That page has the line *“Mercifully, it is not necessary to understand how the projection matrix works to make use of this.”* , and this is a really nice effect for my racing game. However I’ve just discovered I cannot modify the FOV with the camera projection matrix being manipulated like this.

After some digging I found this thread which talks about the negative impact of manually setting the projection matrix : Realtime convex mirrors anyone? - Unity Engine - Unity Discussions , particularly this line by tonemcbride : *Here’s how to extract the FOV from the new projection matrix:* http://forum.unity3d.com/threads/ho...nformation-from-the-projection-matrix.262352/

Therein is the formula by hpjohn : **Mathf.Atan( 1f / camera.projectionMatrix[1, 1] ) * 2 * Mathf.Rad2Deg**.

Again, I defer to the line *“Mercifully, … not necessary to understand how the projection matrix works…”*. I know nothing about manipulating the projection matrix, and how I can use this formula to modify the FOV

Can anyone help with the above information to write a function that will modify the FOV using the oblique frustum effect? Or explain how this matrix thing works with the 2D array, or any reference links to learn from? I know this is a lot to ask (basically a ‘write-my-code’ request), but I really don’t know anything about what I’m playing with here. Thanks.