/**************************************************************************** ** ** Copyright (C) 2019 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qt Quick 3D. ** ** $QT_BEGIN_LICENSE:GPL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3 or (at your option) any later version ** approved by the KDE Free Qt Foundation. The licenses are as published by ** the Free Software Foundation and appearing in the file LICENSE.GPL3 ** included in the packaging of this file. Please review the following ** information to ensure the GNU General Public License requirements will ** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 2.15 import HelperWidgets 2.0 import QtQuick.Layouts 1.12 Column { width: parent.width Section { caption: qsTr("Scene Environment") width: parent.width SectionLayout { Label { text: qsTr("Antialiasing Mode") tooltip: qsTr("Sets the antialiasing mode applied to the scene.") } SecondColumnLayout { ComboBox { scope: "SceneEnvironment" model: ["NoAA", "SSAA", "MSAA", "ProgressiveAA"] backendValue: backendValues.antialiasingMode Layout.fillWidth: true } } Label { text: qsTr("Antialiasing Quality") tooltip: qsTr("Sets the level of antialiasing applied to the scene.") } SecondColumnLayout { ComboBox { scope: "SceneEnvironment" model: ["Medium", "High", "VeryHigh"] backendValue: backendValues.antialiasingQuality Layout.fillWidth: true } } Label { text: qsTr("Temporal AA") tooltip: qsTr("Enables temporal antialiasing using camera jittering and frame blending.") } SecondColumnLayout { CheckBox { text: backendValues.temporalAAEnabled.valueToString backendValue: backendValues.temporalAAEnabled Layout.fillWidth: true } } Label { text: qsTr("Temporal AA Strength") tooltip: qsTr("Sets the amount of temporal antialiasing applied.") } SecondColumnLayout { SpinBox { maximumValue: 2.0 minimumValue: 0.01 decimals: 2 stepSize: 0.1 backendValue: backendValues.temporalAAStrength Layout.fillWidth: true } } Label { text: qsTr("Background Mode") tooltip: qsTr("Controls if and how the background of the scene should be cleared.") } SecondColumnLayout { ComboBox { scope: "SceneEnvironment" model: ["Transparent", "Unspecified", "Color", "SkyBox"] backendValue: backendValues.backgroundMode Layout.fillWidth: true } } Label { 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 Layout.fillWidth: true } } Label { text: qsTr("Enable Depth Prepass") tooltip: qsTr("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 Layout.fillWidth: true } } Label { text: qsTr("Effect") tooltip: qsTr("A post-processing effect applied to this scene.") } 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) } } } } } Section { caption: qsTr("Clear Color") width: parent.width ColorEditor { caption: qsTr("Clear Color") backendValue: backendValues.clearColor supportGradient: false Layout.fillWidth: true } } Section { caption: qsTr("Ambient Occlusion") width: parent.width SectionLayout { Label { text: qsTr("AO Strength") tooltip: qsTr("Sets the amount of ambient occlusion applied.") } SecondColumnLayout { SpinBox { maximumValue: 100 minimumValue: 0 decimals: 0 backendValue: backendValues.aoStrength Layout.fillWidth: true } } Label { text: qsTr("AO Distance") tooltip: qsTr("Sets how far ambient occlusion shadows spread away from objects.") } SecondColumnLayout { SpinBox { maximumValue: 99999 minimumValue: 0 decimals: 0 backendValue: backendValues.aoDistance Layout.fillWidth: true } } Label { text: qsTr("AO Softness") tooltip: qsTr("Sets how smooth the edges of the ambient occlusion shading are.") } SecondColumnLayout { SpinBox { maximumValue: 50 minimumValue: 0 decimals: 0 backendValue: backendValues.aoSoftness Layout.fillWidth: true } } Label { text: qsTr("AO Dither") tooltip: qsTr("Enables scattering of the ambient occlusion shadow band edges to improve smoothness (at the risk of sometimes producing obvious patterned artifacts).") } SecondColumnLayout { CheckBox { text: backendValues.aoDither.valueToString backendValue: backendValues.aoDither Layout.fillWidth: true } } Label { text: qsTr("AO Sample Rate") tooltip: qsTr("Sets the ambient occlusion quality (more shades of gray) at the expense of performance.") } SecondColumnLayout { SpinBox { maximumValue: 4 minimumValue: 2 decimals: 0 backendValue: backendValues.aoSampleRate Layout.fillWidth: true } } Label { text: qsTr("AO Bias") tooltip: qsTr("Sets the cutoff distance preventing objects from exhibiting ambient occlusion at close distances.") } SecondColumnLayout { SpinBox { maximumValue: 999999 minimumValue: -999999 realDragRange: 5000 decimals: 2 backendValue: backendValues.aoBias Layout.fillWidth: true } } } } Section { caption: qsTr("Image Based Lighting") width: parent.width SectionLayout { Label { text: qsTr("Light Probe") tooltip: qsTr("Defines a texture for overriding or setting an image based lighting texture for use with the skybox of this scene.") } SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" Layout.fillWidth: true backendValue: backendValues.lightProbe } } Label { text: qsTr("Probe Brightness") tooltip: qsTr("Sets the amount of light emitted by the light probe.") } SecondColumnLayout { SpinBox { maximumValue: 999999 minimumValue: -999999 realDragRange: 5000 decimals: 0 backendValue: backendValues.probeBrightness Layout.fillWidth: true } } Label { text: qsTr("Fast IBL") tooltip: qsTr("Use a faster approximation to image-based lighting.") } SecondColumnLayout { CheckBox { text: backendValues.aoDither.valueToString backendValue: backendValues.fastIBL Layout.fillWidth: true } } Label { text: qsTr("Probe Horizon") tooltip: qsTr("Upper limit for horizon darkening of the light probe.") } SecondColumnLayout { SpinBox { maximumValue: -0.001 minimumValue: -1 decimals: 3 stepSize: 0.1 backendValue: backendValues.probeHorizon Layout.fillWidth: true } } Label { text: qsTr("Probe FOV") tooltip: qsTr("Image source FOV for the case of using a camera-source as the IBL probe.") } SecondColumnLayout { SpinBox { maximumValue: 180 minimumValue: 1.0 decimals: 1 backendValue: backendValues.probeFieldOfView Layout.fillWidth: true } } } } }