Тип QML Custom3DVolume
Добавляет объект, визуализирующий объём, в график. Подробнее...
| Оператор импорта: | import QtDataVisualization |
| С версии: | QtDataVisualization 1.2 |
| Создаёт: | QCustom3DVolume |
| Наследует от: |
Свойства
- alphaMultiplier : real
- drawSliceFrames : bool
- drawSlices : bool
- preserveOpacity : bool
- sliceFrameColor : color
- sliceFrameGaps : vector3d
- sliceFrameThicknesses : vector3d
- sliceFrameWidths : vector3d
- sliceIndexX : int
- sliceIndexY : int
- sliceIndexZ : int
- textureDepth : int
- textureHeight : int
- textureWidth : int
- useHighDefShader : bool
Подробное описание
Объект, визуализирующий объём, представляет собой прямоугольный параллелепипед с 3D-текстурой. Поддерживаются три плоскости среза для объёма, по одной вдоль каждой основной оси объёма.
Визуализация объектов объёма требует значительных вычислительных ресурсов, особенно если объём в значительной степени прозрачен, так как содержимое объёма просчитывается с помощью лучевого трассирования. Производительность практически линейно зависит от количества пикселей, занимаемых объёмом на экране, поэтому уменьшение области просмотра или ограничение уровня масштабирования графика являются простыми способами повышения производительности. Аналогично, размер текстуры объёма сильно влияет на производительность. Если частота кадров важнее, чем точное рендеринг содержимого объёма, рассмотрите возможность отключения высококачественного шейдера, установив свойство useHighDefShader в false.
Примечание: Заполнение данных объёма обычно неэффективно и непрактично из чистого QML, поэтому свойства, напрямую связанные с этим, не полностью поддерживаются QML. Создайте гибридное приложение QML/C++, если вы хотите использовать объекты объёма с пользовательским интерфейсом Qt Quick.
Примечание: Объекты объёма поддерживаются только с ортогональной проекцией.
Примечание: Объекты объёма используют 3D-текстуры, которые не поддерживаются в средах OpenGL ES2.
См. также AbstractGraph3D::orthoProjection и useHighDefShader.
Документация по свойствам
alphaMultiplier : real
Значение альфа каждого текселя текстуры объёма умножается на это значение во время рендеринга. Это можно использовать для введения равномерной прозрачности объёма. Если preserveOpacity равно true, только тексели с некоторой прозрачностью изначально будут затронуты, а полностью непрозрачные тексели не будут затронуты. Значение не должно быть отрицательным. По умолчанию 1.0.
См. также preserveOpacity.
drawSliceFrames : bool
Если значение этого свойства true, рамки срезов, указанных свойствами индекса срезов, будут нарисованы вокруг объёма. Если false, рамки срезов не будут нарисованы. Рисование рамок срезов не зависит от рисования самих срезов, поэтому вы можете показать весь объём и всё равно нарисовать рамки вокруг него. По умолчанию false.
См. также sliceIndexX, sliceIndexY, sliceIndexZ и drawSlices.
drawSlices : bool
Если значение этого свойства true, срезы, указанные свойствами индекса срезов, будут нарисованы вместо всего объёма. Если false, всегда будет нарисован весь объём. По умолчанию false.
Примечание: Срезы всегда рисуются вдоль осей элемента, поэтому, если элемент повернут, срезы тоже поворачиваются.
См. также sliceIndexX, sliceIndexY и sliceIndexZ.
preserveOpacity : bool
Если значение этого свойства true, alphaMultiplier применяется только к текселям, которые изначально обладают какой-то прозрачностью. Если false, множитель применяется к значению альфа всех текселей. По умолчанию true.
См. также alphaMultiplier.
sliceFrameColor : color
Цвет рамки среза. Прозрачный цвет рамки среза не поддерживается.
По умолчанию чёрный.
См. также drawSliceFrames.
sliceFrameGaps : vector3d
Размер воздушного зазора между самим объёмом и рамкой в каждой измерении. Зазор может отличаться в разных измерениях. Значения представляют собой доли толщины объёма в том же измерении. Значения не могут быть отрицательными.
По умолчанию vector3d(0.01, 0.01, 0.01).
См. также drawSliceFrames.
sliceFrameThicknesses : vector3d
Толщина рамок срезов для каждого измерения. Значения представляют собой доли толщины объёма в том же измерении. Значения не могут быть отрицательными.
По умолчанию vector3d(0.01, 0.01, 0.01).
См. также drawSliceFrames.
sliceFrameWidths : vector3d
Ширина рамок срезов. Ширина может отличаться в разных измерениях, например, вы можете отказаться от рисования рамок с определённых сторон объёма, установив значение для этого измерения в ноль. Значения представляют собой доли толщины объёма в том же измерении. Значения не могут быть отрицательными.
По умолчанию vector3d(0.01, 0.01, 0.01).
См. также drawSliceFrames.
sliceIndexX : int
Индекс измерения x в данных текстуры, указывающий на вертикальный срез, который нужно показать. Установка любого измерения в отрицательное значение означает, что срез или рамка среза для этого измерения не рисуются. Если все измерения отрицательны, срезы и рамки срезов не рисуются, и объём рисуется обычным образом. По умолчанию -1.
См. также QCustom3DVolume::textureData, drawSlices и drawSliceFrames.
sliceIndexY : int
Индекс измерения y в данных текстуры, указывающий на горизонтальный срез, который нужно показать. Установка любого измерения в отрицательное значение означает, что срез или рамка среза для этого измерения не рисуются. Если все измерения отрицательны, срезы и рамки срезов не рисуются, и объём рисуется обычным образом. По умолчанию -1.
См. также QCustom3DVolume::textureData, drawSlices и drawSliceFrames.
sliceIndexZ : int
Индекс измерения z в данных текстуры, указывающий на вертикальный срез, который нужно показать. Установка любого измерения в отрицательное значение означает, что срез или рамка среза для этого измерения не рисуются. Если все измерения отрицательны, срезы и рамки срезов не рисуются, и объём рисуется обычным образом. По умолчанию -1.
См. также QCustom3DVolume::textureData, drawSlices и drawSliceFrames.
textureDepth : int
Глубина 3D-текстуры, определяющей содержимое объёма в пикселях. По умолчанию 0.
Примечание: Изменение этого свойства из QML не поддерживается, так как данные текстуры не могут быть изменены соответствующим образом.
textureHeight : int
Высота 3D-текстуры, определяющей содержимое объёма в пикселях. По умолчанию 0.
Примечание: Изменение этого свойства из QML не поддерживается, так как данные текстуры не могут быть изменены соответствующим образом.
textureWidth : int
Ширина 3D-текстуры, определяющей содержимое объёма в пикселях. По умолчанию 0.
Примечание: Изменение этого свойства из QML не поддерживается, так как данные текстуры не могут быть изменены соответствующим образом.
useHighDefShader : bool
Если значение этого свойства true, используется высокодетализированный шейдер для отрисовки объёма. Если false, используется низкодетализированный шейдер.
Высокодетализированный шейдер гарантирует, что каждый видимый тексел текстуры объёма будет просчитываться при отрисовке объёма. Низкодетализированный шейдер отрисовывает лишь приближённое представление содержимого объёма, но с гораздо большей частотой кадров. Низкодетализированный шейдер не гарантирует, что каждый тексел текстуры объёма будет просчитан, поэтому может быть мерцание, если объём содержит тонкие детали.
Примечание: Это значение не влияет на уровень детализации при отрисовке срезов объёма.
По умолчанию true.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qml-qtdatavisualization-custom3dvolume.html