blob: c218a8c1526d2cf602ea597732a199a16608947e [file] [log] [blame]
/****************************************************************************
**
** Copyright (C) 2020 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("Principled Material")
width: parent.width
SectionLayout {
Label {
text: qsTr("Alpha Mode")
tooltip: qsTr("Sets the mode for how the alpha channel of material color is used.")
}
SecondColumnLayout {
ComboBox {
scope: "PrincipledMaterial"
model: ["Opaque", "Mask", "Blend"]
backendValue: backendValues.alphaMode
Layout.fillWidth: true
}
}
Label {
text: qsTr("Alpha Cutoff")
tooltip: qsTr("Specifies the cutoff value when using the Mask alphaMode.")
}
SecondColumnLayout {
SpinBox {
minimumValue: 0
maximumValue: 1
decimals: 2
stepSize: 0.1
backendValue: backendValues.alphaCutoff
Layout.fillWidth: true
}
}
Label {
text: qsTr("Blend Mode")
tooltip: qsTr("Determines how the colors of the model rendered blend with those behind it.")
}
SecondColumnLayout {
ComboBox {
scope: "PrincipledMaterial"
model: ["SourceOver", "Screen", "Multiply", "Overlay", "ColorBurn", "ColorDodge"]
backendValue: backendValues.blendMode
Layout.fillWidth: true
}
}
Label {
text: qsTr("Index Of Refraction")
tooltip: qsTr("Controls how fast light travels through the material.")
}
SecondColumnLayout {
SpinBox {
minimumValue: 1
maximumValue: 3
decimals: 2
stepSize: 0.1
backendValue: backendValues.indexOfRefraction
Layout.fillWidth: true
}
}
Label {
text: qsTr("Lighting")
tooltip: qsTr("Defines which lighting method is used when generating this material.")
}
SecondColumnLayout {
ComboBox {
scope: "PrincipledMaterial"
model: ["NoLighting", "FragmentLighting"]
backendValue: backendValues.lighting
Layout.fillWidth: true
}
}
}
}
Section {
caption: qsTr("Metalness")
width: parent.width
SectionLayout {
Label {
text: qsTr("Metalness")
tooltip: qsTr("Defines the metalness of the the material.")
}
SecondColumnLayout {
SpinBox {
minimumValue: 0
maximumValue: 1
decimals: 2
stepSize: 0.1
backendValue: backendValues.metalness
Layout.fillWidth: true
}
}
Label {
text: qsTr("Metalness Map")
tooltip: qsTr("Sets a texture to be used to set the metalness amount for the different parts of the material.")
}
SecondColumnLayout {
IdComboBox {
typeFilter: "QtQuick3D.Texture"
Layout.fillWidth: true
backendValue: backendValues.metalnessMap
}
}
Label {
text: qsTr("Metalness Channel")
tooltip: qsTr("Defines the texture channel used to read the metalness value from metalnessMap.")
}
SecondColumnLayout {
ComboBox {
scope: "Material"
model: ["R", "G", "B", "A"]
backendValue: backendValues.metalnessChannel
Layout.fillWidth: true
}
}
}
}
Section {
caption: qsTr("Normal")
width: parent.width
SectionLayout {
Label {
text: qsTr("Normal Map")
tooltip: qsTr("Defines an RGB image used to simulate fine geometry displacement across the surface of the material.")
}
SecondColumnLayout {
IdComboBox {
typeFilter: "QtQuick3D.Texture"
Layout.fillWidth: true
backendValue: backendValues.normalMap
}
}
Label {
text: qsTr("Normal Strength")
tooltip: qsTr("Controls the amount of simulated displacement for the normalMap.")
}
SecondColumnLayout {
SpinBox {
minimumValue: 0
maximumValue: 1
decimals: 2
stepSize: 0.1
backendValue: backendValues.normalStrength
Layout.fillWidth: true
}
}
}
}
Section {
caption: qsTr("Occlusion")
width: parent.width
SectionLayout {
Label {
text: qsTr("Occlusion Amount")
tooltip: qsTr("Contains the factor used to modify the values from the occlusionMap texture.")
}
SecondColumnLayout {
SpinBox {
minimumValue: 0
maximumValue: 1
decimals: 2
stepSize: 0.1
backendValue: backendValues.occlusionAmount
Layout.fillWidth: true
}
}
Label {
text: qsTr("Occlusion Map")
tooltip: qsTr("Defines a texture used to determine how much indirect light the different areas of the material should receive.")
}
SecondColumnLayout {
IdComboBox {
typeFilter: "QtQuick3D.Texture"
Layout.fillWidth: true
backendValue: backendValues.occlusionMap
}
}
Label {
text: qsTr("Occlusion Channel")
tooltip: qsTr("Defines the texture channel used to read the occlusion value from occlusionMap.")
}
SecondColumnLayout {
ComboBox {
scope: "Material"
model: ["R", "G", "B", "A"]
backendValue: backendValues.occlusionChannel
Layout.fillWidth: true
}
}
}
}
Section {
caption: qsTr("Opacity")
width: parent.width
SectionLayout {
Label {
text: qsTr("Opacity")
tooltip: qsTr("Drops the opacity of just this material, separate from the model.")
}
SecondColumnLayout {
SpinBox {
maximumValue: 1
minimumValue: 0
decimals: 2
stepSize: 0.1
backendValue: backendValues.opacity
Layout.fillWidth: true
}
}
Label {
text: qsTr("Opacity Map")
tooltip: qsTr("Defines a texture used to control the opacity differently for different parts of the material.")
}
SecondColumnLayout {
IdComboBox {
typeFilter: "QtQuick3D.Texture"
Layout.fillWidth: true
backendValue: backendValues.opacityMap
}
}
Label {
text: qsTr("Opacity Channel")
tooltip: qsTr("Defines the texture channel used to read the opacity value from opacityMap.")
}
SecondColumnLayout {
ComboBox {
scope: "Material"
model: ["R", "G", "B", "A"]
backendValue: backendValues.opacityChannel
Layout.fillWidth: true
}
}
}
}
Section {
caption: qsTr("Roughness")
width: parent.width
SectionLayout {
Label {
text: qsTr("Roughness")
tooltip: qsTr("Controls the size of the specular highlight generated from lights, and the clarity of reflections in general.")
}
SecondColumnLayout {
SpinBox {
minimumValue: 0
maximumValue: 1
decimals: 2
stepSize: 0.1
backendValue: backendValues.roughness
Layout.fillWidth: true
}
}
Label {
text: qsTr("Roughness Map")
tooltip: qsTr("Defines a texture to control the specular roughness of the material.")
}
SecondColumnLayout {
IdComboBox {
typeFilter: "QtQuick3D.Texture"
Layout.fillWidth: true
backendValue: backendValues.roughnessMap
}
}
Label {
text: qsTr("Roughness Channel")
tooltip: qsTr("Defines the texture channel used to read the roughness value from roughnessMap.")
}
SecondColumnLayout {
ComboBox {
scope: "Material"
model: ["R", "G", "B", "A"]
backendValue: backendValues.roughnessChannel
Layout.fillWidth: true
}
}
}
}
Section {
caption: qsTr("Specular")
width: parent.width
SectionLayout {
Label {
text: qsTr("Specular Amount")
tooltip: qsTr("Controls the strength of specularity (highlights and reflections).")
}
SecondColumnLayout {
SpinBox {
minimumValue: 0
maximumValue: 1
decimals: 2
stepSize: 0.1
backendValue: backendValues.specularAmount
Layout.fillWidth: true
}
}
Label {
text: qsTr("Specular Map")
tooltip: qsTr("Defines a RGB Texture to modulate the amount and the color of specularity across the surface of the material.")
}
SecondColumnLayout {
IdComboBox {
typeFilter: "QtQuick3D.Texture"
Layout.fillWidth: true
backendValue: backendValues.specularMap
}
}
Label {
text: qsTr("Specular Reflection Map")
tooltip: qsTr("Sets a texture used for specular highlights on the material.")
}
SecondColumnLayout {
IdComboBox {
typeFilter: "QtQuick3D.Texture"
Layout.fillWidth: true
backendValue: backendValues.specularReflectionMap
}
}
Label {
text: qsTr("Specular Tint")
tooltip: qsTr("Defines how much of the base color contributes to the specular reflections.")
}
SecondColumnLayout {
SpinBox {
minimumValue: 0
maximumValue: 1
decimals: 2
stepSize: 0.1
backendValue: backendValues.specularTint
Layout.fillWidth: true
}
}
}
}
Section {
caption: qsTr("Base Color")
width: parent.width
Column {
width: parent.width
ColorEditor {
caption: qsTr("Base Color")
backendValue: backendValues.baseColor
supportGradient: false
Layout.fillWidth: true
}
SectionLayout {
Label {
text: qsTr("Base Color Map")
tooltip: qsTr("Defines a texture used to set the base color of the material.")
}
SecondColumnLayout {
IdComboBox {
typeFilter: "QtQuick3D.Texture"
Layout.fillWidth: true
backendValue: backendValues.baseColorMap
}
}
}
}
}
Section {
caption: qsTr("Emissive Color")
width: parent.width
Column {
width: parent.width
ColorEditor {
caption: qsTr("Emissive Color")
backendValue: backendValues.emissiveColor
supportGradient: false
Layout.fillWidth: true
}
SectionLayout {
Label {
text: qsTr("Emissive Map")
tooltip: qsTr("Sets a texture to be used to set the emissive factor for different parts of the material.")
}
SecondColumnLayout {
IdComboBox {
typeFilter: "QtQuick3D.Texture"
Layout.fillWidth: true
backendValue: backendValues.emissiveMap
}
}
}
}
}
}