Тип Scene3D QML
Тип Scene3D используется для интеграции сцены Qt3D в сцену QtQuick 2. Подробнее...
| Оператор импорта: | import QtQuick.Scene3D 2.1 |
| Наследует: |
Свойства
- aspects : список<строка>
- cameraAspectRatioMode : перечисление
- compositingMode : перечисление
- entity : Сущность
- hoverEnabled : bool
- multisample : bool
Методы
- void setItemAreaAndDevicePixelRatio(размер area, вещественное число devicePixelRatio)
Подробное описание
Тип Scene3D отображает сцену Qt3D, предоставляемую сущностью Entity, в объекте буфера кадра с многократной выборкой. Этот объект затем перерисовывается в объект буфера кадра без многократной выборки, который затем отображается с предумноженным альфа-каналом. Если многократная выборка не требуется, ее можно избежать, установив свойство multisample в false. В этом случае Scene3D будет отображаться непосредственно в объект буфера кадра без многократной выборки.
Если сцена, подлежащая отображению, включает непрозрачные материалы, вам может потребоваться изменить эти материалы с помощью пользовательских аргументов смешивания, чтобы они отображались правильно. Например, если вы работаете с PhongAlphaMaterial и сценой с непрозрачным цветом очистки, вам, вероятно, потребуется добавить:
sourceAlphaArg: BlendEquationArguments.Zero destinationAlphaArg: BlendEquationArguments.One
к этому материалу.
Не рекомендуется создавать более одного экземпляра Scene3D на приложение. Причина в том, что экземпляр Scene3D создает весь движок Qt 3D (менеджеры памяти, пул потоков, рендеринг ...) под сценой.
Примечание: Установка видимости элемента Scene3D в false остановит цикл симуляции Qt 3D. Это означает, что привязка свойства visible к выражению, зависящему от обновлений свойств, управляемых циклом симуляции Qt 3D (FrameAction), никогда не будет повторно вычисляться.
Документация по свойствам
Список аспектов, которые должны быть зарегистрированы для 3D сцены.
Например, если сцена использует FrameAction, аспект "logic" должен быть включён в список.
Аспект "render" жёстко задан и не требует явного указания.
cameraAspectRatioMode : перечисление
| Константа | Описание |
|---|---|
Scene3D.AutomaticAspectRatio |
Автоматическое соотношение сторон. |
Scene3D.UserAspectRatio |
Определённое пользователем соотношение сторон. |
[с 5.14] compositingMode : перечисление
| Константа | Описание |
|---|---|
FBO |
Сцена отображается в объекте буфера кадра, что может быть дорогостоящим на некоторых платформах и аппаратных средствах, но позволяет большую гибкость. Автоматическое соотношение сторон. Этот режим смешивания следует выбирать, если элемент Scene3D не должен занимать весь экран и если вы планируете его масштабировать или анимировать. В этом режиме положение элемента Scene3D в файле QML определяет его порядок расположения по отношению к другим элементам Qt Quick. |
Underlay |
Подходит для полноэкранных 3D-сцен, где использование FBO может быть слишком ресурсоёмким. Scene3D ведёт себя как подложка QtQuick. Обратите внимание, что при использовании этого режима размер Scene3D и его преобразования игнорируются, и отрисовка займёт весь экран. Положение Scene3D в файле QML также не повлияет. Содержимое Qt 3D будет отрисовано до любого содержимого Qt Quick. Необходимо быть осторожным, чтобы не перерисовывать и не скрывать содержимое Qt 3D, перекрывая его содержимым Qt Quick. Кроме того, при использовании этого режима очистка окна перед отрисовкой (window clearBeforeRendering) автоматически устанавливается в значение false. |
Значение по умолчанию равно FBO.
Это свойство было введено в Qt 5.14.
[по умолчанию] entity : Сущность
Корневая сущность 3D сцены, подлежащей отображению.
hoverEnabled : bool
true если события наведения принимаются.
multisample : bool
true если требуется буфер рендеринга с многократной выборкой.
По умолчанию многократная выборка включена. Если реализация OpenGL не поддерживает буферы рендеринга с многократной выборкой или сглаживание, запрос на использование многократной выборки игнорируется.
Примечание: Избегайте частой смены значения, так как это влечёт за собой дорогостоящую и потенциально медленную инициализацию буферов кадра и других ресурсов OpenGL.
Документация по методам
void setItemAreaAndDevicePixelRatio(размер area, вещественное число devicePixelRatio)
Устанавливает область элемента в area и коэффициент пикселей в devicePixelRatio.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qml-qtquick-scene3d-scene3d.html