138 lines
4.5 KiB
QML
138 lines
4.5 KiB
QML
// Copyright (C) 2024 The Qt Company Ltd.
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
|
|
|
|
import QtQuick 2.15
|
|
import QtQuick.Layouts 1.15
|
|
import HelperWidgets 2.0
|
|
import StudioTheme 1.0 as StudioTheme
|
|
|
|
Section {
|
|
caption: qsTr("Cascades")
|
|
width: parent.width
|
|
|
|
SectionLayout {
|
|
|
|
PropertyLabel {
|
|
text: qsTr("No. Splits")
|
|
tooltip: qsTr("The number of cascade splits for this light.")
|
|
}
|
|
|
|
SecondColumnLayout {
|
|
ComboBox {
|
|
id: numSplitsComboBox
|
|
valueType: ComboBox.ValueType.Integer
|
|
model: [0, 1, 2, 3]
|
|
backendValue: backendValues.csmNumSplits
|
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
|
+ StudioTheme.Values.actionIndicatorWidth
|
|
}
|
|
|
|
ExpandingSpacer {}
|
|
}
|
|
|
|
PropertyLabel {
|
|
visible: numSplitsComboBox.currentIndex > 0
|
|
text: qsTr("Blend ratio")
|
|
tooltip: qsTr("Defines how much of the shadow of any cascade should be blended together with the previous one.")
|
|
}
|
|
|
|
SecondColumnLayout {
|
|
visible: numSplitsComboBox.currentIndex > 0
|
|
SpinBox {
|
|
minimumValue: 0
|
|
maximumValue: 1
|
|
decimals: 2
|
|
stepSize: 0.01
|
|
backendValue: backendValues.csmBlendRatio
|
|
sliderIndicatorVisible: true
|
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
|
+ StudioTheme.Values.actionIndicatorWidth
|
|
}
|
|
|
|
ExpandingSpacer {}
|
|
}
|
|
|
|
PropertyLabel {
|
|
visible: numSplitsComboBox.currentIndex > 0
|
|
text: qsTr("Split 1")
|
|
tooltip: qsTr("Defines where the first cascade of the shadow map split will occur.")
|
|
}
|
|
|
|
SecondColumnLayout {
|
|
visible: numSplitsComboBox.currentIndex > 0
|
|
SpinBox {
|
|
minimumValue: 0
|
|
maximumValue: 1
|
|
decimals: 2
|
|
stepSize: 0.01
|
|
backendValue: backendValues.csmSplit1
|
|
sliderIndicatorVisible: true
|
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
|
+ StudioTheme.Values.actionIndicatorWidth
|
|
}
|
|
|
|
ExpandingSpacer {}
|
|
}
|
|
|
|
PropertyLabel {
|
|
visible: numSplitsComboBox.currentIndex > 1
|
|
text: qsTr("Split 2")
|
|
tooltip: qsTr("Defines where the second cascade of the shadow map split will occur.")
|
|
}
|
|
|
|
SecondColumnLayout {
|
|
visible: numSplitsComboBox.currentIndex > 1
|
|
SpinBox {
|
|
minimumValue: 0
|
|
maximumValue: 1
|
|
decimals: 2
|
|
stepSize: 0.01
|
|
backendValue: backendValues.csmSplit2
|
|
sliderIndicatorVisible: true
|
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
|
+ StudioTheme.Values.actionIndicatorWidth
|
|
}
|
|
|
|
ExpandingSpacer {}
|
|
}
|
|
|
|
PropertyLabel {
|
|
visible: numSplitsComboBox.currentIndex > 2
|
|
text: qsTr("Split 3")
|
|
tooltip: qsTr("Defines where the third cascade of the shadow map split will occur.")
|
|
}
|
|
|
|
SecondColumnLayout {
|
|
visible: numSplitsComboBox.currentIndex > 2
|
|
SpinBox {
|
|
minimumValue: 0
|
|
maximumValue: 1
|
|
decimals: 2
|
|
stepSize: 0.01
|
|
backendValue: backendValues.csmSplit3
|
|
sliderIndicatorVisible: true
|
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
|
+ StudioTheme.Values.actionIndicatorWidth
|
|
}
|
|
|
|
ExpandingSpacer {}
|
|
}
|
|
|
|
PropertyLabel {
|
|
text: qsTr("Lock Shadowmap Texels")
|
|
tooltip: qsTr("Locks the shadowmap texels for this light to remove shadow edge shimmering.")
|
|
}
|
|
|
|
SecondColumnLayout {
|
|
CheckBox {
|
|
id: lockShadowmapTexelsCheckBox
|
|
text: backendValues.lockShadowmapTexels.valueToString
|
|
backendValue: backendValues.lockShadowmapTexels
|
|
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
|
+ StudioTheme.Values.actionIndicatorWidth
|
|
}
|
|
ExpandingSpacer {}
|
|
}
|
|
}
|
|
}
|