Тип QML Custom3DVolume
Добавляет объект с рендерингом объёма в график. Подробнее...
| Заявление импорта: | import QtDataVisualization 1.13 |
| С тех пор: | QtDataVisualization 1.2 |
| Создаёт экземпляр: | QCustom3DVolume |
| Наследует: |
Свойства
- alphaMultiplier : real
- drawSliceFrames : bool
- drawSlices : bool
- preserveOpacity : bool
- цветРамкиСрезов : color
- промежуткиРамокСрезов : vector3d
- толщиныРамокСрезов : vector3d
- шириныРамокСрезов : vector3d
- индексСрезовX : int
- индексСрезовY : int
- индексСрезовZ : 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.
См. также индексСрезовX, индексСрезовY, индексСрезовZ и drawSlices.
drawSlices : bool
Если это свойство равно true, вместо всего объёма будут нарисованы срезы, указанные свойствами индекса срезов. Если оно равно false, всегда будет нарисован весь объём. По умолчанию false.
Примечание: Срезы всегда рисуются вдоль осей элемента, поэтому, если элемент повернут, срезы также будут повернуты.
См. также индексСрезовX, индексСрезовY и индексСрезовZ.
preserveOpacity : bool
Если это свойство равно true, alphaMultiplier применяется только к текселям, которые уже имеют некоторую прозрачность. Если оно равно false, множитель применяется к значению альфа всех текселей. По умолчанию true.
См. также alphaMultiplier.
цветРамкиСрезов : color
Цвет рамки среза. Прозрачный цвет рамки среза не поддерживается.
По умолчанию чёрный.
См. также drawSliceFrames.
промежуткиРамокСрезов : vector3d
Размер воздушного зазора между самим объёмом и рамкой в каждой размерности. Зазор может быть разным в разных размерностях. Значения — это доли толщины объёма в той же размерности. Значения не могут быть отрицательными.
По умолчанию vector3d(0.01, 0.01, 0.01).
См. также drawSliceFrames.
толщиныРамокСрезов : vector3d
Толщина рамок срезов для каждой размерности. Значения — это доли толщины объёма в той же размерности. Значения не могут быть отрицательными.
По умолчанию vector3d(0.01, 0.01, 0.01).
См. также drawSliceFrames.
шириныРамокСрезов : vector3d
Ширина рамки среза. Ширина может отличаться в разных размерностях, поэтому, например, вы можете отключить отображение рамок по определённым сторонам объёма, установив значение для этой размерности в ноль. Значения — это доли толщины объёма в той же размерности. Значения не могут быть отрицательными.
По умолчанию vector3d(0.01, 0.01, 0.01).
См. также drawSliceFrames.
индексСрезовX : int
Индекс x-размерности в данных текстуры, указывающий, какой вертикальный срез отобразить. Установка любого измерения в отрицательное значение означает, что для этого измерения не будет отображаться срез или рамка среза. Если все измерения отрицательные, не будут отображаться ни срезы, ни рамки срезов, и объём будет отображаться обычно. По умолчанию -1.
См. также QCustom3DVolume::textureData, drawSlices и drawSliceFrames.
индексСрезовY : int
Индекс y-размерности в данных текстуры, указывающий, какой горизонтальный срез отобразить. Установка любого измерения в отрицательное значение означает, что для этого измерения не будет отображаться срез или рамка среза. Если все измерения отрицательные, не будут отображаться ни срезы, ни рамки срезов, и объём будет отображаться обычно. По умолчанию -1.
См. также QCustom3DVolume::textureData, drawSlices и drawSliceFrames.
индексСрезовZ : 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.13/qml-qtdatavisualization-custom3dvolume.html