Тип QML Custom3DVolume
Добавляет объект с объемным рендерингом в график. Подробнее...
| Заявление об импорте: | import QtDataVisualization 1.14 |
| С момента: | QtDataVisualization 1.2 |
| Создаёт: | QCustom3DVolume |
| Наследует от: |
Свойства
- alphaMultiplier : real
- drawSliceFrames : bool
- drawSlices : bool
- preserveOpacity : bool
- цветРамкиСрезов : цвет
- пробелыРамкиСрезов : vector3d
- толщиныРамкиСрезов : vector3d
- шириныРамкиСрезов : vector3d
- индексСрезовX : int
- индексСрезовY : int
- индексСрезовZ : int
- глубинаТекстуры : int
- высотаТекстуры : int
- ширинаТекстуры : int
- использоватьShaderВысокойДетализации : bool
Подробное описание
Объект с объемным рендерингом представляет собой прямоугольный параллелепипед с 3D-текстурой. Поддерживаются три плоскости срезов для объема, по одной вдоль каждой основной оси объема.
Рендеринг объемных объектов требует значительных вычислительных ресурсов, особенно когда объем в значительной степени прозрачен, поскольку содержимое объема отслеживается по лучам. Производительность приблизительно линейно зависит от количества пикселей, занимаемых объемом на экране, поэтому отображение объема в меньшем представлении или ограничение уровня масштабирования графика — простые способы повышения производительности. Аналогично, размеры текстуры объема сильно влияют на производительность. Если частота кадров важнее, чем точное рендеринг содержимого объема, отключите shader высокой детализации, установив свойство использовать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.
См. также индексСрезовX, индексСрезовY, индексСрезовZ и drawSlices.
drawSlices : bool
Если это свойство равно true, вместо всего объема будут нарисованы срезы, указанные свойствами индексов срезов. Если оно равно false, всегда будет отрисовываться весь объем. По умолчанию false.
Примечание: Срезы всегда рисуются вдоль осей элемента, поэтому при повороте элемента, срезы также поворачиваются.
См. также индексСрезовX, индексСрезовY и индексСрезовZ.
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.14/qml-qtdatavisualization-custom3dvolume.html