이 페이지에서

변경 사항 Qt Quick 3D

Qt 6의 변경 사항은 프레임워크를 더 효율적이고 사용하기 쉽게 만들기 위한 의도적인 노력의 결과입니다.

저희는 각 릴리스에서 모든 공개 API에 대해 바이너리 및 소스 호환성을 유지하기 위해 노력하고 있습니다. 하지만 Qt를 더 나은 프레임워크로 만들기 위한 노력의 일환으로 일부 변경은 불가피했습니다. Qt Quick 3D API의 일부가 대폭 수정되었습니다.

이 항목에서는 Qt Quick 3D 의 이러한 변경 사항을 요약하고, 이를 처리하기 위한 지침을 제공합니다.

RHI

Qt 6.0부터는 Qt Quick 의 기본 구현이 항상 QtGui 모듈에서 제공하는 그래픽 추상화 계층인 Qt Rendering Hardware Interface(RHI)를 통해 렌더링합니다. 이는 Qt 5와 달리, 장면 그래프에서 직접 OpenGL 호출을 수행하지 않음을 의미합니다. 대신, RHI API를 사용하여 리소스 및 드로우 명령을 기록하면, RHI가 이 명령 스트림을 OpenGL, Vulkan, Metal 또는 Direct 3D 호출로 변환합니다. 셰이더 처리도 셰이더 코드를 한 번 작성하고 SPIR-V로 컴파일한 다음, 다양한 그래픽 API에 적합한 언어로 변환함으로써 통합되었습니다.

Qt Quick 3D 의 경우, Qt 6.0에서 가장 큰 변화는 공통 렌더링 하드웨어 인터페이스(RHI)로의 마이그레이션으로, 이를 통해 Qt Quick 3D 가 OpenGL 및 OpenGL ES 외에도 Direct3D, Metal, Vulkan에서 실행될 수 있게 되었습니다.

Qt Quick 이로써 Qt Quick 3D 는 이 측면에서 완전히 통합되었습니다. 예를 들어, 렌더링에 사용할 그래픽 API를 선택하는 등 RHI와 관련된 모든 구성 설정은 두 버전 모두에 적용됩니다.

자세한 내용은 Qt Quick 3D 그래픽 요구 사항을 참조하십시오.

기타 API 변경 사항

QML 임포트 버전

Qt 6.0부터 Qml 임포트 문에 사용되는 버전 번호는 Qt 버전 번호와 동일합니다. 이제 버전을 지정하지 않고 모듈을 임포트할 수도 있으며, 이 경우 모듈의 최신 버전이 임포트됩니다.

조명

Light brightness 이제 에너지 배수를 나타내며 기본값은 1.0입니다. 반면 Qt 5에서는 백분율 값을 사용했으며 기본값은 100이었습니다. 실질적으로 이는 모든 brightness 값을 100으로 나누어야 함을 의미합니다.

SceneEnvironment.probeBrightness 는 probeExposure 로 이름이 변경되었으며, 기본값이 1.0인 배율로 재정의되었습니다. 즉, 모든 probeBrightness 값은 probeExposure 로 이름을 변경하고 100으로 나누어야 합니다.

AreaLight 성능상의 이유로 제거되었습니다. 대부분의 경우 Qt Quick 3D 5.15에 추가된 SpotLight 로 대체할 수 있습니다.

사용자 정의 머티리얼

6.0 버전에서 사용자 정의 머티리얼 API가 완전히 개편되었습니다. 즉, 기존의 모든 사용자 정의 머티리얼을 대폭 재작성해야 합니다. 새로운 API에 대한 자세한 내용은 CustomMaterial 문서를 참조하십시오.

후처리 효과

Effect 이 기능이 강화되어, 구조와 내장 키워드 측면에서 CustomMaterial 가 지원하는 것과 매우 유사한 셰이더 코드를 사용할 수 있게 되었습니다. 즉, 사용자 정의 셰이더 코드가 포함된 기존 효과는 Qt 6.0에서 작동하기 전에 마이그레이션되어야 합니다. 자세한 내용은 Effect 문서를 참조하십시오.

