Какая связь между «полем зрения» и «длиной линзы» - PullRequest
6 голосов
/ 13 декабря 2010

Хотите знать, связаны ли они друг с другом

Ответы [ 3 ]

8 голосов
/ 05 апреля 2012

Я понимаю, что прошло много времени с тех пор, как был задан этот вопрос (если не сказать больше), но у меня была хорошая диаграмма, и мне было стыдно не публиковать ее, поскольку я думаю, что она полезна здесь.Как видно из диаграммы, соотношение между полем зрения (theta) и расстоянием до плоскости изображения (d) составляет:

tan(theta/2) = ymax/d

FOV and distance to image plane

3 голосов
/ 13 декабря 2010

«длина объектива» не имеет смысла.«Объектив» в OpenGL и DirectX представляет собой камеру с точечным отверстием и, следовательно, не имеет размера (т.е. он бесконечно мал).

Если вы говорите о фокусном расстоянии, то опять же это не имеет отношения, поскольку фокусное расстояние подразумеваетобъектив, а также глубина резкости.

Однако вы можете рассчитать положение камеры относительно экрана в любых единицах измерения, которые вам нравятся (это преподавалось мне как «Перспективная контрольная точка»).

Допустим, ширина экрана составляет 1 метр, а угол обзора - 90 градусов (PI / 2 радиана).Используя базовую тригонометрию, вы знаете, что

tan( fov / 2 ) = opposite/adjacent.  

Вы знаете обратное (как половина метра, то есть половина экрана)

Таким образом, чтобы вычислить смежные (то есть расстояние от экрана доположение камеры) вы просто делаете:

adjacent = opposite / tan( fov / 2 )

С простыми числами, приведенными выше, получается:

adjacent = 0.5 / tan( PI / 4 )
=> 0.5 / 1.0 
=> 0.5

, т. е. в этом случае камера будет на расстоянии полуметра от экрана (Совершенно логично, когда вы думаете о поле зрения в 90 градусов.)

Модули, конечно, несколько произвольны ...

Если вы посмотрите на это.Чем ближе положение камеры к экрану, тем шире поле зрения и, в равной степени, чем дальше положение камеры, тем уже поле зрения.Если вы вытянете их, вы поймете, почему.

Исходя из этого, вы можете рассчитать идеальный угол обзора для человека, сидящего на расстоянии "n" метров от экрана ...

2 голосов
/ 13 декабря 2010

Представьте себе горизонтальную линию единичной длины на расстоянии d от камеры, для которой поле зрения (то есть угол раскрытия) установлено таким образом, чтобы единичная длинная линия на расстоянии d точно покрывала ширину изображения (или высоту,в зависимости от того, что вы измеряете поле), то d длина объектива.И, конечно, вы также можете принять обратный расчет.

tan (0,5 фов) = 0,5 d

...