Тип Scene3D QML
Тип Scene3D используется для интеграции сцены Qt3D в сцену QtQuick 2. Подробнее...
| Оператор импорта: | import QtQuick.Scene3D 2.0 |
| Наследует: |
Свойства
- aspects : список<строка>
- cameraAspectRatioMode : перечисление
- compositingMode : перечисление
- entity : Сущность
- hoverEnabled : логическое
- multisample : логическое
Методы
- 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. Кроме того, при использовании этого режима, clearBeforeRendering окна будет автоматически установлено в false. |
Значение по умолчанию — FBO.
Это свойство было добавлено в Qt 5.14.
[по умолчанию] entity : Сущность
Корневая сущность отображаемой 3D сцены.
hoverEnabled : логическое
true если события наведения принимаются.
multisample : логическое
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.0/qml-qtquick-scene3d-scene3d.html