QShaderProgramBuilder Class

class Qt3DRender::QShaderProgramBuilder

로드된 그래프에서 셰이더 프로그램 콘텐츠를 생성합니다. 더 보기...

Header: #include <QShaderProgramBuilder>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake: QT += 3drender
QML에서: ShaderProgramBuilder
상속합니다: Qt3DCore::QNode
상태: Deprecated

속성

공용 기능

QByteArray computeShaderCode() const
QUrl computeShaderGraph() const
QStringList enabledLayers() const
QByteArray fragmentShaderCode() const
QUrl fragmentShaderGraph() const
QByteArray geometryShaderCode() const
QUrl geometryShaderGraph() const
Qt3DRender::QShaderProgram *shaderProgram() const
QByteArray tessellationControlShaderCode() const
QUrl tessellationControlShaderGraph() const
QByteArray tessellationEvaluationShaderCode() const
QUrl tessellationEvaluationShaderGraph() const
QByteArray vertexShaderCode() const
QUrl vertexShaderGraph() const

공용 슬롯

void setComputeShaderGraph(const QUrl &computeShaderGraph)
void setEnabledLayers(const QStringList &layers)
void setFragmentShaderGraph(const QUrl &fragmentShaderGraph)
void setGeometryShaderGraph(const QUrl &geometryShaderGraph)
void setShaderProgram(Qt3DRender::QShaderProgram *program)
void setTessellationControlShaderGraph(const QUrl &tessellationControlShaderGraph)
void setTessellationEvaluationShaderGraph(const QUrl &tessellationEvaluationShaderGraph)
void setVertexShaderGraph(const QUrl &vertexShaderGraph)

신호

void computeShaderCodeChanged(const QByteArray &computeShaderCode)
void computeShaderGraphChanged(const QUrl &computeShaderGraph)
void enabledLayersChanged(const QStringList &layers)
void fragmentShaderCodeChanged(const QByteArray &fragmentShaderCode)
void fragmentShaderGraphChanged(const QUrl &fragmentShaderGraph)
void geometryShaderCodeChanged(const QByteArray &geometryShaderCode)
void geometryShaderGraphChanged(const QUrl &geometryShaderGraph)
void shaderProgramChanged(Qt3DRender::QShaderProgram *shaderProgram)
void tessellationControlShaderCodeChanged(const QByteArray &tessellationControlShaderCode)
void tessellationControlShaderGraphChanged(const QUrl &tessellationControlShaderGraph)
void tessellationEvaluationShaderCodeChanged(const QByteArray &tessellationEvaluationShaderCode)
void tessellationEvaluationShaderGraphChanged(const QUrl &tessellationEvaluationShaderGraph)
void vertexShaderCodeChanged(const QByteArray &vertexShaderCode)
void vertexShaderGraphChanged(const QUrl &vertexShaderGraph)

상세 설명

셰이더 프로그램 빌더는 셰이더 코드를 생성하는 데 사용되는 여러 가지 셰이더 그래프로 구성됩니다.

생성된 셰이더 코드의 캐시가 유지됩니다. 생성된 셰이더는 기본적으로 QStandardPaths::writableLocation(QStandardPaths::TempLocation))에 저장됩니다. 이 경로는 환경 변수 QT3D_WRITABLE_CACHE_PATH를 유효한 쓰기 가능한 경로로 설정하여 재정의할 수 있습니다.

캐시 사용은 환경 변수 QT3D_DISABLE_SHADER_CACHE를 설정하여 비활성화할 수 있습니다.

대부분의 경우 그래프에 대한 변경 사항은 Qt 3D 에서 감지되며 새 캐시 항목이 생성됩니다. 이 문제가 발생하지 않는 한 가지 경우는 그래프에 포함된 코드 스니펫이 변경된 경우입니다. 이 문제를 해결하려면 캐시 디렉터리를 지우거나 환경 변수 QT3D_REBUILD_SHADER_CACHE를 설정하여 셰이더 코드를 강제로 다시 생성할 수 있습니다.

속성 문서

[read-only] computeShaderCode : const QByteArray

계산 셰이더 코드를 생성합니다.

함수에 액세스합니다:

QByteArray computeShaderCode() const

알림 신호:

void computeShaderCodeChanged(const QByteArray &computeShaderCode)

computeShaderGraph : QUrl

이 셰이더 프로그램 빌더에서 사용하는 계산 셰이더 그래프에 대한 URL을 보유합니다.

함수에 액세스합니다:

QUrl computeShaderGraph() const
void setComputeShaderGraph(const QUrl &computeShaderGraph)

