Qt Quick 3D 그래픽 요구 사항
지원되는 그래픽 API, 버전 및 셰이딩 언어
Qt Quick 3D Qt 6.0의 ` Qt Quick `에서 지원하는 모든 그래픽 API 및 셰이딩 언어를 지원합니다. 일부 경우, 특히 OpenGL 및 OpenGL ES의 경우, ` Qt Quick 3D `의 버전 요구 사항이 ` Qt Quick`보다 높을 수 있습니다.
- OpenGL 3.0 이상; OpenGL 3.3 이상을 강력히 권장합니다
- OpenGL ES 2.0 이상; OpenGL ES 3.0 이상을 적극 권장합니다
- Direct3D 11.1
- Direct3D 12
- Vulkan 1.0 이상
- Metal 1.2 이상
셰이더 파이프라인은 Qt 6의 표준 접근 방식을 기반으로 합니다. Vulkan 호환 GLSL 셰이더 코드는 SPIR-V로 컴파일된 후, GLSL, HLSL 및 MSL 소스 코드로 변환됩니다. 자세한 내용은 Qt Shader Tools 모듈 문서를 참조하십시오.
Qt Quick 3D 는 위에서 언급한 그래픽 API 중 어느 것과도 직접 연동되지 않습니다. 대신, Qt Quick 와 유사하게 Qt Rendering Hardware Interface 추상화를 사용합니다.
그래픽 API 선택
Qt Quick 3D 는 자체적으로 렌더링이나 창을 초기화하지 않고, 대신 ` QQuickWindow ` 또는 ` QQuickView ` 또는 ` Window ` QML 유형에 의존하므로, `Qt Quick ` 씬 그래프에 적용되는 그래픽 API 선택과 관련된 모든 사항은 ` Qt Quick 3D `에도 동일하게 적용됩니다. 아래에 나열된 특정 환경 변수를 설정하여 씬 그래프의 동작을 제어할 수 있습니다:
| 환경 변수 | 사용 가능한 값 | 설명 |
|---|---|---|
QSG_RHI_BACKEND | vulkan, metal, opengl, d3d11, d3d12 | 특정 RHI 백엔드를 요청합니다. 이 변수나 이에 상응하는 C++ API로 재정의되지 않는 한, 기본적으로 플랫폼에 따라 대상 그래픽 API가 선택됩니다. 현재 기본값은 Windows의 경우 Direct3D 11, macOS의 경우 Metal, 그 외의 경우 OpenGL입니다. |
QSG_RHI_DEBUG_LAYER | 1 | 해당되는 경우(Vulkan, Direct3D), 사용 가능한 그래픽 API 구현체의 디버그 및/또는 유효성 검사 레이어를 활성화합니다. |
QSG_INFO | 1 | OpenGL 기반 렌더링 경로와 마찬가지로, 이 변수를 설정하면 ` Qt Quick ` 장면 그래프를 초기화할 때 시스템 정보를 출력할 수 있습니다. 이는 문제 해결에 매우 유용할 수 있습니다. |
항상 특정 그래픽 API 하나로만 실행되기를 원하는 애플리케이션은 QSG_RHI_BACKEND 환경 변수를 통해, 또는 C++을 사용하여 이를 요청할 수 있습니다. 예를 들어, main() 파일의 초반부에 QQuickWindow 객체를 생성하기 전에 다음 호출을 수행하면 Vulkan 사용이 강제 적용됩니다(그렇지 않으면 오류가 발생합니다).
QQuickWindow::setGraphicsApi(QSGRendererInterface::Vulkan);참고: Qt Quick 의 소프트웨어 기반 적용은 3D 콘텐츠에 대해 지원되지 않습니다.
OpenGL 관련 사항
잘 작성된 Qt Quick 3D 애플리케이션은 main() 함수에서 QQuick3D::idealSurfaceFormat()을 호출하고, 반환된 QSurfaceFormat 를 기본값으로 사용해야 합니다.
QSurfaceFormat::setDefaultFormat(QQuick3D::idealSurfaceFormat());OpenGL 이외의 그래픽 API를 사용할 경우 이 호출은 아무런 영향을 미치지 않지만, API가 OpenGL일 때는 Qt Quick 3D 의 요구 사항에 가장 적합한 OpenGL 컨텍스트가 생성되므로 매우 유용합니다.
OpenGL ES 2.0 지원
Qt Quick 3D OpenGL ES 2.0에서도 실행이 가능하지만, 지원되는 기능 세트가 상당히 제한적입니다. 다음 목록은 사용할 수 없거나 제대로 작동하지 않는 일부 기능을 포함하고 있습니다:
- 이미지 기반 조명, 라이트 프로브, 스카이박스
- 섀도 매핑
- 스크린 스페이스 앰비언트 오클루전
- 멀티샘플링
- 특정 후처리 효과
- GLSL ES 100에는 없는 GLSL 기능을 사용하는 셰이더를 활용하는 사용자 정의 머티리얼
- 순서 독립적 투명도
참고: 웹어셈블리 플랫폼에서Qt Quick 3D 를 사용하려면 OpenGL ES 3.0 / WebGL 2가 필요합니다. OpenGL ES 2.0 / WebGL 1은 지원되지 않습니다.
© 2026 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.