Custom3DVolume QML Type
将一个体素渲染对象添加到图形中。更多...
| Import Statement: | import QtGraphs |
| In C++: | QCustom3DVolume |
| Inherits: |
- 所有成员列表,包括继承的成员
- Custom3DVolume 是Qt Graphs (用于3D的QML类型)的一部分。
属性
- 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
信号
- alphaMultiplierChanged(float mult)
- drawSliceFramesChanged(bool enabled)
- drawSlicesChanged(bool enabled)
- preserveOpacityChanged(bool enabled)
- sliceFrameColorChanged(color color)
- sliceFrameGapsChanged(vector3d values)
- sliceFrameThicknessesChanged(vector3d values)
- sliceFrameWidthsChanged(vector3d values)
- sliceIndexXChanged(int value)
- sliceIndexYChanged(int value)
- sliceIndexZChanged(int value)
- textureDepthChanged(int value)
- textureHeightChanged(int value)
- textureWidthChanged(int value)
- useHighDefShaderChanged(bool enabled)
详细说明
体积渲染对象是一个带有3D纹理的立方体。该体积支持三个切片平面,分别沿体积的三个主轴方向。
体素对象的渲染对性能要求极高,尤其是当体素大部分透明时,因为体素内部的内容需要通过光线追踪来渲染。性能几乎与体素在屏幕上占用的像素数量成线性关系,因此缩小体素的显示视图或限制图形的缩放级别,是提升性能的简便方法。 同样,体积纹理的尺寸也会对性能产生重大影响。如果帧率比体积内容的像素级精确渲染更为重要,请考虑通过将useHighDefShader 属性设置为false 来关闭高清着色器。
注意: 仅通过纯 QML填充 体积数据通常既不高效也不实用,因此与之直接相关的属性在 QML 中并不完全受支持。若需在支持Qt Quick 的 UI 中使用体积对象,请创建一个混合型 QML/C++ 应用程序。
注意:体积 对象使用 3D 纹理,而 OpenGL ES2 环境不支持 3D 纹理。
另请参阅 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 。
Signal 文档
alphaMultiplierChanged(float mult)
当alphaMultiplier 变为mult 时,会触发此信号。
注意: 相应的处理程序 是onAlphaMultiplierChanged 。
drawSliceFramesChanged(bool enabled)
当drawSliceFrames 变为enabled 时,会触发此信号。
注意: 相应的处理程序 是onDrawSliceFramesChanged 。
drawSlicesChanged(bool enabled)
当drawSlices 变为enabled 时,会触发此信号。
注意: 相应的处理程序 是onDrawSlicesChanged 。
preserveOpacityChanged(bool enabled)
当preserveOpacity 变为enabled 时,会发出此信号。
注意: 相应的处理程序 是onPreserveOpacityChanged 。
sliceFrameColorChanged(color color)
当sliceFrameColor 变为color 时,会触发此信号。
注意: 相应的处理程序 是onSliceFrameColorChanged 。
sliceFrameGapsChanged(vector3d values)
当sliceFrameGaps 变为values 时,会触发此信号。
注意: 对应的处理程序 是onSliceFrameGapsChanged 。
sliceFrameThicknessesChanged(vector3d values)
当sliceFrameThicknesses 变为values 时,会触发此信号。
注意: 相应的处理程序 是onSliceFrameThicknessesChanged 。
sliceFrameWidthsChanged(vector3d values)
当sliceFrameWidths 变为values 时,会触发此信号。
注意: 相应的处理程序 是onSliceFrameWidthsChanged 。
sliceIndexXChanged(int value)
当sliceIndexX 变为value 时,会触发此信号。
注意: 相应的处理程序 是onSliceIndexXChanged 。
sliceIndexYChanged(int value)
当sliceIndexY 变为value 时,会触发此信号。
注意: 相应的处理程序 为onSliceIndexYChanged 。
sliceIndexZChanged(int value)
当sliceIndexZ 变为value 时,会触发此信号。
注意: 相应的处理程序 是onSliceIndexZChanged 。
textureDepthChanged(int value)
当textureDepth 变为value 时,会触发此信号。
注意: 相应的处理程序 是onTextureDepthChanged 。
textureHeightChanged(int value)
当textureHeight 变为value 时,会触发此信号。
注意: 相应的处理程序 是onTextureHeightChanged 。
textureWidthChanged(int value)
当textureWidth 变为value 时,会触发此信号。
注意: 相应的处理程序 是onTextureWidthChanged 。
useHighDefShaderChanged(bool enabled)
当useHighDefShader 变为enabled 时,会触发此信号。
注意: 相应的处理程序 是onUseHighDefShaderChanged 。
© 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.