Программная настройка поля зрения в Unity приводит к неправильным значениям

Я играю с камерой в Unity, где я изменяю ее свойства с помощью скрипта. Одним из изменения свойства является Camera.fieldOfView. Это свойство зависит от фокусного расстояния и размера сенсора.

Для фиксированного фокусного расстояния я вычисляю размер сенсора для желаемого поля зрения. Когда я назначаю размер сенсора и фокусное расстояние, поле зрения, вычисляемое Unity, не соответствует ожидаемому.

Мои расчеты аналогичны этим единицы и кажется правильным.

Использует ли Unity для своей камеры другую модель, а не модель Pinholde? Откуда могут быть расхождения?


person vwvw    schedule 07.01.2020    source источник
comment
Вероятно, вы используете c#, а не unityscript.   -  person Ruzihm    schedule 07.01.2020


Ответы (1)


Если бы я внимательно прочитал документацию, я бы знал, что Camera.fieldOfView определяется как :

Это вертикальное поле зрения; Горизонтальное Поле зрения варьируется в зависимости от соотношения сторон окна просмотра.

Мои вычисления были для горизонтального поля зрения, и я не понимал, что присваиваю вертикальное поле зрения камеры. Таким образом, отображаемое поле зрения постоянно отклонялось на коэффициент, равный соотношению сторон сенсора.

В Unity вам понадобится чтобы отрегулировать fieldOfView и aspect камеры, чтобы отрегулировать горизонтальное поле зрения

person vwvw    schedule 07.01.2020