QRenderPass Class

class Qt3DRender::QRenderPass

レンダーパスをカプセル化します。詳細...

Header: #include <QRenderPass>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake: QT += 3drender
In QML: RenderPass
Inherits: Qt3DCore::QNode
Status: Deprecated

プロパティ

パブリック関数

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

レンダーパスの現在のパラメータのベクトルを返します。

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 状態オブジェクトのリストを返します。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。