ThreeJS: вычислить FOV для сетки в ортографической камере

Итак, я пытался решить эту проблему в течение нескольких часов, но не могу заставить ее работать.

Я создал сетку и смотрю сверху в Ортографическом виде.

размеры сетки: 400 * 500 высота (нужна ли?) 300

он помещается в точку 0, 0, 0

камера расположена на 0, 5000, 0 и направлена ​​прямо вниз на 0, 0, 0

Теперь единственное, что мне нужно знать, это как рассчитать fov.

_CoreManager.GetCamera().setFov(X);

так что камера может видеть всю сетку сверху + 100 единиц с каждой стороны, чтобы пользователь мог видеть, где сетка имеет свои границы.

Пробовал, либо я сделал что-то не так, либо это не работает для орто, https://github.com/mrdoob/three.js/issues/1239

Спасибо :)

ОБНОВИТЬ:

Я попробовал новый способ, который, как мне казалось, имел смысл, но нет ...

http://forums.cgsociety.org/archive/index.php/t-725538.html

var dist = _Camera.position.y - _mesh.position.y;
var width = _mesh.geometry.parameters.width;

var halfHorizontalFOV = Math.atan((width / 2) / dist);
halfHorizontalFOV = Algorithms.ConvertRadiansToDegrees(halfHorizontalFOV);

дает мне степени, которые далеки от того, что должно быть.


person Yenza    schedule 25.11.2014    source источник
comment
OrthographicCamera не имеет параметра FOV.   -  person WestLangley    schedule 25.11.2014
comment
Хорошо? Я использую комбинированный класс камеры, и всякий раз, когда я меняю угол обзора, изображение изменяется (увеличивается и уменьшается).   -  person Yenza    schedule 26.11.2014


Ответы (1)