Qt3DRender::QComputeCommand Class
class Qt3DRender::QComputeCommandQComponent zur Ausgabe von Aufgaben für den Compute-Shader auf der GPU. Mehr...
| Header: | #include <qcomputecommand.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
| qmake: | QT += 3drender |
| In QML: | ComputeCommand |
| Erbt von: | Qt3DCore::QComponent |
| Status: | Veraltet |
Diese Klasse ist veraltet. Wir raten dringend davon ab, sie in neuem Code zu verwenden.
Eigenschaften
- runType : RunType
- workGroupX : int
- workGroupY : int
- workGroupZ : int
Öffentliche Funktionen
| QComputeCommand(Qt3DCore::QNode *parent = nullptr) | |
| Qt3DRender::QComputeCommand::RunType | runType() const |
| int | workGroupX() const |
| int | workGroupY() const |
| int | workGroupZ() const |
Öffentliche Slots
| 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) |
Signale
| void | runTypeChanged() |
| void | workGroupXChanged() |
| void | workGroupYChanged() |
| void | workGroupZChanged() |
Ausführliche Beschreibung
Ein „ Qt3DRender::QComputeCommand “ wird verwendet, um Aufgaben an den Compute-Shader zu übermitteln. Der Compute-Shader wird in der Komponente „ QMaterial “ derselben Entität festgelegt, der der „QComputeCommand“ hinzugefügt wurde. Die Eigenschaften „ workGroupX “, „ workGroupY “ und „ workGroupZ “ legen die Arbeitsgruppengrößen für den Aufruf des Compute-Shaders fest. Der Knoten „ Qt3DRender::QDispatchCompute “ muss im FrameGraph vorhanden sein, damit die Befehle tatsächlich ausgeführt werden können.
Hinweis: Wenn die Render-Richtlinie auf „ Qt3DRender::QRenderSettings::OnDemand “ gesetzt ist und keine Änderungen an der Szene vorliegen, wird der „ ComputeCommand “ nicht wiederholt aufgerufen. Die Render-Richtlinie „ Qt3DRender::QRenderSettings::Always “ muss festgelegt sein, damit der „ ComputeCommand “ wiederholt aufgerufen wird, sofern keine anderen Änderungen an der Szene vorliegen, die das Rendern eines neuen Frames auslösen.
Dokumentation zu den Eigenschaften
runType : RunType
Legt fest, ob der Berechnungsbefehl bei jedem Frame ausgeführt oder manuell ausgelöst werden soll.
Bei der Einstellung „Kontinuierlich“ wird der Berechnungsbefehl bei jedem Frame ausgeführt. Dies ist die Standardeinstellung.
Bei der Einstellung „Manuell“ wird der Berechnungsbefehl für eine bestimmte Anzahl von Frames ausgeführt, danach deaktiviert sich die Komponente selbst.
Zugriffsfunktionen:
| Qt3DRender::QComputeCommand::RunType | runType() const |
| void | setRunType(Qt3DRender::QComputeCommand::RunType runType) |
Benachrichtigungssignal:
| void | runTypeChanged() |
workGroupX : int
Legt die Größe der X-Arbeitsgruppe fest.
Zugriffsfunktionen:
| int | workGroupX() const |
| void | setWorkGroupX(int workGroupX) |
Benachrichtigungssignal:
| void | workGroupXChanged() |
workGroupY : int
Legt die Größe der Y-Arbeitsgruppe fest.
Zugriffsfunktionen:
| int | workGroupY() const |
| void | setWorkGroupY(int workGroupY) |
Benachrichtigungssignal:
| void | workGroupYChanged() |
workGroupZ : int
Legt die Größe der Z-Arbeitsgruppe fest.
Zugriffsfunktionen:
| int | workGroupZ() const |
| void | setWorkGroupZ(int workGroupZ) |
Benachrichtigungssignal:
| void | workGroupZChanged() |
Dokumentation der Mitgliedsfunktionen
[explicit] QComputeCommand::QComputeCommand(Qt3DCore::QNode *parent = nullptr)
Der Konstruktor erstellt eine neue Instanz von „ Qt3DRender::QComputeCommand “ mit dem angegebenen „ parent “.
[slot] void QComputeCommand::setWorkGroupX(int workGroupX)
Legt die Arbeitsgruppe für die erste Dimension auf „ workGroupX “ fest.
Hinweis: Setter -Funktion für die Eigenschaft „ workGroupX “.
Siehe auch „ workGroupX()“.
[slot] void QComputeCommand::setWorkGroupY(int workGroupY)
Legt die Arbeitsgruppe für die zweite Dimension auf „ workGroupY “ fest.
Hinweis: Setter -Funktion für die Eigenschaft „ workGroupY “.
Siehe auch „ workGroupY()“.
[slot] void QComputeCommand::setWorkGroupZ(int workGroupZ)
Legt die Arbeitsgruppe für die dritte Dimension auf „ workGroupZ “ fest.
Hinweis: Setter -Funktion für die Eigenschaft „ workGroupZ “.
Siehe auch „ workGroupZ()“.
[slot] void QComputeCommand::trigger(int frameCount = 1)
Wenn der Ausführungsmodus auf „Manuell“ gesetzt ist, führt der Aufruf des Triggers dazu, dass der Berechnungsbefehl für die nächsten frameCount Frames ausgeführt wird. Nach Abschluss der Ausführung wird die Eigenschaft „enabled“ auf „false“ gesetzt.
Hinweis: Dieser Slot ist überladen. So stellen Sie eine Verbindung zu diesem Slot her:
// 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); }); [slot] void QComputeCommand::trigger(int workGroupX, int workGroupY, int workGroupZ, int frameCount = 1)
Wenn der Ausführtyp auf „Manuell“ gesetzt ist, bewirkt der Aufruf des Triggers, dass der Berechnungsbefehl für die nächsten frameCount Frames ausgeführt wird. Nach Abschluss der Ausführung wird die Eigenschaft „enabled“ auf „false“ gesetzt. Die zuvor festgelegte Größe der Arbeitsgruppe wird durch „ workGroupX “, „ workGroupY “ und „ workGroupZ “ überschrieben.
Hinweis: Dieser Slot ist überladen. So stellen Sie eine Verbindung zu diesem Slot her:
// 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); }); © 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.