Spec-Zone.ru › Qt 6.1

Тип QML камеры

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

Оператор импорта: import QtQuick3D .
Наследуется от:

Node

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

CustomCamera, OrthographicCamera и PerspectiveCamera

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

Свойства

  • frustumCullingEnabled : bool

Методы

  • vector3d lookAt(QtQuick3D::Node node)
  • vector3d lookAt(vector3d scenePos)
  • vector3d mapFromViewport(vector3d viewportPos)
  • vector3d mapToViewport(vector3d scenePos)

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

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

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

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

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

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

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

См. также Пример Qt Quick 3D - View3D.

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

frustumCullingEnabled : bool

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

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

[since 5.15] vector3d lookAt(QtQuick3D::Node 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.1/qml-qtquick3d-camera.html

Spec-Zone.ru

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