Use object distance for right FOV calculation
Currently, Blender camera uses the following formula to calculate the field-of-view (FOV) in angular units: FOV = 2 arctan [d/(2*f)] where f is the camera focal length and d is the camera sensor size, both in mm. This formula is exact only is the object is at infinity. In this case, the distance between the (ideal) lens and the sensor is exactly the focal length.
In a large number of situations the formula above is completely acceptable, but when the focal length is not negligible with respect to the object distance, for example in macro photography, it leads to a wrong FOV calculation. Indeed, when the object is near to the camera, one has to physically adjust the focus by moving the lens or the sensor, and then the distance between the lens and the sensor is no more equal to the focal length. This new distance, q, can be calculated with the lens equation.
The general formula (always right) that should be used is the following:
- Calculate q using the lens equation: 1/q = 1/f - 1/p
where p is the distance between the object and the lens.
- Calculate the FOV using q instead of f:
FOV = 2 arctan [d/(2*q)]
The lens-object distance p is the same used for the focal blur.
Technically, Blender camera is now giving the wrong FOV , as the object is never at infinity, i.e. the FOV of the views and renders is always wrong, but the error is more visible when the object is near to the camera.
As a simple solution to this problem, one should explicit the object distance in the Camera panel, near the Focal Length (and use it also for focal blur, when this is activated), and use it as described above to calculate the FOV.
0 Comments