このページでは

Qt3DRender::QShaderProgramBuilder Class

class Qt3DRender::QShaderProgramBuilder

読み込まれたグラフからシェーダープログラムの内容を生成します。詳細...

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

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

プロパティ

パブリック関数

QByteArray computeShaderCode() const
QUrl computeShaderGraph() const
QStringList enabledLayers() const
QByteArray fragmentShaderCode() const
QUrl fragmentShaderGraph() const
QByteArray geometryShaderCode() const
QUrl geometryShaderGraph() const
Qt3DRender::QShaderProgram *shaderProgram() const
QByteArray tessellationControlShaderCode() const
QUrl tessellationControlShaderGraph() const
QByteArray tessellationEvaluationShaderCode() const
QUrl tessellationEvaluationShaderGraph() const
QByteArray vertexShaderCode() const
QUrl vertexShaderGraph() const

パブリックスロット

void setComputeShaderGraph(const QUrl &computeShaderGraph)
void setEnabledLayers(const QStringList &layers)
void setFragmentShaderGraph(const QUrl &fragmentShaderGraph)
void setGeometryShaderGraph(const QUrl &geometryShaderGraph)
void setShaderProgram(Qt3DRender::QShaderProgram *program)
void setTessellationControlShaderGraph(const QUrl &tessellationControlShaderGraph)
void setTessellationEvaluationShaderGraph(const QUrl &tessellationEvaluationShaderGraph)
void setVertexShaderGraph(const QUrl &vertexShaderGraph)

シグナル

void computeShaderCodeChanged(const QByteArray &computeShaderCode)
void computeShaderGraphChanged(const QUrl &computeShaderGraph)
void enabledLayersChanged(const QStringList &layers)
void fragmentShaderCodeChanged(const QByteArray &fragmentShaderCode)
void fragmentShaderGraphChanged(const QUrl &fragmentShaderGraph)
void geometryShaderCodeChanged(const QByteArray &geometryShaderCode)
void geometryShaderGraphChanged(const QUrl &geometryShaderGraph)
void shaderProgramChanged(Qt3DRender::QShaderProgram *shaderProgram)
void tessellationControlShaderCodeChanged(const QByteArray &tessellationControlShaderCode)
void tessellationControlShaderGraphChanged(const QUrl &tessellationControlShaderGraph)
void tessellationEvaluationShaderCodeChanged(const QByteArray &tessellationEvaluationShaderCode)
void tessellationEvaluationShaderGraphChanged(const QUrl &tessellationEvaluationShaderGraph)
void vertexShaderCodeChanged(const QByteArray &vertexShaderCode)
void vertexShaderGraphChanged(const QUrl &vertexShaderGraph)

詳細な説明

シェーダープログラムビルダーは、シェーダーコードを生成するために使用されるいくつかの異なるシェーダーグラフで構成されています。

生成されたシェーダーコードのキャッシュが管理されます。生成されたシェーダーは、デフォルトではQStandardPaths::writableLocation(QStandardPaths::TempLocation)) に保存されます。このパスは、環境変数 QT3D_WRITABLE_CACHE_PATH を有効な書き込み可能なパスに設定することで上書きできます。

環境変数 QT3D_DISABLE_SHADER_CACHE を設定することで、キャッシュの使用を無効にできます。

ほとんどの場合、グラフに加えられた変更はQt 3D によって検出され、新しいキャッシュエントリが生成されます。 これが行われないケースの一つは、グラフに含まれるコードスニペットが変更された場合です。これを回避するには、キャッシュディレクトリをクリアするか、環境変数 QT3D_REBUILD_SHADER_CACHE を設定して、シェーダーコードの再生成を強制することができます。

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

[read-only] computeShaderCode : QByteArray

コンピュートシェーダーのコードを生成するための機能を保持しています。

アクセス関数:

QByteArray computeShaderCode() const

通知シグナル:

void computeShaderCodeChanged(const QByteArray &computeShaderCode)

computeShaderGraph : QUrl

このシェーダープログラムビルダーで使用されるコンピュートシェーダーグラフへのURLを保持します。

アクセス関数:

QUrl computeShaderGraph() const
void setComputeShaderGraph(const QUrl &computeShaderGraph)

通知シグナル:

