QTechnique Class

class Qt3DRender::QTechnique

テクニックをカプセル化します。詳細...

ヘッダー #include <QTechnique>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake QT += 3drender
QML で Technique
を継承しています: Qt3DCore::QNode
ステータス非推奨

プロパティ

パブリック機能

void addFilterKey(Qt3DRender::QFilterKey *filterKey)
void addParameter(Qt3DRender::QParameter *parameter)
void addRenderPass(Qt3DRender::QRenderPass *pass)
QList<Qt3DRender::QFilterKey *> filterKeys() const
Qt3DRender::QGraphicsApiFilter *graphicsApiFilter()
const Qt3DRender::QGraphicsApiFilter *graphicsApiFilter() const
QList<Qt3DRender::QParameter *> parameters() const
void removeFilterKey(Qt3DRender::QFilterKey *filterKey)
void removeParameter(Qt3DRender::QParameter *parameter)
void removeRenderPass(Qt3DRender::QRenderPass *pass)
QList<Qt3DRender::QRenderPass *> renderPasses() const

詳細説明

Qt3DRender::QTechnique は、Qt3DRender::QRenderPass オブジェクト、Qt3DRender::QFilterKey オブジェクト、Qt3DRender::QParameter オブジェクト、Qt3DRender::QGraphicsApiFilter の集合を指定し、これらの集合が、与えられたグラフィックス API がレンダリングできるレンダリング技法を定義します。フィルタキーは、Qt3DRender::QTechniqueFilter によって、FrameGraph の特定の部分で特定のテクニックを選択するために使用されます。QTechnique に定義されたQParameter は、QRenderPass で定義されたパラメータ(同名)をオーバーライドしますが、QRenderPassFilterQTechniqueFilterQMaterialQEffect のパラメータによってオーバーライドされます。

複数のバージョンのグラフィックス API をターゲットとするQEffect を作成する場合、graphicsApiFilter がターゲットとする GL バージョンの 1 つに一致するように設定された複数の QTechnique ノードを作成すると便利です。実行時に、Qt3D レンダラーは、どのグラフィックス API バージョンがサポートされているか、および(指定されている場合)FrameGraph 内で指定されたQTechniqueFilter を満たすQFilterKey ノードに基づいて、最も適切な QTechnique を選択します。

注意: OpenGL をレンダリングのグラフィック API として使用する場合、Qt3D は実行時にQSurfaceFormat::defaultFormat() によって返されるQSurfaceFormat に依存して、使用可能な最も適切な GL バージョンを決定します。QSurfaceFormat をカスタマイズする必要がある場合は、QSurfaceFormat::setDefaultFormat() を忘れずに適用してください。ビューにQSurfaceFormat を設定しても、Qt3D 関連のレンダリングには影響しません。

注意: QTechnique ノードを無効にすることはできません。

QTechnique *gl3Technique = new QTechnique();

// Create the render passes
QRenderPass *firstPass = new QRenderPass();
QRenderPass *secondPass = new QRenderPass();

// Add the passes to the technique
gl3Technique->addRenderPass(firstPass);
gl3Technique->addRenderPass(secondPass);

// Set the targeted GL version for the technique
gl3Technique->graphicsApiFilter()->setApi(QGraphicsApiFilter::OpenGL);
gl3Technique->graphicsApiFilter()->setMajorVersion(3);
gl3Technique->graphicsApiFilter()->setMinorVersion(1);
gl3Technique->graphicsApiFilter()->setProfile(QGraphicsApiFilter::CoreProfile);

// Create a FilterKey
QFilterKey *filterKey = new QFilterKey();
filterKey->setName(QStringLiteral("name"));
fitlerKey->setValue(QStringLiteral("zFillPass"));

// Add the FilterKey to the Technique
gl3Technique->addFilterKey(filterKey);

// Create a QParameter
QParameter *colorParameter = new QParameter(QStringLiteral("color"), QColor::fromRgbF(0.0f, 0.0f, 1.0f, 1.0f));

// Add parameter to technique
gl3Technique->addParameter(colorParameter);

QEffectQRenderPassQTechniqueFilterも参照して ください。

プロパティーのドキュメント

[read-only] graphicsApiFilter : Qt3DRender::QGraphicsApiFilter* const

使用するグラフィックス API フィルタを指定します。

関数にアクセスします:

Qt3DRender::QGraphicsApiFilter *graphicsApiFilter()
const Qt3DRender::QGraphicsApiFilter *graphicsApiFilter() const

メンバ関数ドキュメント

void QTechnique::addFilterKey(Qt3DRender::QFilterKey *filterKey)

Qt3DRender::QTechnique ローカル・フィルター・キーにfilterKey を追加。

void QTechnique::addParameter(Qt3DRender::QParameter *parameter)

テクニックのパラメータにparameter を追加する。

void QTechnique::addRenderPass(Qt3DRender::QRenderPass *pass)

テクニックにpass を追加する。

QList<Qt3DRender::QFilterKey *> QTechnique::filterKeys() const

Qt3DRender::QTechnique のフィルターキーを構成する Qt3DCore::QFilterKey キーオブジェクトのリストを返します。

QList<Qt3DRender::QParameter *> QTechnique::parameters() const

テクニックの現在のパラメータのベクトルを返す

void QTechnique::removeFilterKey(Qt3DRender::QFilterKey *filterKey)

Qt3DRender::QTechnique ローカルフィルターのキーからfilterKey を削除する。

void QTechnique::removeParameter(Qt3DRender::QParameter *parameter)

テクニックのパラメータからparameter を削除する。

void QTechnique::removeRenderPass(Qt3DRender::QRenderPass *pass)

技からpass を削除する。

QList<Qt3DRender::QRenderPass *> QTechnique::renderPasses() const

テクニックに含まれるレンダーパスのリストを返します。

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