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
QML에서: RenderPass
상속합니다: Qt3DCore::QNode
상태: 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::QRenderPassQt3DRender::QTechnique 에서 사용하는 단일 렌더링 패스(셰이더 프로그램 실행 인스턴스)를 지정합니다. 렌더 패스는 Qt3DRender::QShaderProgramQt3DRender::QFilterKey 객체 목록, Qt3DRender::QRenderState 객체 목록, Qt3DRender::QParameter 객체 목록으로 구성됩니다.

참조되는 QFilterKey 노드 중 하나 이상이 QRenderPassFilterQFilterKey 노드와 일치하거나 QFilterKey 노드가 지정되지 않고 QRenderPassFilter 이 프레임그래프에 존재하지 않는 경우 QRenderPass는 지정된 QRenderStateQParameter 노드를 사용하여 QShaderProgram 을 실행합니다.

QRenderPass가 QParameter 를 정의하는 경우 런타임에 패스와 연결된 QTechnique, QEffect, QMaterial, QTechniqueFilter, QRenderPassFilter 중 하나에 존재하는 경우 같은 이름의 QParameter 으로 재정의됩니다. 이 방법은 여전히 정상적인 기본값을 정의하는 데 유용할 수 있습니다.

렌더링 시 프레임그래프의 각 리프 노드에 대해 기본 렌더링 상태는 프레임그래프 브랜치의 모든 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 를 정의하지 않으면 패스는 주어진 프레임그래프 분기 실행 경로에 대해 전역으로 설정된 렌더링 상태를 사용하게 됩니다.

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 상태 객체 목록을 반환합니다.

관련 비회원

[alias] ParameterList

Qt3DRender::QParameter 매개변수 목록입니다.

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