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
QML에서: Technique
상속합니다: Qt3DCore::QNode
상태: 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::QTechniqueQt3DRender::QRenderPass 객체, Qt3DRender::QFilterKey 객체, Qt3DRender::QParameter 객체 및 Qt3DRender::QGraphicsApiFilter 객체 집합을 지정하여 주어진 그래픽 API가 렌더링할 수 있는 렌더링 기법을 정의합니다. 필터 키는 Qt3DRender::QTechniqueFilter 에서 프레임그래프의 특정 부분에서 특정 기법을 선택하는 데 사용됩니다. QTechnique에 정의된 QParameterQRenderPass 에 정의된 (같은 이름의) 파라미터를 재정의하지만 QRenderPassFilter, QTechniqueFilter, QMaterialQEffect 의 파라미터에 의해 재정의됩니다.

여러 버전의 그래픽 API를 대상으로 하는 QEffect 을 만들 때, 각각 대상 GL 버전 중 하나와 일치하도록 graphicsApiFilter 이 설정된 여러 QTechnique 노드를 만드는 것이 유용합니다. 런타임에 Qt3D 렌더러는 지원되는 그래픽 API 버전과 (지정된 경우) 프레임그래프에서 지정된 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);

QEffect, QRenderPass, QTechniqueFilter참조하십시오 .

속성 문서

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