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.