void computeShaderGraphChanged(const QUrl &computeShaderGraph)

enabledLayers : QStringList

コード生成時に、このビルダーがシェーダーグラフ上で有効化するレイヤーのリストを保持します。

アクセス関数:

QStringList enabledLayers() const
void setEnabledLayers(const QStringList &layers)

通知シグナル:

void enabledLayersChanged(const QStringList &layers)

[read-only] fragmentShaderCode : QByteArray

フラグメントシェーダーコードを生成するためのコードを保持します。

アクセス関数:

QByteArray fragmentShaderCode() const

通知シグナル:

void fragmentShaderCodeChanged(const QByteArray &fragmentShaderCode)

fragmentShaderGraph : QUrl

このシェーダープログラムビルダーで使用されるフラグメントシェーダーグラフへのURLを保持します。

アクセス関数:

QUrl fragmentShaderGraph() const
void setFragmentShaderGraph(const QUrl &fragmentShaderGraph)

通知シグナル:

void fragmentShaderGraphChanged(const QUrl &fragmentShaderGraph)

[read-only] geometryShaderCode : QByteArray

ジオメトリシェーダーコードを生成するための機能を保持しています。

アクセス関数:

QByteArray geometryShaderCode() const

通知シグナル:

void geometryShaderCodeChanged(const QByteArray &geometryShaderCode)

geometryShaderGraph : QUrl

このシェーダープログラムビルダーで使用されるジオメトリシェーダーグラフへのURLを保持します。

アクセス関数:

QUrl geometryShaderGraph() const
void setGeometryShaderGraph(const QUrl &geometryShaderGraph)

通知シグナル:

void geometryShaderGraphChanged(const QUrl &geometryShaderGraph)

shaderProgram : Qt3DRender::QShaderProgram*

このビルダーがコードを生成する対象となるシェーダープログラムを保持します。

アクセス関数:

Qt3DRender::QShaderProgram *shaderProgram() const
void setShaderProgram(Qt3DRender::QShaderProgram *program)

通知シグナル:

void shaderProgramChanged(Qt3DRender::QShaderProgram *shaderProgram)

[read-only] tessellationControlShaderCode : QByteArray

テッセレーション生成制御シェーダーコードを保持します。

アクセス関数:

QByteArray tessellationControlShaderCode() const

通知シグナル:

void tessellationControlShaderCodeChanged(const QByteArray &tessellationControlShaderCode)

tessellationControlShaderGraph : QUrl

このシェーダープログラムビルダーで使用されるテッセレーション制御シェーダーグラフへのURLを保持します。

アクセス関数:

QUrl tessellationControlShaderGraph() const
void setTessellationControlShaderGraph(const QUrl &tessellationControlShaderGraph)

通知シグナル:

void tessellationControlShaderGraphChanged(const QUrl &tessellationControlShaderGraph)

[read-only] tessellationEvaluationShaderCode : QByteArray

テッセレーション生成の評価シェーダーコードを保持します。

アクセス関数:

QByteArray tessellationEvaluationShaderCode() const

通知シグナル:

void tessellationEvaluationShaderCodeChanged(const QByteArray &tessellationEvaluationShaderCode)

tessellationEvaluationShaderGraph : QUrl

このシェーダープログラムビルダーで使用されるテッセレーション評価シェーダーグラフへのURLを保持します。

アクセス関数:

QUrl tessellationEvaluationShaderGraph() const
void setTessellationEvaluationShaderGraph(const QUrl &tessellationEvaluationShaderGraph)

通知シグナル:

void tessellationEvaluationShaderGraphChanged(const QUrl &tessellationEvaluationShaderGraph)

[read-only] vertexShaderCode : QByteArray

頂点シェーダーコードの生成処理を格納します。

アクセス関数:

QByteArray vertexShaderCode() const

通知シグナル:

void vertexShaderCodeChanged(const QByteArray &vertexShaderCode)

vertexShaderGraph : QUrl

このシェーダープログラムビルダーで使用される頂点シェーダーグラフへのURLを保持します。

アクセス関数:

QUrl vertexShaderGraph() const
void setVertexShaderGraph(const QUrl &vertexShaderGraph)

通知シグナル:

void vertexShaderGraphChanged(const QUrl &vertexShaderGraph)

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