Custom3DVolume QML Type

向图形中添加一个体积渲染对象。更多

Import Statement: import QtDataVisualization 1.9
Since: QtDataVisualization 1.2
In C++: QCustom3DVolume
Inherits:

Custom3DItem

属性

详细说明

体积渲染对象是一个带有三维纹理的盒子。体支持三个切平面,沿体的每个主轴各一个。

渲染体积对象需要非常高的性能,尤其是当体积基本透明时,因为体积的内容是光线追踪的。性能与体积在屏幕上所占的像素数量几乎成线性关系,因此以较小的视图显示体积或限制图形的缩放级别是提高性能的简单方法。同样,体积纹理尺寸对性能也有很大影响。如果帧频比完美渲染体积内容的像素更重要,可以考虑关闭高清着色器,方法是将useHighDefShader 属性设置为false

注意: 纯 QML 填充体积数据通常不会高效或实用,因此 QML 并不完全支持与之直接相关的属性。如果您想在Qt Quick UI 中使用体积对象,请创建 QML/C++ 混合应用程序。

注: 体积对象只支持正投影。

注: 体积对象使用 3D 纹理,而 OpenGL ES2 环境不支持 3D 纹理。

另请参阅 AbstractGraph3D::orthoProjectionuseHighDefShader

属性文档

alphaMultiplier : real

在渲染时,体积纹理的每个像素的 alpha 值都会与此值相乘。这可用于为体引入统一的透明度。如果preserveOpacitytrue ,则只有开始时至少具有一定透明度的纹理才会受到影响,完全不透明的纹理不会受到影响。该值不能为负。默认值为1.0

另请参阅 preserveOpacity


drawSliceFrames : bool

如果此属性值为true ,将在体积周围绘制切片索引属性所指示的切片框架。如果该属性值为false ,则不会绘制切片框架。绘制切片框架与绘制切片无关,因此可以显示完整的体积,但仍会在其周围绘制切片框架。默认为false

另请参阅 sliceIndexX,sliceIndexY,sliceIndexZ, 和drawSlices


drawSlices : bool

如果此属性值为true ,则将绘制切片索引属性所指示的切片,而不是整个体积。如果该属性值为false ,则将始终绘制全卷。默认值为false

注意: 切片总是沿着项目轴绘制,因此如果项目旋转,切片也会随之旋转。

另请参阅 sliceIndexX,sliceIndexY, 和sliceIndexZ


preserveOpacity : bool

如果此属性值为truealphaMultiplier 只应用于已经具有一定透明度的色元。如果该属性值为false ,乘数将应用于所有像素的 alpha 值。默认值为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 维度:纹理数据中的 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


© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.