QRenderPass Class
class Qt3DRender::QRenderPassレンダーパスをカプセル化します。詳細...
ヘッダ | #include <QRenderPass> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
qmake | QT += 3drender |
QML で | RenderPass |
を継承しています: | Qt3DCore::QNode |
ステータス | 非推奨 |
プロパティ
- shaderProgram : Qt3DRender::QShaderProgram*
パブリック機能
QRenderPass(Qt3DCore::QNode *parent = nullptr) | |
void | addFilterKey(Qt3DRender::QFilterKey *filterKey) |
void | addParameter(Qt3DRender::QParameter *parameter) |
void | addRenderState(Qt3DRender::QRenderState *state) |
QList<Qt3DRender::QFilterKey *> | filterKeys() const |
QList<Qt3DRender::QParameter *> | parameters() const |
void | removeFilterKey(Qt3DRender::QFilterKey *filterKey) |
void | removeParameter(Qt3DRender::QParameter *parameter) |
void | removeRenderState(Qt3DRender::QRenderState *state) |
QList<Qt3DRender::QRenderState *> | renderStates() const |
Qt3DRender::QShaderProgram * | shaderProgram() const |
パブリックスロット
void | setShaderProgram(Qt3DRender::QShaderProgram *shaderProgram) |
シグナル
void | shaderProgramChanged(Qt3DRender::QShaderProgram *shaderProgram) |
関連する非会員
詳細説明
Qt3DRender::QRenderPass は、Qt3DRender::QTechnique によって使用される単一のレンダリング パス(シェーダ プログラム実行のインスタンス)を指定します。レンダーパスは、Qt3DRender::QShaderProgram とQt3DRender::QFilterKey オブジェクトのリスト、Qt3DRender::QRenderState オブジェクトのリスト、Qt3DRender::QParameter オブジェクトのリストから構成されます。
QRenderPass は、参照されているQFilterKey ノードの少なくとも1つがQRenderPassFilter のQFilterKey ノードのいずれかと一致する場合、またはQFilterKey ノードが指定されておらず、FrameGraph にQRenderPassFilter が存在しない場合に、与えられたQRenderState とQParameter ノードを使用してQShaderProgram を実行します。
QRenderPass がQParameter を定義した場合、実行時にパスに関連付けられたQTechnique,QEffect,QMaterial,QTechniqueFilter,QRenderPassFilter のいずれかに存在すれば、同じ名前のQParameter によって上書きされます。これでも、まともなデフォルト値を定義するのに役立つ。
レンダリング時に、FrameGraphの各リーフノードに対して、FrameGraphブランチ内のすべてのQRenderStateSet ノードによって定義された状態を累積することによって、ベースレンダリング状態が記録されます。各QRenderPassは、自身のQRenderState ノードを指定することで、この基本レンダリング状態をオーバーロードすることができます。
// Create the render passes QRenderPass *pass = new QRenderPass(); // Create shader program QShaderProgram *glShader = new QShaderProgram(); // Set the shader on the render pass pass->setShaderProgram(glShader); // Create a FilterKey QFilterKey *filterKey = new QFilterKey(); filterKey->setName(QStringLiteral("name")); fitlerKey->setValue(QStringLiteral("zFillPass")); // Add the FilterKey to the pass pass->addFilterKey(filterKey); // Create a QParameter QParameter *colorParameter = new QParameter(QStringLiteral("color"), QColor::fromRgbF(0.0f, 0.0f, 1.0f, 1.0f)); // Add parameter to pass pass->addParameter(colorParameter); // Create a QRenderState QDepthTest *depthTest = new QDepthTest(); // Add the render state to the pass pass->addRenderState(depthTest);
QRenderPassFilter,QFilterKey,QParameter,QRenderState,QEffect,QTechniqueも参照してください 。
プロパティ・ドキュメント
shaderProgram : Qt3DRender::QShaderProgram*
このレンダーパスに使用するシェーダープログラムを指定します。
アクセス関数:
Qt3DRender::QShaderProgram * | shaderProgram() const |
void | setShaderProgram(Qt3DRender::QShaderProgram *shaderProgram) |
通知シグナル:
void | shaderProgramChanged(Qt3DRender::QShaderProgram *shaderProgram) |
メンバ関数ドキュメント
[explicit]
QRenderPass::QRenderPass(Qt3DCore::QNode *parent = nullptr)
指定されたparent で新しい QRenderPass を構築します。
void QRenderPass::addFilterKey(Qt3DRender::QFilterKey *filterKey)
Qt3DRender::QRenderPass ローカルフィルターのキーにfilterKey を追加する。
void QRenderPass::addParameter(Qt3DRender::QParameter *parameter)
レンダーパスのパラメータにparameter 。
void QRenderPass::addRenderState(Qt3DRender::QRenderState *state)
レンダリングパスにレンダーstate を追加する。つまり、レンダリング時にパスが実行されると、Qt3DRender::QRenderPass によってローカルに定義された状態によって、グローバルに設定されたレンダリング状態が変更されます。
注意: パスの中でQt3DRender::QRenderState を定義しないと、パスは、与えられた FrameGraph ブランチの実行パスに対して、グローバルに設定されたレンダリング状態を使用することになります。
QList<Qt3DRender::QFilterKey *> QRenderPass::filterKeys() const
Qt3DRender::QRenderPass のフィルターキーを構成するQt3DRender::QFilterKey キーオブジェクトのリストを返す。
QList<Qt3DRender::QParameter *> QRenderPass::parameters() const
レンダーパスの現在のパラメータを vector で返します。
void QRenderPass::removeFilterKey(Qt3DRender::QFilterKey *filterKey)
Qt3DRender::QRenderPass ローカルフィルターのキーからfilterKey を削除する。
void QRenderPass::removeParameter(Qt3DRender::QParameter *parameter)
レンダーパスのパラメータからparameter を削除する。
void QRenderPass::removeRenderState(Qt3DRender::QRenderState *state)
Qt3DRender::QRenderPass ローカルレンダーステートからstate を削除する。
QList<Qt3DRender::QRenderState *> QRenderPass::renderStates() const
Qt3DRender::QRenderPass のレンダリング状態を構成するQt3DRender::QRenderState 状態オブジェクトのリストを返す。
© 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.