Тип QML Custom3DVolume
Добавляет объёмный объект с визуализацией по объёму в график. Подробнее...
| Заявление импорта: | import QtDataVisualization 1.2 |
| С версии: | QtDataVisualization 1.2 |
| Создаёт: | QCustom3DVolume |
| Наследует: |
Свойства
- alphaMultiplier : real
- drawSliceFrames : bool
- drawSlices : bool
- preserveOpacity : bool
- цветРамкиСрезов : цвет
- sliceFrameGaps : vector3d
- sliceFrameThicknesses : vector3d
- sliceFrameWidths : vector3d
- sliceIndexX : int
- sliceIndexY : int
- sliceIndexZ : int
- глубинаТекстуры : int
- высотаТекстуры : int
- ширинаТекстуры : int
- использоватьShaderВысокогоРазрешения : bool
Подробное описание
Объект с визуализацией по объёму — это прямоугольник с 3D текстурой. Поддерживаются три плоскости срезов по основным осям объёма.
Визуализация объёмных объектов очень ресурсоёмка, особенно когда объект прозрачен, поскольку содержимое объёма просчитывается с помощью трассировки лучей. Производительность почти линейно зависит от количества пикселей, занимаемых объёмом на экране, поэтому уменьшение размера отображения или ограничение масштабирования графика — простые способы повышения производительности. Аналогичным образом, размеры текстуры объёма сильно влияют на производительность. Если частота кадров важнее точного отображения содержимого объёма, отключите высококачественный шейдер, установив свойство использоватьShaderВысокогоРазрешения в false.
Примечание: Заполнение данных объёма, как правило, неэффективно и непрактично чисто из QML, поэтому свойства, напрямую связанные с этим, не полностью поддерживаются из QML. Создайте гибридное приложение QML/C++, если хотите использовать объёмные объекты с интерфейсом Qt Quick.
Примечание: Объекты объёмного типа поддерживаются только с ортогональной проекцией.
Примечание: Объёмные объекты используют 3D текстуры, которые не поддерживаются в средах OpenGL ES2.
См. также AbstractGraph3D::orthoProjection и использоватьShaderВысокогоРазрешения.
Документация по свойствам
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-5.12/qml-qtdatavisualization-custom3dvolume.html