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 |
プロパティ
- 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
レンダーパスの現在のパラメータのベクトルを返します。
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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。