Spec-Zone.ru › Qt 6.0

Тип QML камеры

Определяет абстрактный базовый класс для камер. Подробнее...

Заявление об импорте: import QtQuick3D .
Наследуется от:

Узел

Наследуется:

CustomCamera, ОртогональнаяКамера и ПерспективнаяКамера

  • Список всех членов, включая унаследованные

Свойства

  • frustumCullingEnabled : bool

Методы

  • vector3d lookAt(QtQuick3D::Узел node)
  • vector3d lookAt(vector3d scenePos)
  • vector3d mapFromViewport(vector3d viewportPos)
  • vector3d mapToViewport(vector3d scenePos)

Подробное описание

Камера определяет, как содержимое 3D сцены проецируется на 2D поверхность, такую как View3D. Для визуализации содержимого сцены требуется как минимум одна камера.

Можно позиционировать и вращать камеру, как любой другой пространственный узел в сцене. Положение и ориентация узла определяют положение камеры в сцене и направление ее взгляда. По умолчанию ориентация камеры направлена вдоль отрицательной оси Z, а вектор вверх — вдоль положительной оси Y.

Наряду с положением и ориентацией, усеченная пирамида определяет, какие части сцены видны камере, и как они проецируются на 2D поверхность. Различные типы камер предоставляют различные варианты определения формы усеченной пирамиды камеры.

  • ПерспективнаяКамера предоставляет камеру с пирамидальной усеченной пирамидой, где объекты проецируются так, что объекты, находящиеся дальше от камеры, кажутся меньше. Это наиболее часто используемый тип камеры, соответствующий принципу работы большинства реальных камер.
  • ОртогональнаяКамера предоставляет камеру, где линии усеченной пирамиды параллельны, что делает воспринимаемый масштаб объекта независимым от его расстояния до камеры. Типичные случаи использования такого типа камеры — CAD (Computer-Assisted Design) приложения и картография.
  • КамераУсеченнойПирамиды — это тип перспективной камеры, где усеченную пирамиду можно свободно настроить с помощью координат ее пересечения с ближней плоскостью. Это может быть полезно, если требуется асимметричная усеченная пирамида камеры.
  • ПользовательскаяКамера — это тип камеры, где матрицу проекции можно свободно настроить, что может быть полезно для продвинутых пользователей, которые хотят вычислить свою матрицу проекции.

Для иллюстрации различий эти скриншоты показывают одну и ту же сцену, проецируемую с помощью ПерспективнойКамеры и ОртогональнойКамеры. Обратите внимание, как красный прямоугольник меньше зеленого прямоугольника на изображении, рендер которого выполнен с использованием перспективной проекции.

Камера с перспективной проекцией Ортогональная камера

См. также Qt Quick 3D — пример View3D.

Документация по свойствам

frustumCullingEnabled : bool

Когда это свойство true, объекты, находящиеся за пределами усеченной пирамиды камеры, будут отсечены, то есть они не будут переданы рендереру. По умолчанию это свойство установлено в false. Для сцен, где все или большинство объектов находятся внутри усеченной пирамиды камеры, отсечение усеченной пирамиды — это ненужная нагрузка на производительность. Но для сложных сцен, где большая часть объектов расположена вне поля зрения камеры, включение отсечения усеченной пирамиды может улучшить производительность.

Документация по методам

[since 5.15] vector3d lookAt(QtQuick3D::Узел node)

Устанавливает значение поворота камеры так, чтобы она была направлена на node.

Этот метод был добавлен в Qt 5.15.

[since 5.15] vector3d lookAt(vector3d scenePos)

Устанавливает значение поворота камеры так, чтобы она была направлена на scenePos.

Этот метод был добавлен в Qt 5.15.

vector3d mapFromViewport(vector3d viewportPos)

Преобразует viewportPos из пространства представления (2D) в глобальное пространство сцены (3D).

Значения x и y в viewportPos должны быть нормализованы, где верхний левый угол представления — [0, 0], а нижний правый — [1, 1]. Значение z интерпретируется как расстояние от ближней клип-плоскости усеченной пирамиды (clipNear).

Если viewportPos не может быть успешно отображено в сцене, возвращается позиция [0, 0, 0].

См. также mapToViewport и View3D.mapTo3DScene().

vector3d mapToViewport(vector3d scenePos)

Преобразует scenePos из глобального пространства сцены (3D) в пространство представления (2D).

Возвращаемая позиция нормализована, где верхний левый угол представления — [0, 0], а нижний правый — [1, 1]. Возвращаемое значение z будет содержать расстояние от ближней клип-плоскости усеченной пирамиды (clipNear) до scenePos в координатах сцены. Если расстояние отрицательное, точка находится позади камеры.

Если scenePos не может быть успешно отображен в представлении, возвращается позиция [0, 0, 0].

См. также mapFromViewport() и View3D.mapFrom3DScene().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qml-qtquick3d-camera.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API