Тип Scene3D QML
Тип Scene3D используется для интеграции сцены Qt3D в сцену QtQuick 2. Подробнее...
| Заявление об импорте: | import QtQuick.Scene3D |
| Наследует: |
Свойства
- aspects : список<строка>
- cameraAspectRatioMode : перечисление
- compositingMode : перечисление
- entity : Entity
- hoverEnabled : bool
- multisample : bool
Методы
- void setItemAreaAndDevicePixelRatio(размер area, вещественное devicePixelRatio)
Подробное описание
Тип Scene3D отрисовывает сцену Qt3D, предоставленную объектом Entity, в объект Framebuffer с многократной выборкой. Этот объект впоследствии считывается в объект Framebuffer без многократной выборки, который затем отрисовывается с предварительно умноженным альфа-каналом. Если многократная выборка не требуется, её можно избежать, установив свойство multisample в false. В этом случае Scene3D будет отрисовывать непосредственно в объект Framebuffer без многократной выборки.
Если сцена, подлежащая отрисовке, содержит непрозрачные материалы, вам может потребоваться изменить эти материалы с помощью пользовательских аргументов смешивания, чтобы они отрисовывались правильно. Например, если вы работаете с 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 |
Сцена отрисовывается в объект Frame Buffer Object, что может быть дорогостоящим на некоторых платформах и оборудовании, но позволяет большую гибкость. Автоматическое соотношение сторон. Этот режим композиции следует выбрать, если ваш элемент 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 : Entity
Корневой объект 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.2/qml-qtquick-scene3d-scene3d.html