En esta página

Custom3DVolume QML Type

Añade un objeto de volumen renderizado a un gráfico. Más...

Import Statement: import QtGraphs
In C++: QCustom3DVolume
Inherits:

Custom3DItem

Propiedades

Señales

Descripción detallada

Un objeto de volumen renderizado es una caja con una textura 3D. Se admiten tres planos de corte para el volumen, uno a lo largo de cada eje principal del volumen.

El renderizado de objetos de volumen es muy intensivo en rendimiento, especialmente cuando el volumen es muy transparente, ya que el contenido del volumen es trazado por rayos. El rendimiento aumenta casi linealmente con la cantidad de píxeles que ocupa el volumen en la pantalla, por lo que mostrar el volumen en una vista más pequeña o limitar el nivel de zoom del gráfico son formas sencillas de mejorar el rendimiento. Del mismo modo, las dimensiones de la textura del volumen tienen un gran impacto en el rendimiento. Si la velocidad de fotogramas es más importante que el renderizado pixel-perfect del contenido del volumen, considera desactivar el shader de alta definición estableciendo la propiedad useHighDefShader en false.

Nota: Rellenar los datos de volumen no suele ser eficiente ni práctico desde QML puro, por lo que las propiedades directamente relacionadas con ello no están totalmente soportadas desde QML. Cree una aplicación híbrida QML/C++ si desea utilizar objetos volumétricos con una interfaz de usuario Qt Quick.

Nota: Los objetos volumétricos utilizan texturas 3D, que no están soportadas en entornos OpenGL ES2.

Véase también useHighDefShader.

Documentación de propiedades

alphaMultiplier : real

El valor alfa de cada texel de la textura del volumen se multiplica por este valor en el momento del renderizado. Esto puede utilizarse para introducir una transparencia uniforme en el volumen. Si preserveOpacity es true, sólo se verán afectados los texels con al menos algo de transparencia al principio, y los texels totalmente opacos no se verán afectados. El valor no debe ser negativo. Por defecto es 1.0.

Véase también preserveOpacity.

drawSliceFrames : bool

Si el valor de esta propiedad es true, se dibujarán alrededor del volumen los marcos de cortes indicados por las propiedades de índice de corte. Si es false, no se dibujará ningún marco de corte. Dibujar marcos de corte es independiente de dibujar cortes, por lo que puedes mostrar el volumen completo y dibujar los marcos de corte a su alrededor. Por defecto es false.

Vea también sliceIndexX, sliceIndexY, sliceIndexZ, y drawSlices.

drawSlices : bool

Si el valor de esta propiedad es true, se dibujarán los cortes indicados por las propiedades de índice de corte en lugar del volumen completo. Si es false, siempre se dibujará el volumen completo. Por defecto es false.

Nota: Los cortes siempre se dibujan a lo largo de los ejes del ítem, por lo que si el ítem se rota, los cortes también se rotan.

Véase también sliceIndexX, sliceIndexY, y sliceIndexZ.

preserveOpacity : bool

Si el valor de esta propiedad es true, alphaMultiplier sólo se aplica a los texels que ya tienen alguna transparencia. Si es false, el multiplicador se aplica al valor alfa de todos los texels. Por defecto es true.

Véase también alphaMultiplier.

sliceFrameColor : color

Color del marco de corte. No se admite el color transparente del marco de corte.

Por defecto es negro.

Véase también drawSliceFrames.

sliceFrameGaps : vector3d

El tamaño de la cámara de aire que queda entre el propio volumen y el marco en cada dimensión. El espacio puede ser diferente en distintas dimensiones. Los valores son fracciones del espesor del volumen en la misma dimensión. Los valores no pueden ser negativos.

El valor por defecto es vector3d(0.01, 0.01, 0.01).

Véase también drawSliceFrames.

sliceFrameThicknesses : vector3d

El grosor de los marcos de corte para cada dimensión. Los valores son fracciones del grosor del volumen en la misma dimensión. Los valores no pueden ser negativos.

El valor por defecto es vector3d(0.01, 0.01, 0.01).

Véase también drawSliceFrames.

sliceFrameWidths : vector3d

La anchura del marco de corte. La anchura puede ser diferente en distintas dimensiones, por lo que puede, por ejemplo, omitir el dibujo de los marcos en determinados lados del volumen estableciendo el valor de esa dimensión en cero. Los valores son fracciones del grosor del volumen en la misma dimensión. Los valores no pueden ser negativos.

El valor por defecto es vector3d(0.01, 0.01, 0.01).

Véase también drawSliceFrames.

sliceIndexX : int

El índice de la dimensión x en los datos de la textura que indica qué corte vertical mostrar. Establecer cualquier dimensión a negativo indica que no se dibuja ninguna rebanada o marco de rebanada para esa dimensión. Si todas las dimensiones son negativas, no se dibuja ningún corte o marco de corte y el volumen se dibuja normalmente. Por defecto es -1.

Véase también QCustom3DVolume::textureData, drawSlices, y drawSliceFrames.

