[vlc-devel] [PATCH 5/5] opengl: limit the fov and zoom to sane values

Adrien Maglo magsoft at videolan.org
Thu Nov 17 18:37:21 CET 2016

Le 17/11/2016 à 18:03, Steve Lhomme a écrit :
>> Why removing the trigonometry calculation? It was giving the exact minimal
>> value for the zoom for any SAR and FOVy value.
> First because I don't think it's right to modify the zoom value set by
> the caller. If he has done his own calculation why do we change it to
> some obscure formula ?

It depends on how zoom is documented in the API.
If we write that the zoom is the vector between the centre of the sphere 
and the position of the camera, then it is indeed not the case.
If we write that the zoom is a value that varies between -1 and 1 and 
moves the camera between a minimum value obtained with the "obscure" 
formula and a maximum value currently set at 0.5 then in my opinion it 
makes sense.

> Second because I don't see how the zoom can be related to the aspect
> ratio. This is just a translation from the center to the border of the
> sphere. Nothing will change if the source aspect ratio changes.

We are calculating here the minimum value of the zoom to not show the 
outside of the sphere. In the limit case, the view frustum pyramid is 
tangent to the sphere. Consequently this values does depend on pyramid 
shape, so the aspect ratio and the FOV. We can discuss the trigonometry 
proof if needed.

> Third because the formula was apparently never going close to the
> border of the sphere, and thus never having a proper "little planet"
> aspect from there.

Thomas and I both tested several times this formula and it worked well. 
I will recheck that the results are correct with current HEAD.

The general idea behind this API and the min value calculation was to 
not allow the caller to show the outside of the sphere and avoid black 
borders. This is a political choice. We could also say that we do not 
care about black borders and let the caller directly set the position of 
the camera.

Best regards,


More information about the vlc-devel mailing list