En esta página

Qt3DRender::QComputeCommand Class

class Qt3DRender::QComputeCommand

QComponent para emitir trabajo para el compute shader en la GPU. Más...

Cabecera: #include <QComputeCommand>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake: QT += 3drender
En QML: ComputeCommand
Hereda: Qt3DCore::QComponent
Status: Obsoleto

Propiedades

Funciones públicas

QComputeCommand(Qt3DCore::QNode *parent = nullptr)
Qt3DRender::QComputeCommand::RunType runType() const
int workGroupX() const
int workGroupY() const
int workGroupZ() const

Ranuras públicas

void setRunType(Qt3DRender::QComputeCommand::RunType runType)
void setWorkGroupX(int workGroupX)
void setWorkGroupY(int workGroupY)
void setWorkGroupZ(int workGroupZ)
void trigger(int frameCount = 1)
void trigger(int workGroupX, int workGroupY, int workGroupZ, int frameCount = 1)

Señales

Descripción detallada

A Qt3DRender::QComputeCommand se utiliza para emitir trabajo para el sombreador de cómputo. El sombreador se especifica en el componente QMaterial de la misma entidad a la que se añade el QComputeCommand. Las propiedades workGroupX, workGroupY y workGroupZ especifican los tamaños de los grupos de trabajo para la invocación del sombreador de cómputo. El nodo Qt3DRender::QDispatchCompute necesita estar presente en el FrameGraph para emitir realmente los comandos.

Nota: Si la política de render está establecida en Qt3DRender::QRenderSettings::OnDemand y no hay cambios en la escena, el ComputeCommand no será invocado repetidamente. La política de renderizado Qt3DRender::QRenderSettings::Always debe estar establecida para que ComputeCommand sea invocado repetidamente si no hay otros cambios en la escena que desencadenen la renderización de un nuevo fotograma.

Documentación de propiedades

runType : RunType

Especifica si el comando de cálculo debe ejecutarse cada fotograma o manualmente.

Si se establece en Continuo, el comando Computar se ejecuta cada fotograma. Este es el valor predeterminado.

Si se establece en Manual, el comando de cálculo se ejecuta durante un número determinado de fotogramas y, a continuación, el componente se desactiva.

Funciones de acceso:

Qt3DRender::QComputeCommand::RunType runType() const
void setRunType(Qt3DRender::QComputeCommand::RunType runType)

Señal de aviso:

void runTypeChanged()

workGroupX : int

Especifica el tamaño del grupo de trabajo X.

Funciones de acceso:

int workGroupX() const
void setWorkGroupX(int workGroupX)

Señal del notificador:

void workGroupXChanged()

workGroupY : int

Especifica el tamaño del grupo de trabajo Y.

Funciones de acceso:

int workGroupY() const
void setWorkGroupY(int workGroupY)

Señal de aviso:

void workGroupYChanged()

workGroupZ : int

Especifica el tamaño del grupo de trabajo Z.

Funciones de acceso:

int workGroupZ() const
void setWorkGroupZ(int workGroupZ)

Señal de notificador:

void workGroupZChanged()

Documentación de la función miembro

[explicit] QComputeCommand::QComputeCommand(Qt3DCore::QNode *parent = nullptr)

El constructor crea una nueva instancia de Qt3DRender::QComputeCommand con la dirección parent especificada.

[slot] void QComputeCommand::setWorkGroupX(int workGroupX)

Establece el grupo de trabajo de la primera dimensión en workGroupX.

Nota: Función Setter para la propiedad workGroupX.

Véase también workGroupX().

[slot] void QComputeCommand::setWorkGroupY(int workGroupY)

Establece el grupo de trabajo para la segunda dimensión en workGroupY.

Nota: Función Setter para la propiedad workGroupY.

Véase también workGroupY().

[slot] void QComputeCommand::setWorkGroupZ(int workGroupZ)

Establece el grupo de trabajo para la tercera dimensión en workGroupZ.

Nota: Función Setter para la propiedad workGroupZ.

Véase también workGroupZ().

[slot] void QComputeCommand::trigger(int frameCount = 1)

Cuando el tipo de ejecución es Manual, la llamada al trigger hará que el comando de cálculo se ejecute durante los siguientes frameCount frames. Al finalizar la ejecución, la propiedad enabled se establecerá a false.

Nota: Esta ranura está sobrecargada. Para conectarse a esta ranura:

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        computeCommand, qOverload(&QComputeCommand::trigger));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        computeCommand, [receiver = computeCommand](int frameCount) { receiver->trigger(frameCount); });
Para ver más ejemplos y enfoques, consulte conectarse a ranuras sobrecargadas.

[slot] void QComputeCommand::trigger(int workGroupX, int workGroupY, int workGroupZ, int frameCount = 1)

Cuando el tipo de ejecución es Manual, la llamada al trigger hará que el comando de cálculo se ejecute durante los siguientes frameCount frames. Al finalizar la ejecución, la propiedad enabled se establecerá en false. El tamaño del grupo de trabajo establecido previamente se anulará con workGroupX, workGroupY, workGroupZ.

Nota: Esta ranura está sobrecargada. Para conectarse a esta ranura:

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        computeCommand, qOverload(&QComputeCommand::trigger));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        computeCommand, [receiver = computeCommand](int workGroupX, int workGroupY, int workGroupZ, int frameCount) { receiver->trigger(workGroupX, workGroupY, workGroupZ, frameCount); });
Para ver más ejemplos y enfoques, consulte conectarse a ranuras sobrecargadas.

© 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.