QTechnique Class

class Qt3DRender::QTechnique

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

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

プロパティ

パブリック関数

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

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

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