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