Qt Quick 3D - 预烘焙光照贴图示例
// Copyright (C) 2022 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause import QtQuick import QtQuick.Controls import QtQuick.Layouts import QtQuick3D import QtQuick3D.Helpers Window { width: 1280 height: 720 title: "Qt Quick 3D Baked Lightmap Example" visible: true View3D { id: root anchors.fill: parent environment: SceneEnvironment { backgroundMode: SceneEnvironment.Color clearColor: "black" } PerspectiveCamera { id: camera z: 300 y: 100 } property bool lmEnabled: lmToggle.checked property int lightBakeMode: lmToggle.checked ? Light.BakeModeAll : Light.BakeModeDisabled PointLight { bakeMode: root.lightBakeMode y: 190 brightness: brightnessSlider.value castsShadow: true shadowFactor: 75 } Box { usedInBakedLighting: true lightmapBaseResolution: 256 bakedLightmap: BakedLightmap { enabled: root.lmEnabled key: "box" loadPrefix: "file:" } scale: Qt.vector3d(100, 100, 100) } Rectangle { color: "lightGray" width: 320 height: 160 ColumnLayout { anchors.centerIn: parent CheckBox { id: lmToggle text: "Use lightmaps (fully baked direct+indirect)\nif available" checked: true focusPolicy: Qt.NoFocus } Text { text: "How to bake lightmaps: \nOpen DebugView -> Tools -> Bake lightmap" } Text { text: "Slider controls light brightness" } Slider { id: brightnessSlider value: 5.0 from: 0 to: 10 } } } } Item { width: debugViewToggleText.implicitWidth height: debugViewToggleText.implicitHeight anchors.right: parent.right Label { id: debugViewToggleText text: "Click here " + (dbg.visible ? "to hide DebugView" : "for DebugView") color: "white" anchors.right: parent.right anchors.top: parent.top } MouseArea { anchors.fill: parent onClicked: dbg.visible = !dbg.visible DebugView { y: debugViewToggleText.height * 2 anchors.right: parent.right source: root id: dbg visible: false } } } }