Sur cette page

Qt3DRender::QComputeCommand Class

class Qt3DRender::QComputeCommand

QComponent pour émettre du travail pour le shader de calcul sur le GPU. Plus...

En-tête : #include <QComputeCommand>
CMake : find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake : QT += 3drender
En QML : ComputeCommand
Hérite : Qt3DCore::QComponent
Statut : Déclassé

Propriétés

Fonctions publiques

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

Emplacements publics

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)

Signaux

Description détaillée

Un site Qt3DRender::QComputeCommand est utilisé pour fournir du travail au shader de calcul. Le nuanceur de calcul est spécifié dans le composant QMaterial de la même entité que celle à laquelle la QComputeCommand est ajoutée. Les propriétés workGroupX, workGroupY et workGroupZ spécifient la taille des groupes de travail pour l'invocation du nuanceur de calcul. Le nœud Qt3DRender::QDispatchCompute doit être présent dans la FrameGraph pour émettre les commandes.

Remarque : si la politique de rendu est définie sur Qt3DRender::QRenderSettings::OnDemand et qu'aucun changement n'est apporté à la scène, la commande ComputeCommand ne sera pas invoquée de manière répétée. La politique de rendu Qt3DRender::QRenderSettings::Always doit être définie pour que la commande ComputeCommand soit invoquée de manière répétée si aucun autre changement n'intervient dans la scène et ne déclenche le rendu d'une nouvelle image.

Documentation sur les propriétés

runType : RunType

Indique si la commande de calcul doit être exécutée à chaque image ou déclenchée manuellement.

Si le paramètre est défini sur Continu, la commande de calcul est exécutée à chaque image. Il s'agit de la valeur par défaut.

Si le paramètre est défini sur Manuel, la commande de calcul est exécutée pendant un nombre donné d'images, puis le composant se désactive.

Fonctions d'accès :

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

Signal de notification :

void runTypeChanged()

workGroupX : int

Spécifie la taille du groupe de travail X.

Fonctions d'accès :

int workGroupX() const
void setWorkGroupX(int workGroupX)

Signal de notification :

void workGroupXChanged()

workGroupY : int

Spécifie la taille du groupe de travail Y.

Fonctions d'accès :

int workGroupY() const
void setWorkGroupY(int workGroupY)

Signal de notification :

void workGroupYChanged()

workGroupZ : int

Spécifie la taille du groupe de travail Z.

Fonctions d'accès :

int workGroupZ() const
void setWorkGroupZ(int workGroupZ)

Signal de notification :

void workGroupZChanged()

Fonction membre Documentation

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

Le constructeur crée une nouvelle instance Qt3DRender::QComputeCommand avec l'adresse parent spécifiée.

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

Définit le groupe de travail pour la première dimension à workGroupX.

Remarque : fonction de définition de la propriété workGroupX.

Voir également workGroupX().

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

Définit le groupe de travail pour la deuxième dimension à workGroupY.

Remarque : fonction de définition de la propriété workGroupY.

Voir également workGroupY().

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

Définit le groupe de travail pour la troisième dimension à workGroupZ.

Remarque : fonction de définition de la propriété workGroupZ.

Voir également workGroupZ().

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

Lorsque le type d'exécution est défini sur Manual, l'appel du déclencheur entraîne l'exécution de la commande de calcul pour les prochaines images frameCount. À la fin de l'exécution, la propriété enabled sera mise à false.

Remarque : ce slot est surchargé. Pour se connecter à ce slot :

// 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); });
Pour plus d'exemples et d'approches, voir connecting to overloaded slots (connexion aux slots surchargés).

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

Lorsque le type d'exécution est défini sur Manual, l'appel du déclencheur entraîne l'exécution de la commande de calcul pour les prochaines images frameCount. À la fin de l'exécution, la propriété enabled (activée) sera définie sur false (faux). La taille du groupe de travail précédemment définie sera remplacée par workGroupX, workGroupY, workGroupZ.

Note : Ce slot est surchargé. Pour se connecter à ce slot :

// 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); });
Pour plus d'exemples et d'approches, voir se connecter à des slots surchargés.

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