알림 신호:

void computeShaderGraphChanged(const QUrl &computeShaderGraph)

enabledLayers : QStringList

코드 생성 중에 이 빌더가 셰이더 그래프에서 활성화할 레이어 목록을 보유합니다.

함수에 액세스합니다:

QStringList enabledLayers() const
void setEnabledLayers(const QStringList &layers)

알림 신호:

void enabledLayersChanged(const QStringList &layers)

[read-only] fragmentShaderCode : const QByteArray

프래그먼트 셰이더 코드를 생성합니다.

함수에 액세스합니다:

QByteArray fragmentShaderCode() const

알림 신호:

void fragmentShaderCodeChanged(const QByteArray &fragmentShaderCode)

fragmentShaderGraph : QUrl

이 셰이더 프로그램 빌더에서 사용하는 조각 셰이더 그래프에 대한 URL을 보유합니다.

함수에 액세스합니다:

QUrl fragmentShaderGraph() const
void setFragmentShaderGraph(const QUrl &fragmentShaderGraph)

알림 신호:

void fragmentShaderGraphChanged(const QUrl &fragmentShaderGraph)

[read-only] geometryShaderCode : const QByteArray

지오메트리 셰이더 생성 코드를 보유합니다.

함수에 액세스합니다:

QByteArray geometryShaderCode() const

알림 신호:

void geometryShaderCodeChanged(const QByteArray &geometryShaderCode)

geometryShaderGraph : QUrl

이 셰이더 프로그램 빌더에서 사용하는 지오메트리 셰이더 그래프에 대한 URL을 보유합니다.

함수에 액세스합니다:

QUrl geometryShaderGraph() const
void setGeometryShaderGraph(const QUrl &geometryShaderGraph)

알림 신호:

void geometryShaderGraphChanged(const QUrl &geometryShaderGraph)

shaderProgram : Qt3DRender::QShaderProgram*

이 빌더가 코드를 생성하는 셰이더 프로그램을 보유합니다.

함수에 액세스합니다:

Qt3DRender::QShaderProgram *shaderProgram() const
void setShaderProgram(Qt3DRender::QShaderProgram *program)

알림 신호:

void shaderProgramChanged(Qt3DRender::QShaderProgram *shaderProgram)

[read-only] tessellationControlShaderCode : const QByteArray

테셀레이션 제어 셰이더 코드를 생성합니다.

함수에 액세스합니다:

QByteArray tessellationControlShaderCode() const

알림 신호:

void tessellationControlShaderCodeChanged(const QByteArray &tessellationControlShaderCode)

tessellationControlShaderGraph : QUrl

이 셰이더 프로그램 빌더에서 사용하는 테셀레이션 제어 셰이더 그래프에 대한 URL을 보유합니다.

함수에 액세스합니다:

QUrl tessellationControlShaderGraph() const
void setTessellationControlShaderGraph(const QUrl &tessellationControlShaderGraph)

알림 신호:

void tessellationControlShaderGraphChanged(const QUrl &tessellationControlShaderGraph)

[read-only] tessellationEvaluationShaderCode : const QByteArray

테셀레이션 평가 셰이더 코드를 생성합니다.

함수에 액세스합니다:

QByteArray tessellationEvaluationShaderCode() const

알림 신호:

void tessellationEvaluationShaderCodeChanged(const QByteArray &tessellationEvaluationShaderCode)

tessellationEvaluationShaderGraph : QUrl

이 셰이더 프로그램 빌더에서 사용하는 테셀레이션 평가 셰이더 그래프에 대한 URL을 보유합니다.

함수에 액세스합니다:

QUrl tessellationEvaluationShaderGraph() const
void setTessellationEvaluationShaderGraph(const QUrl &tessellationEvaluationShaderGraph)

알림 신호:

void tessellationEvaluationShaderGraphChanged(const QUrl &tessellationEvaluationShaderGraph)

[read-only] vertexShaderCode : const QByteArray

버텍스 셰이더 생성 코드를 보유합니다.

함수에 액세스합니다:

QByteArray vertexShaderCode() const

알림 신호:

void vertexShaderCodeChanged(const QByteArray &vertexShaderCode)

vertexShaderGraph : QUrl

이 셰이더 프로그램 빌더에서 사용하는 버텍스 셰이더 그래프에 대한 URL을 보유합니다.

함수에 액세스합니다:

QUrl vertexShaderGraph() const
void setVertexShaderGraph(const QUrl &vertexShaderGraph)

알림 신호:

void vertexShaderGraphChanged(const QUrl &vertexShaderGraph)

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