Qt3DRender::QComputeCommand Class
class Qt3DRender::QComputeCommandQComponentは、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 |
| ステータス: | 非推奨 |
このクラスは非推奨です。新しいコードでの使用は強く推奨しません。
プロパティ
- runType : RunType
- workGroupX : int
- workGroupY : int
- workGroupZ : int
パブリック関数
| 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) |
シグナル
| void | runTypeChanged() |
| void | workGroupXChanged() |
| void | workGroupYChanged() |
| void | workGroupZChanged() |
詳細な説明
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.