Ogre3D Camera, RenderWindow и Viewport понимание

Просматривая руководства, я увидел, что используется метод Ogre::Camera::getCameraToViewportRay. Я пытался понять, что он делает.

Сначала я представляю вьюпорт, размещенный где-то в 3D-сцене, скажем, на экране телевизионного объекта. Я легко могу представить, как преобразовать 2D-координату в окне просмотра в 3D-координату сцены, а затем сделать луч из точки положения камеры через эту точку на VP.

Но я не могу понять, как это делается, когда VP находится на RenderWindow (на моем мониторе). Я имею в виду, где в сцене находится окно рендеринга, где точка на ВП окна рендеринга в сцене? Как точка на VP окна рендеринга трансформируется в 3D-точку сцены?

Спасибо за ответ!


person Kolyunya    schedule 15.03.2013    source источник


Ответы (1)


Окно просмотра показывает то, что вы видите через камеру, но окно просмотра находится перед камерой.

Существует сообщение stackoverflow с информацией об отношении камеры и окна просмотра и красивой визуальной иллюстрацией: https://stackoverflow.com/a/7125486/2168872

Луч от камеры к области просмотра — это луч мирового пространства, начинающийся от вашей камеры и пересекающий область просмотра в определенной точке, например. куда указывает курсор мыши.

person Mario Tollardo    schedule 16.03.2013
comment
Спасибо за ответ. Я правильно понимаю, что окно просмотра моего RenderWindow имеет некоторые координаты в 3D-сцене? Означает ли это, что он находится в сцене? Находится ли он на некотором фиксированном расстоянии от положения камеры? - person Kolyunya; 16.03.2013
comment
Не совсем на сцене. Это как фото с фотоаппарата. Диапазон, который видит камера. Вы можете представить его в любом месте сцены. Если вы поместите его на 10 метров перед собой, он будет шириной, скажем, 20 метров (в зависимости от настроек камеры некоторые также показывают более широкий диапазон или увеличение). Если вы поместите его на 100 метров перед собой, его ширина составит 200 метров. Вы можете представить его в дальнем конце сцены, когда он так же широк, как дальний конец, который вы видите в нем. Или вы можете представить себе подзорную трубу, и хотя линзы — это камера, круглое отверстие (передняя часть подзорной трубы) — это окно просмотра. - person Mario Tollardo; 16.03.2013
comment
Спасибо за описание! - person Kolyunya; 16.03.2013