Spec-Zone.ru › Qt 5.15

Тип QML Custom3DVolume

Добавляет объект, рендеренный объёмом, в график. Подробнее...

Заявление об импорте: import QtDataVisualization 1.15
С тех пор: QtDataVisualization 1.2
Инициализирует: QCustom3DVolume
Наследует:

Custom3DItem

  • Список всех членов, включая унаследованные

Свойства

  • 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.15/qml-qtdatavisualization-custom3dvolume.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API