180 lines
6.0 KiB
QML
180 lines
6.0 KiB
QML
// Copyright (C) 2021 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("Shadows")
|
|
width: parent.width
|
|
|
|
SectionLayout {
|
|
|
|
PropertyLabel {
|
|
text: qsTr("Casts Shadow")
|
|
tooltip: qsTr("Enables shadow casting for this light.")
|
|
}
|
|
|
|
SecondColumnLayout {
|
|
CheckBox {
|
|
id: shadowCheckBox
|
|
text: backendValues.castsShadow.valueToString
|
|
backendValue: backendValues.castsShadow
|
|
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
|
+ StudioTheme.Values.actionIndicatorWidth
|
|
}
|
|
|
|
ExpandingSpacer {}
|
|
}
|
|
|
|
// ### all the following should only be shown when shadows are enabled
|
|
PropertyLabel {
|
|
visible: shadowCheckBox.checked
|
|
text: qsTr("Amount")
|
|
tooltip: qsTr("Sets how dark the cast shadows should be.")
|
|
}
|
|
|
|
SecondColumnLayout {
|
|
visible: shadowCheckBox.checked
|
|
SpinBox {
|
|
minimumValue: 0.0
|
|
maximumValue: 100.0
|
|
decimals: 0
|
|
sliderIndicatorVisible: true
|
|
backendValue: backendValues.shadowFactor
|
|
enabled: shadowCheckBox.backendValue.value === true
|
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
|
+ StudioTheme.Values.actionIndicatorWidth
|
|
}
|
|
|
|
ExpandingSpacer {}
|
|
}
|
|
|
|
PropertyLabel {
|
|
visible: shadowCheckBox.checked
|
|
text: qsTr("Quality")
|
|
tooltip: qsTr("Sets the quality of the shadow map created for shadow rendering.")
|
|
}
|
|
|
|
SecondColumnLayout {
|
|
visible: shadowCheckBox.checked
|
|
ComboBox {
|
|
scope: "Light"
|
|
model: ["ShadowMapQualityLow", "ShadowMapQualityMedium", "ShadowMapQualityHigh", "ShadowMapQualityVeryHigh", "ShadowMapQualityUltra"]
|
|
backendValue: backendValues.shadowMapQuality
|
|
enabled: shadowCheckBox.backendValue.value === true
|
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
|
+ StudioTheme.Values.actionIndicatorWidth
|
|
}
|
|
|
|
ExpandingSpacer {}
|
|
}
|
|
|
|
PropertyLabel {
|
|
visible: shadowCheckBox.checked
|
|
text: qsTr("Bias")
|
|
tooltip: qsTr("Sets a slight offset to avoid self-shadowing artifacts.")
|
|
}
|
|
|
|
SecondColumnLayout {
|
|
visible: shadowCheckBox.checked
|
|
SpinBox {
|
|
minimumValue: 0
|
|
maximumValue: 9999999
|
|
decimals: 2
|
|
stepSize: 1
|
|
backendValue: backendValues.shadowBias
|
|
enabled: shadowCheckBox.backendValue.value === true
|
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
|
+ StudioTheme.Values.actionIndicatorWidth
|
|
}
|
|
|
|
ExpandingSpacer {}
|
|
}
|
|
|
|
PropertyLabel {
|
|
visible: shadowCheckBox.checked
|
|
text: qsTr("Soft Shadow Quality")
|
|
tooltip: qsTr("Sets the quality of the soft shadows.")
|
|
}
|
|
|
|
SecondColumnLayout {
|
|
visible: shadowCheckBox.checked
|
|
ComboBox {
|
|
scope: "Light"
|
|
model: ["Hard", "PCF4", "PCF8", "PCF16", "PCF32", "PCF64"]
|
|
backendValue: backendValues.softShadowQuality
|
|
enabled: shadowCheckBox.backendValue.value === true
|
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
|
+ StudioTheme.Values.actionIndicatorWidth
|
|
}
|
|
|
|
ExpandingSpacer {}
|
|
}
|
|
|
|
PropertyLabel {
|
|
visible: shadowCheckBox.checked
|
|
text: qsTr("PCF Factor")
|
|
tooltip: qsTr("Sets the PCF (percentage-closer filtering) factor.")
|
|
}
|
|
|
|
SecondColumnLayout {
|
|
visible: shadowCheckBox.checked
|
|
SpinBox {
|
|
minimumValue: 0
|
|
maximumValue: 9999999
|
|
decimals: 1
|
|
stepSize: 0.1
|
|
backendValue: backendValues.pcfFactor
|
|
enabled: shadowCheckBox.backendValue.value === true
|
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
|
+ StudioTheme.Values.actionIndicatorWidth
|
|
}
|
|
|
|
ExpandingSpacer {}
|
|
}
|
|
|
|
PropertyLabel {
|
|
visible: shadowCheckBox.checked
|
|
text: qsTr("Far Distance")
|
|
tooltip: qsTr("Sets the maximum distance for the shadow map.")
|
|
}
|
|
|
|
SecondColumnLayout {
|
|
visible: shadowCheckBox.checked
|
|
SpinBox {
|
|
minimumValue: 0
|
|
maximumValue: 9999999
|
|
decimals: 0
|
|
stepSize: 10
|
|
backendValue: backendValues.shadowMapFar
|
|
enabled: shadowCheckBox.backendValue.value === true
|
|
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
|
+ StudioTheme.Values.actionIndicatorWidth
|
|
}
|
|
|
|
ExpandingSpacer {}
|
|
}
|
|
|
|
PropertyLabel {
|
|
visible: shadowCheckBox.checked
|
|
text: qsTr("Use 32-bit Shadowmap")
|
|
tooltip: qsTr("Enables a 32-bit shadowmap texture for this light.")
|
|
}
|
|
|
|
SecondColumnLayout {
|
|
visible: shadowCheckBox.checked
|
|
CheckBox {
|
|
text: backendValues.use32BitShadowmap.valueToString
|
|
backendValue: backendValues.use32BitShadowmap
|
|
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
|
+ StudioTheme.Values.actionIndicatorWidth
|
|
}
|
|
|
|
ExpandingSpacer {}
|
|
}
|
|
}
|
|
}
|