Qt Quick 3D - 베이크된 라이트맵 예제
3D 씬에서 베이크된 라이트맵을 사용하는 방법을 보여줍니다.
이 예시는 씬에서 완전히 베이크된 조명을 사용하는 것을 보여줍니다. 결과적으로 렌더링된 장면은 주로 간접 조명이 추가되어 훨씬 더 사실적으로 보입니다. 또한 체크박스를 사용하면 라이트매핑을 비활성화할 수 있으므로 실시간 방식과 완전 베이크된 방식의 렌더링 결과를 비교할 수 있습니다.
조명 설정
씬에는 단일 포인트 라이트가 있습니다. 확인란을 선택하면 라이트의 bakeMode 가 Light.BakeModeAll로 설정됩니다.
PointLight { bakeMode: root.lightBakeMode y: 190 brightness: brightnessSlider.value castsShadow: true shadowFactor: 75 shadowBias: 20 }
이 프로퍼티를 Light.BakeModeDisabled 이외의 값으로 설정하면 두 가지 용도로 사용됩니다. 라이트맵 베이크 시 라이트가 라이트맵 씬의 일부임을 나타내어 씬에 기여합니다. 런타임에는 씬을 정상적으로 렌더링할 때 라이트가 완전히 또는 부분적으로 베이크된 라이트임을 나타내므로 라이트맵 모델의 머티리얼에서 특정 실시간 계산을 비활성화합니다. 따라서 이 확인란은 라이트의 bakeMode 프로퍼티( both
)와 모델 오브젝트와 연결된 BakedLightmap 의 활성화 프로퍼티를 토글합니다.
모델 설정하기
코넬 박스는 8개의 서브메시가 있는 모델입니다. 이것은 Box 유형으로 캡슐화되며, 그 인스턴스는 메인 씬에서 인스턴스화됩니다.
Box { usedInBakedLighting: true bakedLightmap: BakedLightmap { enabled: root.lmEnabled key: "box" } scale: Qt.vector3d(100, 100, 100) }
이 모델은 라이트매핑된 씬에 참여하기도 하고, 라이트맵이 구워지기도 합니다. 전자는 usedInBakedLighting 프로퍼티로 표시됩니다. 이것만으로는 박스 미니스케인에 대한 라이트맵이 구워지는 것이 아니라 라이트매핑에 참여한다는 것만 보장합니다(즉, 간접 조명을 계산할 때 광선이 모델에서 반사될 수 있습니다).
베이킹 프로세스 중에 라이트맵을 완전히 생성한 다음 저장하기 위해 enabled 이 true
로 설정된 BakedLightmap 객체도 설정됩니다. key 은 고유 식별자를 지정합니다.
간단한 배포를 위해 애플리케이션은 생성된 라이트맵(lightmaps.bin
파일)을 Qt 리소스 시스템을 통해 실행 파일에 패킹할 수 있습니다. 라이트맵을 다시 베이킹할 때는 애플리케이션을 다시 빌드해야 변경된 파일을 가져올 수 있습니다. 라이트맵 파일의 소스는 source 속성을 통해 Lightmapper 에 설정됩니다.
© 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.