Qt Quick 3D - Baked Lightmap Example▲
Sélectionnez
// 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
}
}
}
}