| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480 |
- // 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
- Column {
- width: parent.width
- Section {
- caption: qsTr("Principled Material")
- width: parent.width
- SectionLayout {
- id: baseSectionLayout
- property bool isAlphaMaskMode: alphaModeComboBox.currentIndex === 1
- PropertyLabel {
- text: qsTr("Alpha Mode")
- tooltip: qsTr("Sets the mode for how the alpha channel of base color is used.")
- }
- SecondColumnLayout {
- ComboBox {
- id: alphaModeComboBox
- scope: "PrincipledMaterial"
- model: ["Default", "Mask", "Blend", "Opaque"]
- backendValue: backendValues.alphaMode
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- visible: baseSectionLayout.isAlphaMaskMode
- text: qsTr("Alpha Cutoff")
- tooltip: qsTr("Sets the cutoff value when using the Mask alphaMode.")
- }
- SecondColumnLayout {
- visible: baseSectionLayout.isAlphaMaskMode
- SpinBox {
- minimumValue: 0
- maximumValue: 1
- decimals: 2
- stepSize: 0.1
- sliderIndicatorVisible: true
- backendValue: backendValues.alphaCutoff
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Blend Mode")
- tooltip: qsTr("Sets how the colors of the model rendered blend with those behind it.")
- }
- SecondColumnLayout {
- ComboBox {
- scope: "PrincipledMaterial"
- model: ["SourceOver", "Screen", "Multiply"]
- backendValue: backendValues.blendMode
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Lighting")
- tooltip: qsTr("Sets which lighting method is used when generating this material.")
- }
- SecondColumnLayout {
- ComboBox {
- scope: "PrincipledMaterial"
- model: ["NoLighting", "FragmentLighting"]
- backendValue: backendValues.lighting
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- }
- }
- Section {
- caption: qsTr("Base Color")
- width: parent.width
- SectionLayout {
- PropertyLabel {
- text: qsTr("Color")
- }
- ColorEditor {
- backendValue: backendValues.baseColor
- supportGradient: false
- }
- PropertyLabel {
- text: qsTr("Map")
- tooltip: qsTr("Sets a texture used to set the base color of the material.")
- }
- SecondColumnLayout {
- ItemFilterComboBox {
- typeFilter: "QtQuick3D.Texture"
- backendValue: backendValues.baseColorMap
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Use Single Channel")
- tooltip: qsTr("Use only a single channel from baseColorMap.")
- }
- SecondColumnLayout {
- CheckBox {
- id: baseColorSingleChannelCheckBox
- text: checked ? qsTr("Enabled") : qsTr("Disabled")
- backendValue: backendValues.baseColorSingleChannelEnabled
- implicitWidth: StudioTheme.Values.twoControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Channel")
- tooltip: qsTr("Sets the texture channel used to read the base color value from baseColorMap.")
- }
- SecondColumnLayout {
- ComboBox {
- enabled: baseColorSingleChannelCheckBox.checked
- scope: "Material"
- model: ["R", "G", "B", "A"]
- backendValue: backendValues.baseColorChannel
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- }
- }
- Section {
- caption: qsTr("Metalness")
- width: parent.width
- SectionLayout {
- PropertyLabel {
- text: qsTr("Amount")
- tooltip: qsTr("Sets the metalness of the the material.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: 0
- maximumValue: 1
- decimals: 2
- stepSize: 0.1
- sliderIndicatorVisible: true
- backendValue: backendValues.metalness
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Map")
- tooltip: qsTr("Sets a texture to be used to set the metalness amount for the different parts of the material.")
- }
- SecondColumnLayout {
- ItemFilterComboBox {
- typeFilter: "QtQuick3D.Texture"
- backendValue: backendValues.metalnessMap
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Channel")
- tooltip: qsTr("Sets the texture channel used to read the metalness value from metalnessMap.")
- }
- SecondColumnLayout {
- ComboBox {
- scope: "Material"
- model: ["R", "G", "B", "A"]
- backendValue: backendValues.metalnessChannel
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- }
- }
- Section {
- caption: qsTr("Roughness")
- width: parent.width
- SectionLayout {
- PropertyLabel {
- text: qsTr("Roughness")
- tooltip: qsTr("Sets 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
- sliderIndicatorVisible: true
- backendValue: backendValues.roughness
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Map")
- tooltip: qsTr("Sets a texture to control the specular roughness of the material.")
- }
- SecondColumnLayout {
- ItemFilterComboBox {
- typeFilter: "QtQuick3D.Texture"
- backendValue: backendValues.roughnessMap
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Channel")
- tooltip: qsTr("Sets the texture channel used to read the roughness value from roughnessMap.")
- }
- SecondColumnLayout {
- ComboBox {
- scope: "Material"
- model: ["R", "G", "B", "A"]
- backendValue: backendValues.roughnessChannel
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- }
- }
- Section {
- caption: qsTr("Normal")
- width: parent.width
- SectionLayout {
- PropertyLabel {
- text: qsTr("Map")
- tooltip: qsTr("Sets an RGB image used to simulate fine geometry displacement across the surface of the material.")
- }
- SecondColumnLayout {
- ItemFilterComboBox {
- typeFilter: "QtQuick3D.Texture"
- backendValue: backendValues.normalMap
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Strength")
- tooltip: qsTr("Sets the amount of simulated displacement for the normalMap.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: 0
- maximumValue: 1
- decimals: 2
- stepSize: 0.1
- sliderIndicatorVisible: true
- backendValue: backendValues.normalStrength
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- }
- }
- Section {
- caption: qsTr("Occlusion")
- width: parent.width
- SectionLayout {
- PropertyLabel {
- text: qsTr("Amount")
- tooltip: qsTr("Sets the factor used to modify the values from the occlusionMap texture.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: 0
- maximumValue: 1
- decimals: 2
- stepSize: 0.1
- sliderIndicatorVisible: true
- backendValue: backendValues.occlusionAmount
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Map")
- tooltip: qsTr("Sets a texture used to determine how much indirect light the different areas of the material should receive.")
- }
- SecondColumnLayout {
- ItemFilterComboBox {
- typeFilter: "QtQuick3D.Texture"
- backendValue: backendValues.occlusionMap
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Channel")
- tooltip: qsTr("Sets the texture channel used to read the occlusion value from occlusionMap.")
- }
- SecondColumnLayout {
- ComboBox {
- scope: "Material"
- model: ["R", "G", "B", "A"]
- backendValue: backendValues.occlusionChannel
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- }
- }
- Section {
- caption: qsTr("Opacity")
- width: parent.width
- SectionLayout {
- PropertyLabel {
- text: qsTr("Amount")
- tooltip: qsTr("Sets the opacity of just this material, separate from the model.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: 0
- maximumValue: 1
- decimals: 2
- stepSize: 0.1
- sliderIndicatorVisible: true
- backendValue: backendValues.opacity
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Map")
- tooltip: qsTr("Sets a texture used to control the opacity differently for different parts of the material.")
- }
- SecondColumnLayout {
- ItemFilterComboBox {
- typeFilter: "QtQuick3D.Texture"
- backendValue: backendValues.opacityMap
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Channel")
- tooltip: qsTr("Sets the texture channel used to read the opacity value from opacityMap.")
- }
- SecondColumnLayout {
- ComboBox {
- scope: "Material"
- model: ["R", "G", "B", "A"]
- backendValue: backendValues.opacityChannel
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Invert Channel")
- tooltip: qsTr("Invert the values of the opacity map.")
- }
- SecondColumnLayout {
- CheckBox {
- text: checked ? qsTr("Enabled") : qsTr("Disabled")
- backendValue: backendValues.invertOpacityMapValue
- implicitWidth: StudioTheme.Values.twoControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- }
- }
- Section {
- caption: qsTr("Emissive Color")
- width: parent.width
- SectionLayout {
- PropertyLabel {
- text: qsTr("Map")
- tooltip: qsTr("Sets a texture to be used to set the emissive factor for different parts of the material.")
- }
- SecondColumnLayout {
- ItemFilterComboBox {
- typeFilter: "QtQuick3D.Texture"
- backendValue: backendValues.emissiveMap
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Factor")
- tooltip: qsTr("Sets the color of self-illumination for this material.")
- }
- SecondColumnLayout {
- SpinBox {
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- minimumValue: 0
- maximumValue: 16
- decimals: 2
- stepSize: 0.01
- sliderIndicatorVisible: true
- backendValue: backendValues.emissiveFactor_x
- }
- Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
- ControlLabel {
- text: "R"
- color: StudioTheme.Values.theme3DAxisXColor
- }
- ExpandingSpacer {}
- }
- PropertyLabel {}
- SecondColumnLayout {
- SpinBox {
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- minimumValue: 0
- maximumValue: 16
- decimals: 2
- stepSize: 0.01
- sliderIndicatorVisible: true
- backendValue: backendValues.emissiveFactor_y
- }
- Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
- ControlLabel {
- text: "G"
- color: StudioTheme.Values.theme3DAxisYColor
- }
- ExpandingSpacer {}
- }
- PropertyLabel {}
- SecondColumnLayout {
- SpinBox {
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- minimumValue: 0
- maximumValue: 16
- decimals: 2
- stepSize: 0.01
- sliderIndicatorVisible: true
- backendValue: backendValues.emissiveFactor_z
- }
- Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
- ControlLabel {
- text: "B"
- color: StudioTheme.Values.theme3DAxisZColor
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Use Single Channel")
- tooltip: qsTr("Use only a single channel from emissiveMap.")
- }
- SecondColumnLayout {
- CheckBox {
- id: emissiveSingleChannelCheckBox
- text: checked ? qsTr("Enabled") : qsTr("Disabled")
- backendValue: backendValues.emissiveSingleChannelEnabled
- implicitWidth: StudioTheme.Values.twoControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Channel")
- tooltip: qsTr("Sets the texture channel used to read the emissive value from emissiveMap.")
- }
- SecondColumnLayout {
- ComboBox {
- enabled: emissiveSingleChannelCheckBox.checked
- scope: "Material"
- model: ["R", "G", "B", "A"]
- backendValue: backendValues.emissiveChannel
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- }
- }
- Section {
- caption: qsTr("Height")
- width: parent.width
- SectionLayout {
- PropertyLabel {
- text: qsTr("Amount")
- tooltip: qsTr("Sets the factor used to modify the values from the heightMap texture.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: 0
- maximumValue: 1
- decimals: 2
- stepSize: 0.1
- sliderIndicatorVisible: true
- backendValue: backendValues.heightAmount
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Map")
- tooltip: qsTr("Sets a texture used to determine the height the texture will be displaced when rendered through the use of Parallax Mapping.")
- }
- SecondColumnLayout {
- ItemFilterComboBox {
- typeFilter: "QtQuick3D.Texture"
- backendValue: backendValues.heightMap
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Channel")
- tooltip: qsTr("Sets the texture channel used to read the height value from heightMap.")
- }
- SecondColumnLayout {
- ComboBox {
- scope: "Material"
- model: ["R", "G", "B", "A"]
- backendValue: backendValues.heightChannel
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Min Map Samples")
- tooltip: qsTr("Sets the minimum number of samples used for performing Parallex Occlusion Mapping using the heightMap.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: 1
- maximumValue: 128
- decimals: 0
- sliderIndicatorVisible: true
- backendValue: backendValues.minHeightMapSamples
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Max Map Samples")
- tooltip: qsTr("Sets the maximum number of samples used for performing Parallex Occlusion Mapping using the heightMap.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: 1
- maximumValue: 256
- decimals: 0
- sliderIndicatorVisible: true
- backendValue: backendValues.maxHeightMapSamples
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- }
- }
- Section {
- caption: qsTr("Clearcoat")
- width: parent.width
- SectionLayout {
- PropertyLabel {
- text: qsTr("Amount")
- tooltip: qsTr("Sets the intensity of the clearcoat layer.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: 0
- maximumValue: 1
- decimals: 2
- stepSize: 0.1
- sliderIndicatorVisible: true
- backendValue: backendValues.clearcoatAmount
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Map")
- tooltip: qsTr("Sets a texture used to determine the intensity of the clearcoat layer.")
- }
- SecondColumnLayout {
- ItemFilterComboBox {
- typeFilter: "QtQuick3D.Texture"
- backendValue: backendValues.clearcoatMap
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Channel")
- tooltip: qsTr("Sets the texture channel used to read the intensity from clearcoatMap.")
- }
- SecondColumnLayout {
- ComboBox {
- scope: "Material"
- model: ["R", "G", "B", "A"]
- backendValue: backendValues.clearcoatChannel
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Roughness Amount")
- tooltip: qsTr("Sets the roughness of the clearcoat layer.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: 0
- maximumValue: 1
- decimals: 2
- stepSize: 0.1
- sliderIndicatorVisible: true
- backendValue: backendValues.clearcoatRoughnessAmount
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Roughness Map")
- tooltip: qsTr("Sets a texture used to determine the roughness of the clearcoat layer.")
- }
- SecondColumnLayout {
- ItemFilterComboBox {
- typeFilter: "QtQuick3D.Texture"
- backendValue: backendValues.clearcoatRoughnessMap
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Roughness Channel")
- tooltip: qsTr("Sets the texture channel used to read the roughness from clearcoatRoughnessMap.")
- }
- SecondColumnLayout {
- ComboBox {
- scope: "Material"
- model: ["R", "G", "B", "A"]
- backendValue: backendValues.clearcoatRoughnessChannel
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Normal Map")
- tooltip: qsTr("Sets a texture used as a normalMap for the clearcoat layer.")
- }
- SecondColumnLayout {
- ItemFilterComboBox {
- typeFilter: "QtQuick3D.Texture"
- backendValue: backendValues.clearcoatNormalMap
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Normal Strength")
- tooltip: qsTr("Sets the Normal Strength of the clearcoat layer.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: 0
- maximumValue: 1
- decimals: 2
- stepSize: 0.1
- sliderIndicatorVisible: true
- backendValue: backendValues.clearcoatNormalStrength
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Fresnel Power")
- tooltip: qsTr("Sets the fresnel power.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: 0
- maximumValue: 1000
- stepSize: 0.1
- decimals: 2
- backendValue: backendValues.clearcoatFresnelPower
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Enable scale and bias")
- tooltip: qsTr("Sets whether fresnel scale and bias are enabled.")
- }
- SecondColumnLayout {
- CheckBox {
- text: checked ? qsTr("Enabled") : qsTr("Disabled")
- backendValue: backendValues.clearcoatFresnelScaleBiasEnabled
- implicitWidth: StudioTheme.Values.twoControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Fresnel Scale")
- tooltip: qsTr("Sets the fresnel scale.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: 0
- maximumValue: 5
- stepSize: 0.1
- decimals: 2
- backendValue: backendValues.clearcoatFresnelScale
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Fresnel Bias")
- tooltip: qsTr("Sets the fresnel bias.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: -1
- maximumValue: 1
- stepSize: 0.1
- decimals: 2
- backendValue: backendValues.clearcoatFresnelBias
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- }
- }
- Section {
- caption: qsTr("Refraction")
- width: parent.width
- SectionLayout {
- PropertyLabel {
- text: qsTr("Transmission Factor")
- tooltip: qsTr("Sets the base percentage of light that is transmitted through the surface.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: 0
- maximumValue: 1
- decimals: 2
- stepSize: 0.1
- sliderIndicatorVisible: true
- backendValue: backendValues.transmissionFactor
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Transmission Map")
- tooltip: qsTr("Sets a texture that contains the transmission percentage of a the surface.")
- }
- SecondColumnLayout {
- ItemFilterComboBox {
- typeFilter: "QtQuick3D.Texture"
- backendValue: backendValues.transmissionMap
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Transmission Channel")
- tooltip: qsTr("Sets the texture channel used to read the transmission percentage from transmissionMap.")
- }
- SecondColumnLayout {
- ComboBox {
- scope: "Material"
- model: ["R", "G", "B", "A"]
- backendValue: backendValues.transmissionChannel
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Index of Refraction")
- tooltip: qsTr("Sets the index of refraction of the material.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: 1
- maximumValue: 3
- decimals: 2
- stepSize: 0.1
- sliderIndicatorVisible: true
- backendValue: backendValues.indexOfRefraction
- implicitWidth: StudioTheme.Values.twoControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Thickness Factor")
- tooltip: qsTr("Sets the thickness of the volume beneath the surface in model coordinate space.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: 0
- maximumValue: Infinity
- decimals: 2
- backendValue: backendValues.thicknessFactor
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Thickness Map")
- tooltip: qsTr("Sets a texture that contains the thickness of a the material volume.")
- }
- SecondColumnLayout {
- ItemFilterComboBox {
- typeFilter: "QtQuick3D.Texture"
- backendValue: backendValues.thicknessMap
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Thickness Channel")
- tooltip: qsTr("Sets the texture channel used to read the thickness amount from thicknessMap.")
- }
- SecondColumnLayout {
- ComboBox {
- scope: "Material"
- model: ["R", "G", "B", "A"]
- backendValue: backendValues.thicknessChannel
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Attenuation Color")
- tooltip: qsTr("Sets the color that white lights turn into due to absorption when reaching the attenuation distance.")
- }
- ColorEditor {
- backendValue: backendValues.attenuationColor
- supportGradient: false
- }
- PropertyLabel {
- text: qsTr("Attenuation Distance")
- tooltip: qsTr("Sets the average distance in world space that light travels in the medium before interacting with a particle.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: 0
- maximumValue: Infinity
- decimals: 2
- backendValue: backendValues.attenuationDistance
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- }
- }
- Section {
- caption: qsTr("Fresnel")
- width: parent.width
- SectionLayout {
- PropertyLabel {
- text: qsTr("Fresnel Power")
- tooltip: qsTr("Sets the fresnel power.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: 0
- maximumValue: 1000
- stepSize: 0.1
- decimals: 2
- backendValue: backendValues.fresnelPower
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Enable scale and bias")
- tooltip: qsTr("Sets whether fresnel scale and bias are enabled.")
- }
- SecondColumnLayout {
- CheckBox {
- text: checked ? qsTr("Enabled") : qsTr("Disabled")
- backendValue: backendValues.fresnelScaleBiasEnabled
- implicitWidth: StudioTheme.Values.twoControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Fresnel Scale")
- tooltip: qsTr("Sets the fresnel scale.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: 0
- maximumValue: 5
- stepSize: 0.1
- decimals: 2
- backendValue: backendValues.fresnelScale
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Fresnel Bias")
- tooltip: qsTr("Sets the fresnel bias.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: -1
- maximumValue: 1
- stepSize: 0.1
- decimals: 2
- backendValue: backendValues.fresnelBias
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- }
- }
- Section {
- caption: qsTr("Vertex Color")
- width: parent.width
- SectionLayout {
- PropertyLabel {
- text: qsTr("Show Colors")
- tooltip: qsTr("Sets whether vertex colors are used to modulate the base color.")
- }
- SecondColumnLayout {
- CheckBox {
- text: checked ? qsTr("Enabled") : qsTr("Disabled")
- backendValue: backendValues.vertexColorsEnabled
- implicitWidth: StudioTheme.Values.twoControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Enable Masks")
- tooltip: qsTr("Sets whether vertex colors mask are used.")
- }
- SecondColumnLayout {
- CheckBox {
- text: checked ? qsTr("Enabled") : qsTr("Disabled")
- backendValue: backendValues.vertexColorsMaskEnabled
- implicitWidth: StudioTheme.Values.twoControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- ListModel {
- id: colorMaskModel
- ListElement {
- name: "Roughness"
- flag: "RoughnessMask"
- }
- ListElement {
- name: "Normal Strength"
- flag: "NormalStrengthMask"
- }
- ListElement {
- name: "Specular Amount"
- flag: "SpecularAmountMask"
- }
- ListElement {
- name: "Clearcoat Amount"
- flag: "ClearcoatAmountMask"
- }
- ListElement {
- name: "Clearcoat Roughness Amount"
- flag: "ClearcoatRoughnessAmountMask"
- }
- ListElement {
- name: "Clearcoat Normal Strength"
- flag: "ClearcoatNormalStrengthMask"
- }
- ListElement {
- name: "Height Amount"
- flag: "HeightAmountMask"
- }
- ListElement {
- name: "Metalness"
- flag: "MetalnessMask"
- }
- ListElement {
- name: "Occlusion Amount"
- flag: "OcclusionAmountMask"
- }
- ListElement {
- name: "Thickness Factor"
- flag: "ThicknessFactorMask"
- }
- ListElement {
- name: "Transmission Factor"
- flag: "TransmissionFactorMask"
- }
- }
- PropertyLabel {
- text: qsTr("Mask R")
- tooltip: qsTr("Sets the properties masked by the vertex color red channel.")
- }
- SecondColumnLayout {
- FlagsComboBox {
- backendValue: backendValues.vertexColorRedMask
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- itemsModel: colorMaskModel
- scope: "PrincipledMaterial"
- zeroFlag: "NoMask"
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Mask G")
- tooltip: qsTr("Sets the properties masked by the vertex color green channel.")
- }
- SecondColumnLayout {
- FlagsComboBox {
- backendValue: backendValues.vertexColorGreenMask
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- itemsModel: colorMaskModel
- scope: "PrincipledMaterial"
- zeroFlag: "NoMask"
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Mask B")
- tooltip: qsTr("Sets the properties masked by the vertex color blue channel.")
- }
- SecondColumnLayout {
- FlagsComboBox {
- backendValue: backendValues.vertexColorBlueMask
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- itemsModel: colorMaskModel
- scope: "PrincipledMaterial"
- zeroFlag: "NoMask"
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Mask A")
- tooltip: qsTr("Sets the properties masked by the vertex color alpha channel.")
- }
- SecondColumnLayout {
- FlagsComboBox {
- backendValue: backendValues.vertexColorAlphaMask
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- itemsModel: colorMaskModel
- scope: "PrincipledMaterial"
- zeroFlag: "NoMask"
- }
- ExpandingSpacer {}
- }
- }
- }
- Section {
- caption: qsTr("Advanced")
- width: parent.width
- SectionLayout {
- PropertyLabel {
- text: qsTr("Point Size")
- tooltip: qsTr("Sets the size of the points rendered, when the geometry is using a primitive type of points.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: 0
- maximumValue: 1024
- decimals: 0
- backendValue: backendValues.pointSize
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Line Width")
- tooltip: qsTr("Sets the width of the lines rendered, when the geometry is using a primitive type of lines or line strips.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: 0
- maximumValue: 1024
- decimals: 0
- backendValue: backendValues.lineWidth
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- }
- }
- Section {
- caption: qsTr("Overrides")
- width: parent.width
- SectionLayout {
- PropertyLabel {
- text: qsTr("Specular Amount")
- tooltip: qsTr("Override the strength of specularity (highlights and reflections).")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: 0
- maximumValue: 1
- decimals: 2
- stepSize: 0.1
- sliderIndicatorVisible: true
- backendValue: backendValues.specularAmount
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Specular Map")
- tooltip: qsTr("An RGB Texture to override the amount and the color of specularity across the surface of the material.")
- }
- SecondColumnLayout {
- ItemFilterComboBox {
- typeFilter: "QtQuick3D.Texture"
- backendValue: backendValues.specularMap
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Use Single Channel")
- tooltip: qsTr("Use only a single channel from specularMap.")
- }
- SecondColumnLayout {
- CheckBox {
- id: specularSingleChannelCheckBox
- text: checked ? qsTr("Enabled") : qsTr("Disabled")
- backendValue: backendValues.specularSingleChannelEnabled
- implicitWidth: StudioTheme.Values.twoControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Channel")
- tooltip: qsTr("Sets the texture channel used to read the specular value from specularMap.")
- }
- SecondColumnLayout {
- ComboBox {
- enabled: specularSingleChannelCheckBox.checked
- scope: "Material"
- model: ["R", "G", "B", "A"]
- backendValue: backendValues.specularChannel
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Specular Tint")
- tooltip: qsTr("Override how much of the base color contributes to the specular reflections.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: 0
- maximumValue: 1
- decimals: 2
- stepSize: 0.1
- sliderIndicatorVisible: true
- backendValue: backendValues.specularTint
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- PropertyLabel {
- text: qsTr("Reflection Map")
- tooltip: qsTr("Sets a texture used for specular highlights on the material.")
- }
- SecondColumnLayout {
- ItemFilterComboBox {
- typeFilter: "QtQuick3D.Texture"
- backendValue: backendValues.specularReflectionMap
- implicitWidth: StudioTheme.Values.singleControlColumnWidth
- + StudioTheme.Values.actionIndicatorWidth
- }
- ExpandingSpacer {}
- }
- }
- }
- }
|