Custom3DVolume QML Type
向图形中添加一个体积渲染对象。更多...
| Import Statement: | import QtDataVisualization 1.12 |
| Since: | QtDataVisualization 1.2 |
| In C++: | QCustom3DVolume |
| Inherits: | |
| Status: | Deprecated |
此类型已弃用。我们强烈建议不要在新代码中使用它。
属性
- alphaMultiplier : real
- drawSliceFrames : bool
- drawSlices : bool
- preserveOpacity : bool
- sliceFrameColor : color
- sliceFrameGaps : vector3d
- sliceFrameThicknesses : vector3d
- sliceFrameWidths : vector3d
- sliceIndexX : int
- sliceIndexY : int
- sliceIndexZ : int
- textureDepth : int
- textureHeight : int
- textureWidth : int
- useHighDefShader : bool
详细说明
体积渲染对象是一个带有三维纹理的盒子。该体积支持三个切片平面,分别沿体积的三个主轴方向。
体素对象的渲染对性能要求极高,尤其是当体素大部分透明时,因为体素内部的内容需要通过光线追踪来渲染。性能几乎与体素在屏幕上占用的像素数量成线性关系,因此将体素显示在较小的视图中或限制图形的缩放级别,是提升性能的简便方法。 同样,体积纹理的尺寸也会对性能产生重大影响。如果帧率比体积内容的像素级精确渲染更为重要,请考虑通过将useHighDefShader 属性设置为false 来关闭高清着色器。
注意: 仅通过纯 QML填充 体积数据通常既不高效也不实用,因此 QML 并不完全支持与之直接相关的属性。若需在采用Qt Quick 的用户界面中使用体积对象,请创建一个 QML/C++ 混合应用程序。
注意:体积 对象仅支持正射投影。
注意:体积 对象使用 3D 纹理,而 OpenGL ES2 环境不支持 3D 纹理。
另请参阅 AbstractGraph3D::orthoProjection 和useHighDefShader 。
属性文档
alphaMultiplier : real
在渲染时,体积纹理中每个纹素的alpha值都会与该值相乘。这可用于为体积引入均匀的透明度。如果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 ,则该乘数将应用于所有纹素的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 维度索引,用于指定要显示的垂直切片。将任何维度设置为负值,表示不绘制该维度的切片或切片边框。如果所有维度均为负值,则不绘制任何切片或切片边框,体积将按常规方式绘制。默认值为-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 。
© 2026 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.