/**************************************************************************** ** ** 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 } } } } } }