sliceIndexY : int

El índice de la dimensión y en los datos de la textura que indica qué corte horizontal mostrar. Establecer cualquier dimensión a negativo indica que no se dibuja ninguna rebanada o marco de rebanada para esa dimensión. Si todas las dimensiones son negativas, no se dibuja ningún corte o marco de corte y el volumen se dibuja normalmente. Por defecto es -1.

Véase también QCustom3DVolume::textureData, drawSlices, y drawSliceFrames.

sliceIndexZ : int

El índice de dimensión z en los datos de la textura que indica qué corte vertical mostrar. Establecer cualquier dimensión a negativo indica que no se dibuja ninguna rebanada o marco de rebanada para esa dimensión. Si todas las dimensiones son negativas, no se dibuja ningún corte o marco de corte y el volumen se dibuja normalmente. Por defecto es -1.

Véase también QCustom3DVolume::textureData, drawSlices, y drawSliceFrames.

textureDepth : int

La profundidad de la textura 3D que define el contenido del volumen en píxeles. Por defecto es 0.

Nota: No es posible modificar esta propiedad desde QML, ya que los datos de la textura no pueden redimensionarse en consecuencia.

textureHeight : int

La altura de la textura 3D que define el contenido del volumen en píxeles. Por defecto es 0.

Nota: No es posible modificar esta propiedad desde QML, ya que los datos de textura no pueden redimensionarse en consecuencia.

textureWidth : int

La anchura de la textura 3D que define el contenido del volumen en píxeles. Por defecto es 0.

Nota: No es posible modificar esta propiedad desde QML, ya que los datos de textura no pueden redimensionarse en consecuencia.

useHighDefShader : bool

Si el valor de esta propiedad es true, se utiliza un shader de alta definición para renderizar el volumen. Si es false, se utiliza un shader de baja definición.

El shader de alta definición garantiza que cada texel visible de la textura del volumen es muestreado cuando el volumen es renderizado. El sombreador de baja definición sólo renderiza una aproximación del contenido del volumen, pero a una frecuencia de imagen mucho mayor. El sombreador de baja definición no garantiza que se muestreen todos los texel de la textura del volumen, por lo que puede haber parpadeos si el volumen contiene rasgos finos distintivos.

Nota: Este valor no afecta al nivel de detalle al renderizar los cortes del volumen.

Por defecto es true.

Documentación sobre señales

alphaMultiplierChanged(float mult)

Esta señal se emite cuando alphaMultiplier cambia a mult.

Nota: El controlador correspondiente es onAlphaMultiplierChanged.

drawSliceFramesChanged(bool enabled)

Esta señal se emite cuando drawSliceFrames cambia a enabled.

Nota: El controlador correspondiente es onDrawSliceFramesChanged.

drawSlicesChanged(bool enabled)

Esta señal se emite cuando drawSlices cambia a enabled.

Nota: El controlador correspondiente es onDrawSlicesChanged.

preserveOpacityChanged(bool enabled)

Esta señal se emite cuando preserveOpacity cambia a enabled.

Nota: El controlador correspondiente es onPreserveOpacityChanged.

sliceFrameColorChanged(color color)

Esta señal se emite cuando sliceFrameColor cambia a color.

Nota: El controlador correspondiente es onSliceFrameColorChanged.

sliceFrameGapsChanged(vector3d values)

Esta señal se emite cuando sliceFrameGaps cambia a values.

Nota: El controlador correspondiente es onSliceFrameGapsChanged.

sliceFrameThicknessesChanged(vector3d values)

Esta señal se emite cuando sliceFrameThicknesses cambia a values.

Nota: El controlador correspondiente es onSliceFrameThicknessesChanged.

sliceFrameWidthsChanged(vector3d values)

Esta señal se emite cuando sliceFrameWidths cambia a values.

Nota: El controlador correspondiente es onSliceFrameWidthsChanged.

sliceIndexXChanged(int value)

Esta señal se emite cuando sliceIndexX cambia a value.

Nota: El controlador correspondiente es onSliceIndexXChanged.

sliceIndexYChanged(int value)

Esta señal se emite cuando sliceIndexY cambia a value.

Nota: El controlador correspondiente es onSliceIndexYChanged.

sliceIndexZChanged(int value)

Esta señal se emite cuando sliceIndexZ cambia a value.

Nota: El controlador correspondiente es onSliceIndexZChanged.

textureDepthChanged(int value)

Esta señal se emite cuando textureDepth cambia a value.

Nota: El controlador correspondiente es onTextureDepthChanged.

textureHeightChanged(int value)

Esta señal se emite cuando textureHeight cambia a value.

Nota: El controlador correspondiente es onTextureHeightChanged.

textureWidthChanged(int value)

Esta señal se emite cuando textureWidth cambia a value.

Nota: El controlador correspondiente es onTextureWidthChanged.

useHighDefShaderChanged(bool enabled)

Esta señal se emite cuando useHighDefShader cambia a enabled.

Nota: El controlador correspondiente es 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.