Qt Quick 3D 그래픽 요구 사항
지원되는 그래픽 API, 버전 및 셰이딩 언어
Qt Quick 3D 는 Qt 6.0에서 Qt Quick 에서 지원하는 모든 그래픽 API 및 셰이딩 언어와 함께 작동하도록 지원합니다. 일부 경우, 특히 OpenGL 및 OpenGL ES의 경우 Qt Quick 보다 Qt Quick 3D 의 버전 요구 사항이 더 높을 수 있습니다.
- 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 렌더링 하드웨어 인터페이스 추상화를 사용합니다.
그래픽 API 선택하기
Qt Quick 3D 는 자체적으로 렌더링이나 창을 초기화하지 않고 QQuickWindow 또는 QQuickView 또는 Window QML 유형에 의존하므로 Qt Quick 씬 그래프에 적용되는 그래픽 API 선택과 관련된 모든 것이 Qt Quick 3D 에도 적용됩니다. 아래와 같이 특정 환경 변수를 설정하여 씬 그래프의 동작을 제어할 수 있습니다:
환경 변수 | 가능한 값 | 설명 |
---|---|---|
QSG_RHI_BACKEND | vulkan , metal , opengl , d3d11 , d3d12 | 특정 RHI 백엔드를 요청합니다. 기본적으로 타겟 그래픽 API는 이 변수나 동등한 C++ API로 재정의하지 않는 한 플랫폼에 따라 선택됩니다. 기본값은 현재 Windows의 경우 Direct3D 11, macOS의 경우 Metal, 그 외의 경우 OpenGL입니다. |
QSG_RHI_DEBUG_LAYER | 1 | 해당되는 경우(Vulkan, Direct3D) 그래픽 API 구현의 디버그 및/또는 유효성 검사 레이어를 활성화합니다(사용 가능한 경우). |
QSG_INFO | 1 | OpenGL 기반 렌더링 경로와 마찬가지로 이 옵션을 설정하면 Qt Quick 씬 그래프를 초기화할 때 시스템 정보를 인쇄할 수 있습니다. 이는 문제 해결에 매우 유용할 수 있습니다. |
항상 지정된 단일 그래픽 API로 실행하려는 애플리케이션은 C++뿐만 아니라 QSG_RHI_BACKEND
환경 변수를 통해 이를 요청할 수 있습니다. 예를 들어, QQuickWindow 을 구성하기 전에 main()
에서 다음 호출을 수행하면 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은 지원되지 않습니다.
© 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.