Principled Material

PrincipledMaterial QML 유형은 Qt Quick 6.0에서 대폭 개선되어, 이제 물리 기반 렌더링(Physically Based Rendering)의 원칙을 더욱 충실히 따릅니다. 이제 가져온 모델은 머티리얼의 속성을 변경하지 않아도 올바르게 렌더링됩니다. 기존 머티리얼은 이전의 부정확성을 보정하기 위해 적용되었던 조정 사항을 제거하기 위해 변경되어야 합니다.

PrincipledMaterial Qt 5에서PrincipledMaterial Qt 6에서

Qt 5의 ‘principled’ 재질을 적용하여 렌더링된 찻주전자

Qt 6의 ‘principled’ 재질을 적용하여 렌더링된 찻주전자

일부 속성의 기본값이 변경되었습니다:

  • metalness 기본값이 1에서 0으로 변경됩니다.
  • specularAmount 기본값이 0 대신 0.5로 변경됩니다.

기본 Material

일부 속성의 기본값이 변경되었습니다:

사전 정의된 머티리얼

QtQuick3D 6.0에는 사전 정의된 머티리얼이 포함되어 있지 않습니다. 향후 릴리스에서 추가될 머티리얼은 기존 버전의 머티리얼과 호환되지 않을 가능성이 높습니다. Materials 임포트는 더 이상 존재하지 않습니다. ( CustomMaterial 타입은 기본 QtQuick3D 임포트로 이동되었습니다.)

다음은 Qt 6.0에서 제거된 재료 Qml 유형입니다:

  • AluminumAnodizedEmissiveMaterial
  • AluminumAnodizedMaterial
  • AluminumBrushedMaterial
  • AluminumEmissiveMaterial
  • AluminumMaterial
  • 구리 소재
  • 무광 유리 소재
  • 무광 유리 단일 패스 소재
  • 유리 소재
  • 유리 굴절 소재
  • 종이 예술 소재
  • 종이 사무용 소재
  • 플라스틱 구조적 적색 발광 소재
  • 플라스틱 구조화 적색 소재
  • 강철 밀링 처리된 동심 소재

테셀레이션 및 변위 맵

임베디드 하드웨어 지원에 중점을 두게 됨에 따라 모델 테셀레이션 모드가 제거되었습니다. 또한, 그 결과 머티리얼에서 변위 맵 지원이 제거되었습니다. custom material 를 사용하면 유사한 효과를 얻을 수 있습니다.

Qt Quick Item3D ` `의 자식 요소로서 Node

구문상으로는 동일하지만, 2D 자식 항목이 내부적으로 처리되는 방식은 상당히 다릅니다. Qt 6.0에서는 암시적인 텍스처 렌더링 단계가 없습니다. 대신, 2D Qt Quick 콘텐츠는 적절한 원근 투영을 적용하여 동일한 렌더 패스에서 인라인으로 렌더링되며, 이는 더 나은 성능, 더 낮은 리소스 사용량, 그리고 경우에 따라 향상된 시각적 충실도(예: Text 사용 시)를 제공합니다. 개요는 Qt Quick 3D Scenes with 2D Content를 참조하십시오.

어떤 이유로든 텍스처를 통과하는 것이 중요하다면(클리핑, 불투명도 등), layer.enabled: true 를 설정하여 2D Item 하위 트리를 명시적으로 레이어로 지정하십시오. 이렇게 하면 동작이 Qt 5.15에서 제공되던 방식에 더 가까워집니다.

2D 콘텐츠는 더 이상 부모 노드의 원점에 중심이 맞춰지지 않습니다. 대신 최상위 2D Item의 왼쪽 상단 모서리가 3D 노드의 원점에 배치됩니다. 따라서 최상위 2D Item에서는 Qt 5.15와 동일한 결과를 얻기 위해 anchors.centerIn: parent 과 같은 앵커를 지정해야 하는 경우가 많습니다.

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