Манипулятор камеры¶
- объект Манипулятор камеры; CameraManipulatorBaseReactor¶
Данный объект используется для управления виртуальной камерой. С его помощью можно также задать начальное положение камеры.
Обзор возможностей¶
Реализация |
Описание |
|---|---|
trackball |
Интуитивно понятный интерфейс для манипуляции камеры с помощью виртуальной сферы, названный в честь входного устройства, носящего такое же имя. |
vr |
Вид от первого лица, соответствует позиции головы аватара в виртуальном пространстве. Используется только для VR проектов. |
multitouch |
Управление камерой осуществляется с помощью технологии multitouch на мобильных устройствах. |
Параметр |
Описание |
|---|---|
Координаты камеры в мировой системе координат. |
|
Направление камеры в мировой системе координат. |
|
Наклон камеры относительно линии горизонта. |
|
Автоматическое вычисление начального положения таким образом, чтобы виртуальная камера охватывала всю сцену целиком. |
Событие |
Описание |
|---|---|
Приходит при переходе камеры в начальное положение. |
Действие |
Описание |
|---|---|
Установка нового начального положения. |
|
Перевод камеры в начальное положение. |
- параметр Реализация; Kind¶
Тип манипулятора. Определяет, каким образом будет перемещаться виртуальная камера.
Начальное положение¶
Начальное положение - позиция, в которую камера может перемещаться при установке манипулятора. Также камера перемещается в начальное положение при нажатии клавиши «пробел» во вкладке «Сцена» (по умолчанию). Начальное положение определяется 3 векторами: непосредственно позиция камеры (вектор Eye), наклон камеры относительно линии горизонта (вектор Up) и точка, куда направлена камера (вектор Center).
- параметр Начальное положение ; homeEye¶
Координаты камеры в мировой системе координат.
- параметр Начальное положение ; homeCenter¶
Направление камеры в мировой системе координат.
- параметр Начальное положение ; homeUp¶
Наклон камеры относительно линии горизонта.
- параметр Автоматическое вычисление; autoComputeHomePosition¶
Автоматическое вычисление начального положения таким образом, чтобы виртуальная камера охватывала всю сцену целиком.
- событие В начальном положении; onHomePosition¶
Происходит при переходе камеры в начальное положение.
- действие Изменить начальное положение; setHomePosition(aEye, aCenter, aUp, aAutoComputeHomePosition)¶
Установка нового начального положения. Если параметр «Автоматическое вычисление (aAutoComputeHomePosition)» установлен в значение
true, камера автоматически вычислит начальное положение.- Параметры:
Начальное положение (Eye) / aEye – Положение камеры в мировой системе координат.
Начальное положение (Center) / aCenter – Положение точки, на которую смотрит камера.
Начальное положение (Up) / aUp – Наклон камеры относительно линии горизонта.
Автоматическое вычисление / aAutoComputeHomePosition – Автоматическое вычисление начального положения.
Важно
Для перевода камеры в указанное положение должно быть обязательно вызвано действие В начальное положение (home)
- действие В начальное положение; home()¶
Перевод камеры в начальное положение. При вызове данного действия камера перемещается в позицию, заданную вектором Eye, вектор направления становится равным вектору Center, а вектор наклона - вектору Up, указанных в свойствах объекта.
Advanced¶
Вспомогательные методы |
Описание |
|---|---|
|
Устанавливает компоненту Начальное положение (homeEye) начального положения Аргументы: aEye, тип |
|
Устанавливает компоненту Начальное положение (homeCenter) начального положения Аргументы: aCenter, тип |
|
Устанавливает компоненту Начальное положение (homeUp) начального положения Аргументы: aUp, тип |
|
Устанавливает параметр Автоматическое вычисление (autoComputeHomePosition) Аргументы: aAutoComputeHomePosition, тип bool |
Пример кода:
local cameraManipulator = reactorController:getReactorByName("CameraManipulator")
cameraManipulator:setHomeEye(osg.Vec3(0,0,5))
cameraManipulator:home()