自定义3D体积 QML类型
向图形添加体积渲染对象。更多信息...
导入语句 | import QtGraphs |
实例化 | QCustom3DVolume |
继承 | |
状态 | 技术预览 |
- 所有成员的列表,包括继承的成员
- Custom3DVolume是Qt图形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
详细描述
体积渲染对象是一个带有3D纹理的盒子。对于体积,支持三个切片平面,分别沿着体积的主轴。
体积对象的渲染非常耗费性能,特别是当体积大部分是透明的时候,因为体积的内容是使用光线追踪的。性能几乎与体积占据的像素数量成线性关系,所以通过在更小的视图中显示体积或限制图表的缩放级别是提高性能的简单方法。同样,体积纹理的维度对性能也有很大的影响。如果帧率比像素完美的体积内容渲染更重要,考虑通过将useHighDefShader属性的值设置为false
来关闭高定义着色器。
注意:从纯QML填充体积数据通常既不高效也不实用,因此与该功能直接相关的属性不支持在QML中完全实现。如果您想搭配Qt Quick UI使用体积对象,请创建混合QML/C++应用程序。
注意:体积对象使用3D纹理,这些纹理不支持在OpenGL ES2环境中。
另请参阅:useHighDefShader。
属性文档
alphaMultiplier : 实数 |
体积纹理中每个像素的alpha值将在渲染时乘以这个值。这可以用来为体积引入均匀的透明度。如果preserveOpacity设置为true
,则只有初始就具有一定的透明度的像素受到影响,完全不透明的像素不受影响。这个值不能是负数。默认值为1.0
。
另请参阅preserveOpacity。
drawSliceFrames : 布尔值 |
如果此属性值为true
,则将在体积周围绘制由切片索引属性指定的切片框架。如果为false
,则不绘制切片框架。绘制切片框架与绘制切片是独立的,因此您可以显示整个体积,并同时绘制周围的切片框架。默认值为false
。
drawSlices : 布尔值 |
如果此属性值为true
,则将绘制由切片索引属性指定的切片,而不是整个体积。如果为false
,则始终绘制整个体积。默认值为false
。
注意:切片始终沿着项目轴绘制,因此如果项目旋转,切片也会旋转。
preserveOpacity : 布尔值 |
如果此属性值为true
,则仅在具有一些透明度的texel上应用alphaMultiplier。如果为false
,则将应用乘子到所有texel的alpha值。默认值为true
。
另请参阅alphaMultiplier。
sliceFrameColor : 颜色 |
sliceFrameGaps : 三维向量 |
体积本身和每维框架之间留下的空气间隙的大小。间隙可以在不同维度上不同。这些值是该维度体积厚度的分数。这些值不能是负数。
默认为vector3d(0.01, 0.01, 0.01)
。
另请参阅drawSliceFrames。
sliceFrameThicknesses : 三维向量 |
sliceFrameWidths : 三维向量 |
切片框架的宽度。宽度可以在不同维度上不同,因此您可以例如通过将相应维度的值设置为零来省略在体积的某些侧面绘制框架。这些值是该维度体积厚度的分数。这些值不能是负数。
默认为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
,则使用低清晰度着色器。
高清晰度着色器保证在渲染体积时采样体积纹理的每个可见texel。低清晰度着色器只渲染体积内容的粗略近似,但帧率要高得多。低清晰度着色器不保证采样体积纹理的每个texel,如果体积包含独特的细窄特征,则可能会导致闪烁。
注意:此值不影响渲染体积切片时的细节级别。
默认值为 true
。
© 2024 The Qt Company Ltd. 本文档中包含的文档贡献的版权归其各自的所有者所有。本文档根据自由软件基金会发布的GNU自由文档许可协议版本1.3的条款获得许可。Qt及其相关标志是芬兰及/或其他国家的The Qt Company Ltd.的注册商标。所有其他商标均为其各自所有者的财产。