QShaderProgramBuilder Class
class Qt3DRender::QShaderProgramBuilder読み込んだグラフからシェーダープログラムの内容を生成します。詳細...
ヘッダー | #include <QShaderProgramBuilder> |
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 : const 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 : const 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 : const 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 : const 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 : const 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 : const 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) |
© 2025 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.