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
ステータス非推奨

プロパティ

パブリック機能

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::QShaderProgramQt3DRender::QFilterKey オブジェクトのリスト、Qt3DRender::QRenderState オブジェクトのリスト、Qt3DRender::QParameter オブジェクトのリストから構成されます。

QRenderPass は、参照されているQFilterKey ノードの少なくとも1つがQRenderPassFilterQFilterKey ノードのいずれかと一致する場合、またはQFilterKey ノードが指定されておらず、FrameGraph にQRenderPassFilter が存在しない場合に、与えられたQRenderStateQParameter ノードを使用して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 状態オブジェクトのリストを返す。

関連する非会員

[alias] ParameterList

Qt3DRender::QParameter パラメーターのリスト。

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