このページでは

Qt3DRender::QComputeCommand Class

class Qt3DRender::QComputeCommand

QComponentは、GPU上のコンピュートシェーダーに対して処理を実行します。詳細...

ヘッダー: #include <qcomputecommand.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake: QT += 3drender
QML内: ComputeCommand
継承元: Qt3DCore::QComponent
ステータス: 非推奨

このクラスは非推奨です。新しいコードでの使用は強く推奨しません。

プロパティ

パブリック関数

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

パブリックスロット

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)

シグナル

詳細な説明

Qt3DRender::QComputeCommand は、コンピュートシェーダーへの処理発行に使用されます。コンピュートシェーダーは、QComputeCommandが追加されたのと同じエンティティのQMaterial コンポーネントで指定されます。workGroupX 、workGroupY 、およびworkGroupZ プロパティは、コンピュートシェーダーの呼び出しにおけるワークグループのサイズを指定します。実際にコマンドを発行するには、FrameGraph内にQt3DRender::QDispatchCompute ノードが存在している必要があります。

注: レンダリングポリシーが「Qt3DRender::QRenderSettings::OnDemand 」に設定されており、シーンに変更がない場合 、「ComputeCommand 」は繰り返し呼び出されません。新しいフレームのレンダリングをトリガーするシーンの変更が他にない場合でも、「ComputeCommand 」を繰り返し呼び出すには、レンダリングポリシーを「Qt3DRender::QRenderSettings::Always 」に設定する必要があります。

プロパティのドキュメント

runType : RunType

「compute」コマンドを毎フレーム実行するか、手動で実行するかを指定します。

「連続」に設定すると、Computeコマンドは毎フレーム実行されます。これがデフォルトの設定です。

「手動」に設定すると、Computeコマンドは指定されたフレーム数分実行された後、コンポーネントは自動的に無効化されます。

アクセス関数:

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

通知信号:

void runTypeChanged()

workGroupX : int

Xワークグループのサイズを指定します。

アクセス機能:

int workGroupX() const
void setWorkGroupX(int workGroupX)

通知信号:

void workGroupXChanged()

workGroupY : int

Yワークグループのサイズを指定します。

アクセス機能:

int workGroupY() const
void setWorkGroupY(int workGroupY)

通知信号:

void workGroupYChanged()

workGroupZ : int

Zワークグループのサイズを指定します。

アクセス機能:

int workGroupZ() const
void setWorkGroupZ(int workGroupZ)

通知信号:

void workGroupZChanged()

メンバー関数のドキュメント

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

このコンストラクタは、指定されたparent を使用して、新しいQt3DRender::QComputeCommand インスタンスを作成します。

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

最初のディメンションのワークグループを「workGroupX 」に設定します。

注: プロパティ `workGroupX`のセッター 関数です。

関連項目 :workGroupX()

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

第2次元のワークグループを「workGroupY 」に設定します。

注: プロパティ `workGroupY`のセッター 関数です。

関連項目:workGroupY()も参照してください 。

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

第3次元のワークグループを「workGroupZ 」に設定します。

注: プロパティ `workGroupZ`のセッター 関数です。

関連項目: workGroupZ()。

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

実行タイプが「手動」に設定されている場合、トリガーを呼び出すと、次のframeCount フレーム分についてコンピュートコマンドが実行されます。実行が完了すると、enabledプロパティはfalseに設定されます。

注:この スロットは オーバーロードされています。このスロットに接続するには:

// 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)

実行タイプが「手動」に設定されている場合、トリガーを呼び出すと、次のframeCount フレーム分について計算コマンドが実行されます。実行が完了すると、enabledプロパティはfalseに設定されます。以前に設定されていたワークグループのサイズは、workGroupX 、workGroupY 、workGroupZ によって上書きされます。

注:この スロットは オーバーロードされています。このスロットに接続するには:

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