Spec-Zone.ru › Qt 6.0

Тип QML View3D

Предоставляет область просмотра для отрисовки 3D сцены. Подробнее...

Заявление об импорте: import QtQuick3D .
  • Список всех членов, включая унаследованные

Свойства

  • camera : QtQuick3D::Camera
  • environment : QtQuick3D::SceneEnvironment
  • importScene : QtQuick3D::Node
  • renderMode : перечисление
  • renderStats : QtQuick3D::RenderStats
  • scene : QtQuick3D::Node

Методы

  • vector3d mapFrom3DScene(vector3d scenePos)
  • vector3d mapTo3DScene(vector3d viewPos)
  • PickResult pick(float x, float y)

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

View3D предоставляет 2D поверхность, на которой может быть отрисована 3D сцена. Эта поверхность является элементом Qt Quick Item и может быть размещена в сцене Qt Quick.

Существует два способа определения 3D сцены, визуализируемой на View3D: если вы определяете иерархию элементов Node-based как дочерние элементы View3D напрямую, то это станет неявной сценой View3D.

Также возможно сослаться на существующую сцену, используя свойство importScene и установив его на корневой Node сцены, которую вы хотите визуализировать. Этот Node не обязательно должен быть предком View3D, и вы можете иметь несколько View3D, которые импортируют одну и ту же сцену.

Это демонстрируется в примере View3D.

Если View3D одновременно имеет дочерние Nodes и свойство importScene установлено, то обе сцены будут отрисованы как будто они были братьями-поддеревьями в одной сцене.

Для управления способом отрисовки сцены можно установить свойство environment. Тип SceneEnvironment имеет ряд визуальных свойств, которые можно настроить, таких как цвет фона, тоновая коррекция, сглаживание и многое другое.

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

По умолчанию 3D сцена сначала будет отрисована в буфер вне экрана, а затем композирована с остальной частью сцены Qt Quick, когда это будет сделано. Это обеспечивает максимальный уровень совместимости, но может иметь последствия для производительности на некоторых графических процессорах. Если это так, свойство renderMode может быть использовано для изменения способа отрисовки View3D в окне.

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

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

camera : QtQuick3D::Camera

Это свойство указывает, какая Camera используется для отрисовки сцены. Если это свойство не установлено, будет использоваться первая активная камера в сцене.

См. также PerspectiveCamera, OrthographicCamera, FrustumCamera и CustomCamera.

environment : QtQuick3D::SceneEnvironment

Это свойство задаёт SceneEnvironment, используемый для отрисовки сцены.

См. также SceneEnvironment.

importScene : QtQuick3D::Node

Это свойство определяет узел-ссылку сцены для отрисовки в области просмотра. Узел не обязан быть дочерним элементом View3D. Этот сохранённый узел становится соседом с дочерними узлами View3D, если таковые имеются.

Примечание: Это свойство может быть установлено только один раз, и последующие изменения не повлияют на него.

См. также Node.

renderMode : перечисление

Это свойство определяет, как View3D комбинируется с другими частями сцены Qt Quick.

По умолчанию сцена будет отрисовываться в буфер вне экрана как промежуточный шаг. Затем этот буфер вне экрана будет отрисовываться в окно (или целевой объект отрисовки), как и любой другой элемент Qt Quick Item.

Для большинства пользователей нет необходимости изменять режим отрисовки, и это свойство можно безопасно игнорировать. Но на некоторых графических процессорах использование буфера вне экрана может быть узким местом производительности. Если это так, может стоить поэкспериментировать с другими режимами.

Константа Описание
View3D.Offscreen Сцена отрисовывается в буфер вне экрана как промежуточный шаг. Затем этот буфер вне экрана композируется с остальной частью сцены Qt Quick.
View3D.Underlay Сцена отрисовывается непосредственно в окно перед отрисовкой остальной части сцены Qt Quick. В этом режиме View3D не может быть размещён поверх других элементов Qt Quick.
View3D.Overlay Сцена отрисовывается непосредственно в окно после отрисовки Qt Quick. В этом режиме View3D всегда будет поверх других элементов Qt Quick.
View3D.Inline Граф сцены View3D встраивается в главный граф сцены, и применяются те же семантики упорядочения, что и к любому другому элементу Qt Quick Item. Поскольку этот режим может привести к неявным проблемам, в зависимости от содержимого сцены, из-за введения 3D-содержимого на основе глубины в 2D граф сцены, его не рекомендуется использовать, если не возникает особая необходимость.

По умолчанию View3D.Offscreen.

Примечание: При изменении режима отрисовки важно отметить, что View3D.Offscreen (по умолчанию) — единственный режим, гарантирующий безупречную точность графики. Другие режимы имеют ограничения, которые могут привести к визуальным артефактам, поэтому важно проверить, что визуальный вывод по-прежнему корректен при изменении этого свойства.

Примечание: При использовании режимов Underlay, Overlay или Inline может быть полезно, а в некоторых случаях и необходимо, отключить запись буфера глубины графа сцены Qt Quick с помощью QQuickGraphicsConfiguration::setDepthBufferFor2D() перед отображением QQuickWindow или QQuickView, содержащих элемент View3D.

[только для чтения] renderStats : QtQuick3D::RenderStats

Это свойство предоставляет статистику об отрисовке кадра, такую как fps, frameTime, renderTime, syncTime и maxFrameTime.

[только для чтения] scene : QtQuick3D::Node

Содержит корневой Node сцены View3D.

См. также importScene.

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

vector3d mapFrom3DScene(vector3d scenePos)

Преобразует scenePos из пространства сцены (3D) в пространство просмотра (2D).

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

Эта функция требует, чтобы camera была назначена просмотру.

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

vector3d mapTo3DScene(vector3d viewPos)

Преобразует viewPos из пространства просмотра (2D) в пространство сцены (3D).

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

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

Эта функция требует, чтобы камера была назначена представлению.

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

PickResult pick(float x, float y)

Этот метод «выстрелит» лучом в сцену из координат представления x и y и вернёт информацию о ближайшем пересечении с объектом в сцене.

Например, это может быть вызвано с координатами мыши, чтобы найти объект под курсором мыши.

Примечание: Для объекта с пользовательской геометрией пересечения будут аппроксимироваться на основе его ограничивающей рамки.

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

Spec-Zone.ru

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