이 페이지에서

Qt Quick 3D - 베이킹된 라이트맵 예제

3D 장면에서 베이킹된 라이트맵을 사용하는 방법을 보여줍니다.

두 개의 상자와 천장 조명이 있는 코넬 박스, 베이킹된 라이트맵 조명이 적용된 모습

이 예제는 씬에서 완전히 베이킹된 조명을 사용하는 방법을 보여줍니다. 그 결과, 주로 간접 조명이 추가되어 렌더링된 씬이 훨씬 더 사실적으로 보입니다. 체크박스를 통해 라이트매핑을 비활성화할 수도 있으므로, 실시간 렌더링 방식과 완전히 베이킹된 방식의 렌더링 결과를 비교할 수 있습니다.

조명 설정

이 씬에는 단일 포인트 라이트가 있습니다. 체크박스를 선택하면 라이트의 ‘ bakeMode ’가 ‘Light.BakeModeAll’로 설정됩니다.

PointLight {
    bakeMode: root.lightBakeMode
    y: 190
    brightness: brightnessSlider.value
    castsShadow: true
    shadowFactor: 75
    shadowBias: 20
}

이 속성을 Light.BakeModeDisabled 이외의 값으로 설정하면 두 가지 목적을 달성합니다. 라이트맵 베이킹 시점에 이 조명이 라이트맵이 적용된 씬의 일부이며, 씬에 기여하고 있음을 나타냅니다. 실행 시, 장면을 정상적으로 렌더링할 때 이 속성은 해당 조명이 전체 또는 부분적으로 베이킹된 조명임을 나타내며, 이로 인해 라이트맵이 적용된 모델의 머티리얼에서 특정 실시간 계산이 비활성화됩니다. 이것이 바로 이 체크박스가 Light 객체의 bakeMode 속성과 Model 객체와 연관된 BakedLightmap 의 enabled 속성을 모두 both 로 전환하는 이유입니다.

모델 설정

코넬 박스(Cornell box )는 8개의 서브메쉬로 구성된 모델입니다. 이는 Box 타입으로 캡슐화되어 있으며, 메인 씬에서 해당 인스턴스가 생성됩니다.

Box {
    usedInBakedLighting: true
    bakedLightmap: BakedLightmap {
        enabled: root.lmEnabled
        key: "box"
    }
    scale: Qt.vector3d(100, 100, 100)
}

이 모델은 라이트맵이 적용된 씬에 포함될 뿐만 아니라, 해당 모델에 대한 라이트맵도 베이킹되어 있습니다. 전자는 ` usedInBakedLighting ` 속성으로 표시됩니다. 이 속성만으로는 박스 미니씬에 대한 라이트맵이 베이크된다는 보장은 없으며, 단지 라이트매핑에 참여한다는 것(즉, 간접 조명을 계산할 때 광선이 모델에서 반사될 수 있음)만을 의미합니다.

라이트맵이 완전히 생성되어 베이킹 과정에서 저장되려면, ` enabled `가 ` true `로 설정된 ` BakedLightmap ` 객체도 함께 설정해야 합니다. ` key `는 고유 식별자를 지정합니다.

간편한 배포를 위해, 애플리케이션은 Qt 리소스 시스템을 통해 생성된 라이트맵(lightmaps.bin 파일)을 실행 파일에 포함시킬 수 있습니다. 라이트맵을 다시 베이킹할 때는 변경된 파일이 반영되도록 애플리케이션을 다시 빌드해야 합니다. 라이트맵 파일의 소스 경로는 Lightmapper 의 source 속성을 통해 설정됩니다.

예제 프로젝트 @ code.qt.io

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