Files
2026-04-29 07:19:21 +03:00

1880 lines
68 KiB
QML

// Copyright (C) 2023 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
Column {
width: parent.width
Section {
width: parent.width
caption: qsTr("Extended Scene Environment")
SectionLayout {
id: baseSectionLayout
property bool isColorMode: backgroundModeComboBox.currentIndex === 2
property bool isSkyBoxMode: backgroundModeComboBox.currentIndex === 3
property bool isSkyBoxCubeMapMode: backgroundModeComboBox.currentIndex === 4
PropertyLabel {
text: qsTr("Background Mode")
tooltip: qsTr("Sets if and how the background of the scene should be cleared.")
}
SecondColumnLayout {
ComboBox {
id: backgroundModeComboBox
scope: "SceneEnvironment"
model: ["Transparent", "Unspecified", "Color", "SkyBox", "SkyBoxCubeMap"]
backendValue: backendValues.backgroundMode
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: baseSectionLayout.isColorMode
text: qsTr("Clear Color")
tooltip: qsTr("Sets which color will be used to clear the viewport when using SceneEnvironment.Color for the backgroundMode property.")
}
ColorEditor {
visible: baseSectionLayout.isColorMode
backendValue: backendValues.clearColor
supportGradient: false
}
PropertyLabel {
visible: baseSectionLayout.isSkyBoxCubeMapMode
text: qsTr("Skybox Cube Map")
tooltip: qsTr("Sets a cubemap to be used as a skybox when the background mode is SkyBoxCubeMap.")
}
SecondColumnLayout {
visible: baseSectionLayout.isSkyBoxCubeMapMode
ItemFilterComboBox {
typeFilter: "QtQuick3D.CubeMapTexture"
backendValue: backendValues.skyBoxCubeMap
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: baseSectionLayout.isSkyBoxMode || baseSectionLayout.isSkyBoxCubeMapMode
text: qsTr("Skybox Blur")
tooltip: qsTr("Sets how much to blur the skybox when using SceneEnvironment.SkyBox for the backgroundMode property.")
}
SecondColumnLayout {
visible: baseSectionLayout.isSkyBoxMode || baseSectionLayout.isSkyBoxCubeMapMode
SpinBox {
minimumValue: 0
maximumValue: 1
decimals: 2
stepSize: 0.01
sliderIndicatorVisible: true
backendValue: backendValues.skyboxBlurAmount
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
}
}
Section {
id: antialiasingSection
width: parent.width
caption: qsTr("Antialiasing")
property bool isAntialiasingEnabled: antialiasingModeComboBox.currentIndex !== 0
SectionLayout {
PropertyLabel {
text: qsTr("Antialiasing Mode")
tooltip: qsTr("Sets the antialiasing mode applied to the scene.")
}
SecondColumnLayout {
ComboBox {
id: antialiasingModeComboBox
scope: "SceneEnvironment"
model: ["NoAA", "SSAA", "MSAA", "ProgressiveAA"]
backendValue: backendValues.antialiasingMode
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: antialiasingSection.isAntialiasingEnabled
text: qsTr("Antialiasing Quality")
tooltip: qsTr("Sets the level of antialiasing applied to the scene.")
}
SecondColumnLayout {
visible: antialiasingSection.isAntialiasingEnabled
ComboBox {
scope: "SceneEnvironment"
model: ["Medium", "High", "VeryHigh"]
backendValue: backendValues.antialiasingQuality
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("FXAA")
tooltip: qsTr("Enables fast approximate antialiasing.")
}
SecondColumnLayout {
CheckBox {
text: backendValues.fxaaEnabled.valueToString
backendValue: backendValues.fxaaEnabled
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Specular AA")
tooltip: qsTr("Enables specular antialiasing.")
}
SecondColumnLayout {
CheckBox {
text: backendValues.specularAAEnabled.valueToString
backendValue: backendValues.specularAAEnabled
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Temporal AA")
tooltip: qsTr("Enables temporal antialiasing using camera jittering and frame blending.")
}
SecondColumnLayout {
CheckBox {
id: temporalAAEnabledCheckBox
text: backendValues.temporalAAEnabled.valueToString
backendValue: backendValues.temporalAAEnabled
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: temporalAAEnabledCheckBox.checked
text: qsTr("Temporal AA Strength")
tooltip: qsTr("Sets the amount of temporal antialiasing applied.")
}
SecondColumnLayout {
visible: temporalAAEnabledCheckBox.checked
SpinBox {
minimumValue: 0.01
maximumValue: 2.0
decimals: 2
stepSize: 0.1
backendValue: backendValues.temporalAAStrength
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
}
}
Section {
width: parent.width
caption: qsTr("Tone Mapping")
SectionLayout {
PropertyLabel {
text: qsTr("Mode")
tooltip: qsTr("Sets how colors are tonemapped from HDR to LDR before being displayed.")
}
SecondColumnLayout {
ComboBox {
scope: "SceneEnvironment"
model: ["TonemapModeNone", "TonemapModeLinear", "TonemapModeAces", "TonemapModeHejlDawson", "TonemapModeFilmic"]
backendValue: backendValues.tonemapMode
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Exposure")
tooltip: qsTr("Sets the exposure of the scene.")
}
SecondColumnLayout {
SpinBox {
minimumValue: 0
maximumValue: 10
decimals: 2
stepSize: 0.01
sliderIndicatorVisible: true
backendValue: backendValues.exposure
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("White Point")
tooltip: qsTr("Sets the white point of the scene.")
}
SecondColumnLayout {
SpinBox {
minimumValue: 0
maximumValue: 1
decimals: 2
stepSize: 0.01
sliderIndicatorVisible: true
backendValue: backendValues.whitePoint
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Sharpening")
tooltip: qsTr("Set the sharpening amount applied to the scene.")
}
SecondColumnLayout {
SpinBox {
minimumValue: 0
maximumValue: 1
decimals: 2
stepSize: 0.01
sliderIndicatorVisible: true
backendValue: backendValues.sharpnessAmount
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Dithering")
tooltip: qsTr("Enables dithering to reduce banding artifacts.")
}
SecondColumnLayout {
CheckBox {
text: backendValues.ditheringEnabled.valueToString
backendValue: backendValues.ditheringEnabled
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
}
}
Section {
width: parent.width
caption: qsTr("Color Adjustments")
SectionLayout {
PropertyLabel {
text: qsTr("Enabled")
tooltip: qsTr("Enables color adjustments")
}
SecondColumnLayout {
CheckBox {
id: adjustmentsEnabledCheckBox
text: backendValues.colorAdjustmentsEnabled.valueToString
backendValue: backendValues.colorAdjustmentsEnabled
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: adjustmentsEnabledCheckBox.checked
text: qsTr("Brightness")
tooltip: qsTr("Adjusts the brightness of the scene.")
}
SecondColumnLayout {
visible: adjustmentsEnabledCheckBox.checked
SpinBox {
minimumValue: 0.01
maximumValue: 8.0
decimals: 2
stepSize: 0.01
sliderIndicatorVisible: true
backendValue: backendValues.adjustmentBrightness
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: adjustmentsEnabledCheckBox.checked
text: qsTr("Contrast")
tooltip: qsTr("Adjusts the contrast of the scene.")
}
SecondColumnLayout {
visible: adjustmentsEnabledCheckBox.checked
SpinBox {
minimumValue: 0.01
maximumValue: 8.0
decimals: 2
stepSize: 0.01
sliderIndicatorVisible: true
backendValue: backendValues.adjustmentContrast
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: adjustmentsEnabledCheckBox.checked
text: qsTr("Saturation")
tooltip: qsTr("Adjusts the saturation of the scene.")
}
SecondColumnLayout {
visible: adjustmentsEnabledCheckBox.checked
SpinBox {
minimumValue: 0.01
maximumValue: 8.0
decimals: 2
stepSize: 0.01
sliderIndicatorVisible: true
backendValue: backendValues.adjustmentSaturation
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
}
}
Section {
width: parent.width
caption: qsTr("Color Grading")
SectionLayout {
PropertyLabel {
text: qsTr("Enabled")
tooltip: qsTr("Enables color grading via look up table (LUT) textures.")
}
SecondColumnLayout {
CheckBox {
id: colorGradingEnabledCheckBox
text: backendValues.lutEnabled.valueToString
backendValue: backendValues.lutEnabled
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: colorGradingEnabledCheckBox.checked
text: qsTr("Size")
tooltip: qsTr("Sets the size of the LUT texture. The texture should have the dimensions: width=(size * size), height=(size).")
}
SecondColumnLayout {
visible: colorGradingEnabledCheckBox.checked
SpinBox {
minimumValue: 1
maximumValue: 64
decimals: 0
stepSize: 1
sliderIndicatorVisible: true
backendValue: backendValues.skyboxBlurAmount
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: colorGradingEnabledCheckBox.checked
text: qsTr("Texture")
tooltip: qsTr("Sets the source of the LUT texture.")
}
SecondColumnLayout {
visible: colorGradingEnabledCheckBox.checked
ItemFilterComboBox {
typeFilter: "QtQuick3D.Texture"
backendValue: backendValues.lutTexture
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: colorGradingEnabledCheckBox.checked
text: qsTr("Alpha Mix")
tooltip: qsTr("Sets the amount of color grading to mix with the scene.")
}
SecondColumnLayout {
visible: colorGradingEnabledCheckBox.checked
SpinBox {
minimumValue: 0
maximumValue: 1
sliderIndicatorVisible: true
decimals: 2
stepSize: 0.01
backendValue: backendValues.lutFilterAlpha
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
}
}
Section {
width: parent.width
caption: qsTr("Ambient Occlusion (SSAO)")
SectionLayout {
PropertyLabel {
text: qsTr("Enabled")
tooltip: qsTr("Enables ambient occlusion.")
}
SecondColumnLayout {
CheckBox {
id: ambientOcclusionEnabledCheckBox
text: backendValues.aoEnabled.valueToString
backendValue: backendValues.aoEnabled
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: ambientOcclusionEnabledCheckBox.checked
text: qsTr("Strength")
tooltip: qsTr("Sets the amount of ambient occulusion applied.")
}
SecondColumnLayout {
visible: ambientOcclusionEnabledCheckBox.checked
SpinBox {
minimumValue: 0
maximumValue: 100
sliderIndicatorVisible: true
decimals: 0
backendValue: backendValues.aoStrength
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: ambientOcclusionEnabledCheckBox.checked
text: qsTr("Distance")
tooltip: qsTr("Sets roughly how far ambient occlusion shadows spread away from objects.")
}
SecondColumnLayout {
visible: ambientOcclusionEnabledCheckBox.checked
SpinBox {
minimumValue: 0
maximumValue: 9999999
decimals: 2
backendValue: backendValues.aoDistance
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: ambientOcclusionEnabledCheckBox.checked
text: qsTr("Softness")
tooltip: qsTr("Sets how smooth the edges of the ambient occlusion shading are.")
}
SecondColumnLayout {
visible: ambientOcclusionEnabledCheckBox.checked
SpinBox {
minimumValue: 0
maximumValue: 50
sliderIndicatorVisible: true
decimals: 2
backendValue: backendValues.aoSoftness
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: ambientOcclusionEnabledCheckBox.checked
text: qsTr("Sample Rate")
tooltip: qsTr("Sets ambient occlusion quality (more shades of gray) at the expense of performance.")
}
SecondColumnLayout {
visible: ambientOcclusionEnabledCheckBox.checked
SpinBox {
minimumValue: 2
maximumValue: 4
decimals: 0
stepSize: 1
sliderIndicatorVisible: true
backendValue: backendValues.aoSampleRate
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: ambientOcclusionEnabledCheckBox.checked
text: qsTr("Bias")
tooltip: qsTr("Sets a cutoff distance preventing objects from exhibiting ambient occlusion at close distances.")
}
SecondColumnLayout {
visible: ambientOcclusionEnabledCheckBox.checked
SpinBox {
minimumValue: -1.0
maximumValue: 1.0
decimals: 2
backendValue: backendValues.aoBias
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: ambientOcclusionEnabledCheckBox.checked
text: qsTr("Dither")
tooltip: qsTr("Enables scattering the edges of the ambient occlusion shadow bands to improve smoothness.")
}
SecondColumnLayout {
visible: ambientOcclusionEnabledCheckBox.checked
CheckBox {
id: aoDitherCheckBox
text: backendValues.aoDither.valueToString
backendValue: backendValues.aoDither
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
}
}
Section {
width: parent.width
caption: qsTr("Depth of Field")
SectionLayout {
PropertyLabel {
text: qsTr("Enabled")
tooltip: qsTr("Enables Depth of Field effect.")
}
SecondColumnLayout {
CheckBox {
id: depthOfFieldEnabledCheckBox
text: backendValues.depthOfFieldEnabled.valueToString
backendValue: backendValues.depthOfFieldEnabled
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: depthOfFieldEnabledCheckBox.checked
text: qsTr("Focus Distance")
tooltip: qsTr("Sets the distance from the camera at which objects are in focus.")
}
SecondColumnLayout {
visible: depthOfFieldEnabledCheckBox.checked
SpinBox {
minimumValue: 0
maximumValue: 9999999
decimals: 2
backendValue: backendValues.depthOfFieldFocusDistance
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: depthOfFieldEnabledCheckBox.checked
text: qsTr("Focus Range")
tooltip: qsTr("Sets the range of distances from the focus distance that are in focus.")
}
SecondColumnLayout {
visible: depthOfFieldEnabledCheckBox.checked
SpinBox {
minimumValue: 0
maximumValue: 9999999
decimals: 2
backendValue: backendValues.depthOfFieldFocusRange
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: depthOfFieldEnabledCheckBox.checked
text: qsTr("Blur Amount")
tooltip: qsTr("Sets the amount of blur applied to objects outside the focus range.")
}
SecondColumnLayout {
visible: depthOfFieldEnabledCheckBox.checked
SpinBox {
minimumValue: 0
maximumValue: 25
decimals: 2
stepSize: 0.01
backendValue: backendValues.depthOfFieldBlurAmount
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
}
}
Section {
width: parent.width
caption: qsTr("Glow")
SectionLayout {
PropertyLabel {
text: qsTr("Enabled")
tooltip: qsTr("Enables the Glow/Bloom Effect")
}
SecondColumnLayout {
CheckBox {
id: glowEnabledCheckBox
text: backendValues.glowEnabled.valueToString
backendValue: backendValues.glowEnabled
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: glowEnabledCheckBox.checked
text: qsTr("High Quality")
tooltip: qsTr("Enables high quality mode for the glow effect.")
}
SecondColumnLayout {
visible: glowEnabledCheckBox.checked
CheckBox {
text: backendValues.glowQualityHigh.valueToString
backendValue: backendValues.glowQualityHigh
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: glowEnabledCheckBox.checked
text: qsTr("Bicubic Upsampling")
tooltip: qsTr("Reduces the aliasing artifacts and boxing in the glow effect.")
}
SecondColumnLayout {
visible: glowEnabledCheckBox.checked
CheckBox {
text: backendValues.glowUseBicubicUpscale.valueToString
backendValue: backendValues.glowUseBicubicUpscale
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: glowEnabledCheckBox.checked
text: qsTr("Strength")
tooltip: qsTr("Sets the strength of the glow effect.")
}
SecondColumnLayout {
visible: glowEnabledCheckBox.checked
SpinBox {
minimumValue: 0
maximumValue: 2
decimals: 2
stepSize: 0.01
sliderIndicatorVisible: true
backendValue: backendValues.glowStrength
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: glowEnabledCheckBox.checked
text: qsTr("Intensity")
tooltip: qsTr("Sets the Intensity of the glow effect.")
}
SecondColumnLayout {
visible: glowEnabledCheckBox.checked
SpinBox {
minimumValue: 0
maximumValue: 2
decimals: 2
stepSize: 0.01
sliderIndicatorVisible: true
backendValue: backendValues.glowIntensity
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: glowEnabledCheckBox.checked
text: qsTr("Bloom")
tooltip: qsTr("Sets the amount of bloom applied to the glow effect.")
}
SecondColumnLayout {
visible: glowEnabledCheckBox.checked
SpinBox {
minimumValue: 0
maximumValue: 1
decimals: 2
stepSize: 0.01
sliderIndicatorVisible: true
backendValue: backendValues.glowBloom
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: glowEnabledCheckBox.checked
text: qsTr("Lower Threshold")
tooltip: qsTr("Sets the minimum brightness of the HDR glow.")
}
SecondColumnLayout {
visible: glowEnabledCheckBox.checked
SpinBox {
minimumValue: 0
maximumValue: 4
decimals: 2
stepSize: 0.01
sliderIndicatorVisible: true
backendValue: backendValues.glowHDRMinimumValue
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: glowEnabledCheckBox.checked
text: qsTr("Upper Threshold")
tooltip: qsTr("Sets the maximum brightness of the HDR glow.")
}
SecondColumnLayout {
visible: glowEnabledCheckBox.checked
SpinBox {
minimumValue: 0
maximumValue: 256
decimals: 2
stepSize: 0.01
sliderIndicatorVisible: true
backendValue: backendValues.glowHDRMaximumValue
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: glowEnabledCheckBox.checked
text: qsTr("HDR Scale")
tooltip: qsTr("Sets the bleed scale of the HDR glow.")
}
SecondColumnLayout {
visible: glowEnabledCheckBox.checked
SpinBox {
minimumValue: 0
maximumValue: 8
decimals: 2
stepSize: 0.01
sliderIndicatorVisible: true
backendValue: backendValues.glowHDRScale
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: glowEnabledCheckBox.checked
text: qsTr("Blend Mode")
tooltip: qsTr("Sets the blending mode for the glow effect.")
}
SecondColumnLayout {
visible: glowEnabledCheckBox.checked
ComboBox {
scope: "ExtendedSceneEnvironment.GlowBlendMode"
model: ["Additive", "Screen", "SoftLight", "Replace"]
backendValue: backendValues.glowBlendMode
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: glowEnabledCheckBox.checked
text: qsTr("Blur Levels")
tooltip: qsTr("Sets which of the blur passes get applied to the glow effect.")
}
SecondColumnLayout {
visible: glowEnabledCheckBox.checked
// ### This isn't perfect, but it's the best we can do for now
ActionIndicator {
id: glowLevelController
icon.color: extFuncLogic.color
icon.text: extFuncLogic.glyph
onClicked: extFuncLogic.show()
forceVisible: extFuncLogic.menuVisible
visible: true
property var enableLevel1: { "value": false, "isInModel": false}
property var enableLevel2: { "value": false, "isInModel": false}
property var enableLevel3: { "value": false, "isInModel": false}
property var enableLevel4: { "value": false, "isInModel": false}
property var enableLevel5: { "value": false, "isInModel": false}
property var enableLevel6: { "value": false, "isInModel": false}
property var enableLevel7: { "value": false, "isInModel": false}
property variant backendValue: backendValues.glowLevel
property variant valueFromBackend: backendValue === undefined ? 0 : backendValue.value
property bool blockLevels: false
onBackendValueChanged: evaluateLevels()
onValueFromBackendChanged: evaluateLevels()
Connections {
target: modelNodeBackend
function onSelectionChanged() {
evaluateLevels()
}
}
Component.onCompleted: evaluateLevels()
function evaluateLevels() {
blockLevels = true
enableLevel1 = { "value": valueFromBackend & 1, "isInModel": false}
enableLevel2 = { "value": valueFromBackend & 2, "isInModel": false}
enableLevel3 = { "value": valueFromBackend & 4, "isInModel": false}
enableLevel4 = { "value": valueFromBackend & 8, "isInModel": false}
enableLevel5 = { "value": valueFromBackend & 16, "isInModel": false}
enableLevel6 = { "value": valueFromBackend & 32, "isInModel": false}
enableLevel7 = { "value": valueFromBackend & 64, "isInModel": false}
blockLevels = false
}
function composeExpressionString() {
if (blockLevels)
return
let expressionStr = "";
if (enableLevel1.value || enableLevel2.value || enableLevel3.value || enableLevel4.value
|| enableLevel5.value || enableLevel6.value || enableLevel7.value) {
if (enableLevel1.value)
expressionStr += " | ExtendedSceneEnvironment.GlowLevel.One";
if (enableLevel2.value)
expressionStr += " | ExtendedSceneEnvironment.GlowLevel.Two";
if (enableLevel3.value)
expressionStr += " | ExtendedSceneEnvironment.GlowLevel.Three";
if (enableLevel4.value)
expressionStr += " | ExtendedSceneEnvironment.GlowLevel.Four";
if (enableLevel5.value)
expressionStr += " | ExtendedSceneEnvironment.GlowLevel.Five";
if (enableLevel6.value)
expressionStr += " | ExtendedSceneEnvironment.GlowLevel.Six";
if (enableLevel7.value)
expressionStr += " | ExtendedSceneEnvironment.GlowLevel.Seven";
expressionStr = expressionStr.substring(3);
backendValue.expression = expressionStr
} else {
expressionStr = "0";
backendValue.expression = expressionStr
}
}
ExtendedFunctionLogic {
id: extFuncLogic
backendValue: backendValues.glowLevel
onReseted: {
glowLevelController.enableLevel1 = { "value": true, "isInModel": false}
glowLevelController.enableLevel2 = { "value": false, "isInModel": false}
glowLevelController.enableLevel3 = { "value": false, "isInModel": false}
glowLevelController.enableLevel4 = { "value": false, "isInModel": false}
glowLevelController.enableLevel5 = { "value": false, "isInModel": false}
glowLevelController.enableLevel6 = { "value": false, "isInModel": false}
glowLevelController.enableLevel7 = { "value": false, "isInModel": false}
glowLevelController.evaluateLevels()
}
}
}
}
PropertyLabel {
// spacer
visible: glowEnabledCheckBox.checked
}
SecondColumnLayout {
visible: glowEnabledCheckBox.checked
Item {
// spacer for the always hiden action indicator
width: StudioTheme.Values.actionIndicatorWidth
}
CheckBox {
text: qsTr("Level 1")
backendValue: glowLevelController.enableLevel1
actionIndicatorVisible: false
onCheckedChanged: glowLevelController.composeExpressionString()
implicitWidth: StudioTheme.Values.twoControlColumnWidth
}
ExpandingSpacer {}
}
PropertyLabel {
// spacer
visible: glowEnabledCheckBox.checked
}
SecondColumnLayout {
visible: glowEnabledCheckBox.checked
Item {
// spacer for the always hiden action indicator
width: StudioTheme.Values.actionIndicatorWidth
}
CheckBox {
text: qsTr("Level 2")
backendValue: glowLevelController.enableLevel2
actionIndicatorVisible: false
implicitWidth: StudioTheme.Values.twoControlColumnWidth
onCheckedChanged: glowLevelController.composeExpressionString()
}
ExpandingSpacer {}
}
PropertyLabel {
// spacer
visible: glowEnabledCheckBox.checked
}
SecondColumnLayout {
visible: glowEnabledCheckBox.checked
Item {
// spacer for the always hiden action indicator
width: StudioTheme.Values.actionIndicatorWidth
}
CheckBox {
text: qsTr("Level 3")
backendValue: glowLevelController.enableLevel3
actionIndicatorVisible: false
onCheckedChanged: glowLevelController.composeExpressionString()
implicitWidth: StudioTheme.Values.twoControlColumnWidth
}
ExpandingSpacer {}
}
PropertyLabel {
// spacer
visible: glowEnabledCheckBox.checked
}
SecondColumnLayout {
visible: glowEnabledCheckBox.checked
Item {
// spacer for the always hiden action indicator
width: StudioTheme.Values.actionIndicatorWidth
}
CheckBox {
text: qsTr("Level 4")
backendValue: glowLevelController.enableLevel4
actionIndicatorVisible: false
onCheckedChanged: glowLevelController.composeExpressionString()
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
// spacer
visible: glowEnabledCheckBox.checked
}
SecondColumnLayout {
visible: glowEnabledCheckBox.checked
Item {
// spacer for the always hiden action indicator
width: StudioTheme.Values.actionIndicatorWidth
}
CheckBox {
text: qsTr("Level 5")
backendValue: glowLevelController.enableLevel5
actionIndicatorVisible: false
onCheckedChanged: glowLevelController.composeExpressionString()
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
// spacer
visible: glowEnabledCheckBox.checked
}
SecondColumnLayout {
visible: glowEnabledCheckBox.checked
Item {
// spacer for the always hiden action indicator
width: StudioTheme.Values.actionIndicatorWidth
}
CheckBox {
text: qsTr("Level 6")
backendValue: glowLevelController.enableLevel6
actionIndicatorVisible: false
onCheckedChanged: glowLevelController.composeExpressionString()
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
// spacer
visible: glowEnabledCheckBox.checked
}
SecondColumnLayout {
visible: glowEnabledCheckBox.checked
Item {
// spacer for the always hiden action indicator
width: StudioTheme.Values.actionIndicatorWidth
}
CheckBox {
text: qsTr("Level 7")
backendValue: glowLevelController.enableLevel7
actionIndicatorVisible: false
onCheckedChanged: glowLevelController.composeExpressionString()
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
}
}
Section {
width: parent.width
caption: qsTr("Vignette")
SectionLayout {
PropertyLabel {
text: qsTr("Enabled")
tooltip: qsTr("Enables the vignette effect.")
}
SecondColumnLayout {
CheckBox {
id: vignetteEnabledCheckBox
text: backendValues.vignetteEnabled.valueToString
backendValue: backendValues.vignetteEnabled
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: vignetteEnabledCheckBox.checked
text: qsTr("Color")
tooltip: qsTr("Sets the color of the vignette effect.")
}
ColorEditor {
visible: vignetteEnabledCheckBox.checked
backendValue: backendValues.vignetteColor
supportGradient: false
}
PropertyLabel {
visible: vignetteEnabledCheckBox.checked
text: qsTr("Strength")
tooltip: qsTr("Sets the strength of the vignette effect.")
}
SecondColumnLayout {
visible: vignetteEnabledCheckBox.checked
SpinBox {
minimumValue: 0.01
maximumValue: 15
decimals: 2
stepSize: 0.01
sliderIndicatorVisible: true
backendValue: backendValues.vignetteStrength
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: vignetteEnabledCheckBox.checked
text: qsTr("Radius")
tooltip: qsTr("Sets the radius of the vignette effect.")
}
SecondColumnLayout {
visible: vignetteEnabledCheckBox.checked
SpinBox {
minimumValue: 0
maximumValue: 5
decimals: 2
stepSize: 0.01
sliderIndicatorVisible: true
backendValue: backendValues.vignetteRadius
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
}
}
Section {
width: parent.width
caption: qsTr("Lens Flare")
SectionLayout {
PropertyLabel {
text: qsTr("Enabled")
tooltip: qsTr("Enables the Lens Flare effect.")
}
SecondColumnLayout {
CheckBox {
id: lensFlareEnabledCheckBox
text: backendValues.lensFlareEnabled.valueToString
backendValue: backendValues.lensFlareEnabled
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: lensFlareEnabledCheckBox.checked
text: qsTr("Bloom Scale")
tooltip: qsTr("Sets the scale of the lens flare bloom effect.")
}
SecondColumnLayout {
visible: lensFlareEnabledCheckBox.checked
SpinBox {
minimumValue: 0
maximumValue: 20
decimals: 2
stepSize: 0.01
sliderIndicatorVisible: true
backendValue: backendValues.lensFlareBloomScale
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: lensFlareEnabledCheckBox.checked
text: qsTr("Bloom Bias")
tooltip: qsTr("Sets the level at which the lens flare bloom starts.")
}
SecondColumnLayout {
visible: lensFlareEnabledCheckBox.checked
SpinBox {
minimumValue: 0
maximumValue: 10
decimals: 2
stepSize: 0.01
sliderIndicatorVisible: true
backendValue: backendValues.lensFlareBloomBias
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: lensFlareEnabledCheckBox.checked
text: qsTr("Ghost Dispersal")
tooltip: qsTr("Sets the distance between the lens flare ghosts.")
}
SecondColumnLayout {
visible: lensFlareEnabledCheckBox.checked
SpinBox {
minimumValue: 0.001
maximumValue: 1
decimals: 3
stepSize: 0.001
sliderIndicatorVisible: true
backendValue: backendValues.lensFlareGhostDispersal
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: lensFlareEnabledCheckBox.checked
text: qsTr("Ghost Count")
tooltip: qsTr("Sets the amount of lens flare ghosts.")
}
SecondColumnLayout {
visible: lensFlareEnabledCheckBox.checked
SpinBox {
minimumValue: 0
maximumValue: 20
decimals: 0
stepSize: 1
sliderIndicatorVisible: true
backendValue: backendValues.lensFlareGhostCount
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: lensFlareEnabledCheckBox.checked
text: qsTr("Halo Width")
tooltip: qsTr("Sets the size of the lens flare halo.")
}
SecondColumnLayout {
visible: lensFlareEnabledCheckBox.checked
SpinBox {
minimumValue: 0
maximumValue: 1
decimals: 3
stepSize: 0.001
sliderIndicatorVisible: true
backendValue: backendValues.lensFlareHaloWidth
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: lensFlareEnabledCheckBox.checked
text: qsTr("Stretch Aspect")
tooltip: qsTr("Set correction factor for roundness of the lens flare halo.")
}
SecondColumnLayout {
visible: lensFlareEnabledCheckBox.checked
SpinBox {
minimumValue: 0
maximumValue: 1
decimals: 3
stepSize: 0.001
sliderIndicatorVisible: true
backendValue: backendValues.lensFlareStretchToAspect
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: lensFlareEnabledCheckBox.checked
text: qsTr("Distortion")
tooltip: qsTr("Set amount of chromatic aberration in the lens flare.")
}
SecondColumnLayout {
visible: lensFlareEnabledCheckBox.checked
SpinBox {
minimumValue: 0
maximumValue: 25
decimals: 2
stepSize: 0.01
sliderIndicatorVisible: true
backendValue: backendValues.lensFlareDistortion
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: lensFlareEnabledCheckBox.checked
text: qsTr("Blur")
tooltip: qsTr("Set amount of blur to apply to the lens flare.")
}
SecondColumnLayout {
visible: lensFlareEnabledCheckBox.checked
SpinBox {
minimumValue: 0
maximumValue: 50
decimals: 2
stepSize: 0.01
sliderIndicatorVisible: true
backendValue: backendValues.lensFlareBlurAmount
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: lensFlareEnabledCheckBox.checked
text: qsTr("Lens Color Texture")
tooltip: qsTr("A gradient image used for the lens flare lens color.")
}
SecondColumnLayout {
visible: lensFlareEnabledCheckBox.checked
ItemFilterComboBox {
typeFilter: "QtQuick3D.Texture"
backendValue: backendValues.lensFlareLensColorTexture
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: lensFlareEnabledCheckBox.checked
text: qsTr("Apply Dirt")
tooltip: qsTr("Set whether to apply a dirt texture to the lens flare.")
}
SecondColumnLayout {
visible: lensFlareEnabledCheckBox.checked
CheckBox {
id: lensFlareDirtEnabledCheckBox
text: backendValues.lensFlareApplyDirtTexture.valueToString
backendValue: backendValues.lensFlareApplyDirtTexture
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: lensFlareEnabledCheckBox.checked && lensFlareDirtEnabledCheckBox.checked
text: qsTr("Dirt Texture")
tooltip: qsTr("An image that is used to simulate inperfections on the lens.")
}
SecondColumnLayout {
visible: lensFlareEnabledCheckBox.checked && lensFlareDirtEnabledCheckBox.checked
ItemFilterComboBox {
typeFilter: "QtQuick3D.Texture"
backendValue: backendValues.lensFlareLensDirtTexture
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: lensFlareEnabledCheckBox.checked
text: qsTr("Apply Starburst")
tooltip: qsTr("Set whether to apply a starburst texture to the lens flare.")
}
SecondColumnLayout {
visible: lensFlareEnabledCheckBox.checked
CheckBox {
id: lensFlareStarburstEnabledCheckBox
text: backendValues.lensFlareApplyStarburstTexture.valueToString
backendValue: backendValues.lensFlareApplyStarburstTexture
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: lensFlareEnabledCheckBox.checked && lensFlareStarburstEnabledCheckBox.checked
text: qsTr("Starburst Texture")
tooltip: qsTr("A noise image to augment the starburst effect of the lens flare.")
}
SecondColumnLayout {
visible: lensFlareEnabledCheckBox.checked && lensFlareStarburstEnabledCheckBox.checked
ItemFilterComboBox {
typeFilter: "QtQuick3D.Texture"
backendValue: backendValues.lensFlareLensStarburstTexture
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
visible: lensFlareEnabledCheckBox.checked
text: qsTr("Direction")
tooltip: qsTr("Sets the direction of the camera in the scene.")
}
SecondColumnLayout {
visible: lensFlareEnabledCheckBox.checked
SpinBox {
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
minimumValue: -9999999
maximumValue: 9999999
decimals: 2
backendValue: backendValues.lensFlareCameraDirection_x
}
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
ControlLabel {
text: "X"
color: StudioTheme.Values.theme3DAxisXColor
}
ExpandingSpacer {}
}
PropertyLabel {
visible: lensFlareEnabledCheckBox.checked
}
SecondColumnLayout {
visible: lensFlareEnabledCheckBox.checked
SpinBox {
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
minimumValue: -9999999
maximumValue: 9999999
decimals: 2
backendValue: backendValues.lensFlareCameraDirection_y
}
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
ControlLabel {
text: "Y"
color: StudioTheme.Values.theme3DAxisYColor
}
ExpandingSpacer {}
}
PropertyLabel {
visible: lensFlareEnabledCheckBox.checked
}
SecondColumnLayout {
visible: lensFlareEnabledCheckBox.checked
SpinBox {
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
minimumValue: -9999999
maximumValue: 9999999
decimals: 2
backendValue: backendValues.lensFlareCameraDirection_z
}
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
ControlLabel {
text: "Z"
color: StudioTheme.Values.theme3DAxisZColor
}
ExpandingSpacer {}
}
}
}
Section {
width: parent.width
caption: qsTr("Image Based Lighting")
SectionLayout {
PropertyLabel {
text: qsTr("HDR Image")
tooltip: qsTr("Sets an image to use to light the scene, either instead of, or in addition to standard lights.")
}
SecondColumnLayout {
ItemFilterComboBox {
typeFilter: "QtQuick3D.Texture"
backendValue: backendValues.lightProbe
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Exposure")
tooltip: qsTr("Sets the amount of light emitted by the light probe.")
}
SecondColumnLayout {
SpinBox {
minimumValue: 0
maximumValue: 9999999
decimals: 2
backendValue: backendValues.probeExposure
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Horizon")
tooltip: qsTr("Sets the light probe horizon. When set, adds darkness (black) to the bottom of the environment, forcing the lighting to come predominantly from the top of the image.")
}
SecondColumnLayout {
SpinBox {
minimumValue: 0
maximumValue: 1
decimals: 2
stepSize: 0.1
backendValue: backendValues.probeHorizon
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Orientation")
tooltip: qsTr("Sets the orientation of the light probe.")
}
SecondColumnLayout {
SpinBox {
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
minimumValue: -9999999
maximumValue: 9999999
decimals: 2
backendValue: backendValues.probeOrientation_x
}
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
ControlLabel {
text: "X"
color: StudioTheme.Values.theme3DAxisXColor
}
ExpandingSpacer {}
}
PropertyLabel {}
SecondColumnLayout {
SpinBox {
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
minimumValue: -9999999
maximumValue: 9999999
decimals: 2
backendValue: backendValues.probeOrientation_y
}
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
ControlLabel {
text: "Y"
color: StudioTheme.Values.theme3DAxisYColor
}
ExpandingSpacer {}
}
PropertyLabel {}
SecondColumnLayout {
SpinBox {
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
minimumValue: -9999999
maximumValue: 9999999
decimals: 2
backendValue: backendValues.probeOrientation_z
}
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
ControlLabel {
text: "Z"
color: StudioTheme.Values.theme3DAxisZColor
}
ExpandingSpacer {}
}
}
}
Section {
width: parent.width
caption: qsTr("Other Effects")
SectionLayout {
PropertyLabel {
text: qsTr("Effects")
tooltip: qsTr("Post Processing effects applied to this scene.")
Layout.alignment: Qt.AlignTop
Layout.topMargin: 5
}
SecondColumnLayout {
EditableListView {
backendValue: backendValues.effects
model: backendValues.effects.expressionAsList
Layout.fillWidth: true
typeFilter: "QtQuick3D.Effect"
onAdd: function(value) { backendValues.effects.idListAdd(value) }
onRemove: function(idx) { backendValues.effects.idListRemove(idx) }
onReplace: function (idx, value) { backendValues.effects.idListReplace(idx, value) }
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Fog")
tooltip: qsTr("Settings for Fog applied to the scene.")
}
SecondColumnLayout {
ItemFilterComboBox {
typeFilter: "QtQuick3D.Fog"
backendValue: backendValues.fog
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
}
}
Section {
width: parent.width
caption: qsTr("Advanced")
SectionLayout {
PropertyLabel {
text: qsTr("Enable Depth Test")
tooltip: qsTr("Enables depth testing. Disable to optimize render speed for layers with mostly transparent objects.")
}
SecondColumnLayout {
CheckBox {
text: backendValues.depthTestEnabled.valueToString
backendValue: backendValues.depthTestEnabled
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Enable Depth Prepass")
tooltip: qsTr("Enables draw depth buffer as a separate pass. Disable to optimize render speed for layers with low depth complexity.")
}
SecondColumnLayout {
CheckBox {
text: backendValues.depthPrePassEnabled.valueToString
backendValue: backendValues.depthPrePassEnabled
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Debug Settings")
tooltip: qsTr("Additional render settings for debugging scenes.")
}
SecondColumnLayout {
ItemFilterComboBox {
typeFilter: "QtQuick3D.DebugSettings"
backendValue: backendValues.debugSettings
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
}
}
}