diff --git a/src/imports/effectlib/designer/EffectSection.qml b/src/imports/effectlib/designer/EffectSection.qml
new file mode 100644
index 0000000000000000000000000000000000000000..fc71164c1d1455a58d5c88afdbeb94a60a2acf65
--- /dev/null
+++ b/src/imports/effectlib/designer/EffectSection.qml
@@ -0,0 +1,56 @@
+/****************************************************************************
+**
+** 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
+
+Section {
+    caption: qsTr("Effect")
+    width: parent.width
+
+    SectionLayout {
+        Label {
+            text: qsTr("Passes")
+            tooltip: qsTr("Render passes of the effect.")
+        }
+        SecondColumnLayout {
+            EditableListView {
+                backendValue: backendValues.passes
+                model: backendValues.passes.expressionAsList
+                Layout.fillWidth: true
+                typeFilter: "QtQuick3D.Pass"
+
+                onAdd: function(value) { backendValues.passes.idListAdd(value) }
+                onRemove: function(idx) { backendValues.passes.idListRemove(idx) }
+                onReplace: function (idx, value) { backendValues.passes.idListReplace(idx, value) }
+            }
+        }
+    }
+}
diff --git a/src/imports/effectlib/designer/EffectSpecifics.qml b/src/imports/effectlib/designer/EffectSpecifics.qml
new file mode 100644
index 0000000000000000000000000000000000000000..f337d42ffe3cf7a0eb64c976d37efc2a2b376115
--- /dev/null
+++ b/src/imports/effectlib/designer/EffectSpecifics.qml
@@ -0,0 +1,40 @@
+/****************************************************************************
+**
+** 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
+
+    EffectSection {
+        width: parent.width
+    }
+}
diff --git a/src/imports/effectlib/designer/designer.pri b/src/imports/effectlib/designer/designer.pri
index fbb22802f1fb1dfc7d013bed84a1b71866dfb745..91beef1938af85cf9c6fe77949f971f55f9cb3e2 100644
--- a/src/imports/effectlib/designer/designer.pri
+++ b/src/imports/effectlib/designer/designer.pri
@@ -44,7 +44,9 @@ AUX_QML_FILES += \
     $$PWD/TiltShiftSection.qml \
     $$PWD/TiltShiftSpecifics.qml \
     $$PWD/VignetteSection.qml \
-    $$PWD/VignetteSpecifics.qml
+    $$PWD/VignetteSpecifics.qml \
+    $$PWD/EffectSection.qml \
+    $$PWD/EffectSpecifics.qml
 
 AUX_QML_FILES += \
     $$PWD/images/effect.png \
diff --git a/src/imports/effectlib/designer/effectlib.metainfo b/src/imports/effectlib/designer/effectlib.metainfo
index b649487145b6486a147c2b92089d52bb86572b19..dadd9d887b80890eb3d8cb827ab5988ac34a243d 100644
--- a/src/imports/effectlib/designer/effectlib.metainfo
+++ b/src/imports/effectlib/designer/effectlib.metainfo
@@ -398,4 +398,22 @@ MetaInfo {
             requiredImport: "QtQuick3D.Effects"
         }
     }
+    Type {
+        name: "QtQuick3D.Effects.Effect"
+        icon: "images/effect16.png"
+
+        Hints {
+            visibleInNavigator: true
+            canBeDroppedInNavigator: true
+            canBeDroppedInFormEditor: false
+        }
+
+        ItemLibraryEntry {
+            name: "Effect"
+            category: "Qt Quick 3D Custom Shader Utils"
+            libraryIcon: "images/effect.png"
+            version: "1.15"
+            requiredImport: "QtQuick3D.Effects"
+        }
+    }
 }
diff --git a/src/imports/effectlib/designer/images/effect.png b/src/imports/effectlib/designer/images/effect.png
index a3b6c7f6f243d86dd4ada0db8f709a0a5adeaa9c..8f9f2880e48d78c15e4189ee17c5f695bd9ea4ba 100644
Binary files a/src/imports/effectlib/designer/images/effect.png and b/src/imports/effectlib/designer/images/effect.png differ
diff --git a/src/imports/effectlib/designer/images/effect16.png b/src/imports/effectlib/designer/images/effect16.png
index de8906a724d67a95b221c5d11f2d20cd5bd42a0c..93fbc032a899e54b8f171951e4c24d6eef3ffc70 100644
Binary files a/src/imports/effectlib/designer/images/effect16.png and b/src/imports/effectlib/designer/images/effect16.png differ
diff --git a/src/imports/effectlib/designer/images/effect@2x.png b/src/imports/effectlib/designer/images/effect@2x.png
index 7ca04a01eaa5a247ee96d385f0ad7b188af6cd71..204f50ecab0678f81c312694a0163b2c4692c9b9 100644
Binary files a/src/imports/effectlib/designer/images/effect@2x.png and b/src/imports/effectlib/designer/images/effect@2x.png differ
diff --git a/src/imports/materiallib/designer/CustomMaterialSection.qml b/src/imports/materiallib/designer/CustomMaterialSection.qml
new file mode 100644
index 0000000000000000000000000000000000000000..bf540c5e4e5f109ba89a70e74778ae6b4162bda8
--- /dev/null
+++ b/src/imports/materiallib/designer/CustomMaterialSection.qml
@@ -0,0 +1,160 @@
+/****************************************************************************
+**
+** 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("Custom Material")
+        width: parent.width
+
+        SectionLayout {
+            Label {
+                text: qsTr("Transparency")
+                tooltip: qsTr("Specifies if the material has transparency.")
+            }
+            SecondColumnLayout {
+                CheckBox {
+                    text: backendValues.hasTransparency.valueToString
+                    backendValue: backendValues.hasTransparency
+                    Layout.fillWidth: true
+                }
+            }
+            Label {
+                text: qsTr("Refraction")
+                tooltip: qsTr("Specifies if the material has refraction.")
+            }
+            SecondColumnLayout {
+                CheckBox {
+                    text: backendValues.hasRefraction.valueToString
+                    backendValue: backendValues.hasRefraction
+                    Layout.fillWidth: true
+                }
+            }
+            Label {
+                text: qsTr("Always Dirty")
+                tooltip: qsTr("Specifies if the material needs to be refreshed every time it is used.")
+            }
+            SecondColumnLayout {
+                CheckBox {
+                    text: backendValues.alwaysDirty.valueToString
+                    backendValue: backendValues.alwaysDirty
+                    Layout.fillWidth: true
+                }
+            }
+            Label {
+                text: qsTr("Shader Info")
+                tooltip: qsTr("Shader info for the material.")
+            }
+            SecondColumnLayout {
+                IdComboBox {
+                    typeFilter: "QtQuick3D.ShaderInfo"
+                    Layout.fillWidth: true
+                    backendValue: backendValues.shaderInfo
+                }
+            }
+            Label {
+                text: qsTr("Passes")
+                tooltip: qsTr("Render passes of the material.")
+            }
+            SecondColumnLayout {
+                EditableListView {
+                    backendValue: backendValues.passes
+                    model: backendValues.passes.expressionAsList
+                    Layout.fillWidth: true
+                    typeFilter: "QtQuick3D.Pass"
+
+                    onAdd: function(value) { backendValues.passes.idListAdd(value) }
+                    onRemove: function(idx) { backendValues.passes.idListRemove(idx) }
+                    onReplace: function (idx, value) { backendValues.passes.idListReplace(idx, value) }
+                }
+            }
+        }
+    }
+
+    Section {
+        // Copied from quick3d's MaterialSection.qml
+        caption: qsTr("Material")
+        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 this material.")
+            }
+            SecondColumnLayout {
+                IdComboBox {
+                    typeFilter: "QtQuick3D.Texture"
+                    Layout.fillWidth: true
+                    backendValue: backendValues.lightProbe
+                }
+            }
+            Label {
+                text: qsTr("Displacement Map")
+                tooltip: qsTr("Defines a grayscale image used to offset the vertices of geometry across the surface of the material.")
+            }
+            SecondColumnLayout {
+                IdComboBox {
+                    typeFilter: "QtQuick3D.Texture"
+                    Layout.fillWidth: true
+                    backendValue: backendValues.displacementMap
+                }
+            }
+            Label {
+                text: qsTr("Displacement Amount")
+                tooltip: qsTr("Controls the offset amount for the displacement map.")
+            }
+            SecondColumnLayout {
+                SpinBox {
+                    maximumValue: 9999999
+                    minimumValue: -9999999
+                    realDragRange: 5000
+                    decimals: 0
+                    backendValue: backendValues.displacementAmount
+                    Layout.fillWidth: true
+                }
+            }
+            Label {
+                text: qsTr("Culling Mode")
+                tooltip: qsTr("Defines whether culling is enabled and which mode is actually enabled.")
+            }
+            ComboBox {
+                scope: "Material"
+                model: ["BackFaceCulling", "FrontFaceCulling", "NoCulling"]
+                backendValue: backendValues.cullMode
+                Layout.fillWidth: true
+            }
+        }
+    }
+}
+
diff --git a/src/imports/quick3d/designer/CustomMaterialSpecifics.qml b/src/imports/materiallib/designer/CustomMaterialSpecifics.qml
similarity index 93%
rename from src/imports/quick3d/designer/CustomMaterialSpecifics.qml
rename to src/imports/materiallib/designer/CustomMaterialSpecifics.qml
index 1f64b91d5128c4fa64068bc6cde898d09ef3b972..ada7454593daafbb4c8eb7f01dba8aa15e030166 100644
--- a/src/imports/quick3d/designer/CustomMaterialSpecifics.qml
+++ b/src/imports/materiallib/designer/CustomMaterialSpecifics.qml
@@ -1,6 +1,6 @@
 /****************************************************************************
 **
-** Copyright (C) 2019 The Qt Company Ltd.
+** Copyright (C) 2020 The Qt Company Ltd.
 ** Contact: https://www.qt.io/licensing/
 **
 ** This file is part of Qt Quick 3D.
@@ -37,8 +37,4 @@ Column {
     CustomMaterialSection {
         width: parent.width
     }
-
-    MaterialSection {
-        width: parent.width
-    }
 }
diff --git a/src/imports/materiallib/designer/designer.pri b/src/imports/materiallib/designer/designer.pri
index f7a188c62768b4e34b1a292228602a9d28092d1a..a9c944215817aeddaedc1075de6ecea54726d404 100644
--- a/src/imports/materiallib/designer/designer.pri
+++ b/src/imports/materiallib/designer/designer.pri
@@ -32,7 +32,9 @@ AUX_QML_FILES += \
     $$PWD/PlasticStructuredRedMaterialSection.qml \
     $$PWD/PlasticStructuredRedMaterialSpecifics.qml \
     $$PWD/SteelMilledConcentricMaterialSection.qml \
-    $$PWD/SteelMilledConcentricMaterialSpecifics.qml
+    $$PWD/SteelMilledConcentricMaterialSpecifics.qml \
+    $$PWD/CustomMaterialSection.qml \
+    $$PWD/CustomMaterialSpecifics.qml
 
 AUX_QML_FILES += \
     $$PWD/images/custommaterial.png \
diff --git a/src/imports/materiallib/designer/images/custommaterial.png b/src/imports/materiallib/designer/images/custommaterial.png
index a3b6c7f6f243d86dd4ada0db8f709a0a5adeaa9c..1b540da5be40a773755b8e76e7a69bd62a96e44e 100644
Binary files a/src/imports/materiallib/designer/images/custommaterial.png and b/src/imports/materiallib/designer/images/custommaterial.png differ
diff --git a/src/imports/materiallib/designer/images/custommaterial16.png b/src/imports/materiallib/designer/images/custommaterial16.png
index de8906a724d67a95b221c5d11f2d20cd5bd42a0c..72847922d57ca34d538b2358ceac1abbbccf8328 100644
Binary files a/src/imports/materiallib/designer/images/custommaterial16.png and b/src/imports/materiallib/designer/images/custommaterial16.png differ
diff --git a/src/imports/materiallib/designer/images/custommaterial@2x.png b/src/imports/materiallib/designer/images/custommaterial@2x.png
index 7ca04a01eaa5a247ee96d385f0ad7b188af6cd71..3dbcf7320fbfc289795375dc88c32787462f39d3 100644
Binary files a/src/imports/materiallib/designer/images/custommaterial@2x.png and b/src/imports/materiallib/designer/images/custommaterial@2x.png differ
diff --git a/src/imports/materiallib/designer/materiallib.metainfo b/src/imports/materiallib/designer/materiallib.metainfo
index 9fdb973344ccad8ee2c1fcc18539dcf706e5b476..c24882cbae5421ecd77e428164742e1121eb5909 100644
--- a/src/imports/materiallib/designer/materiallib.metainfo
+++ b/src/imports/materiallib/designer/materiallib.metainfo
@@ -284,4 +284,22 @@ MetaInfo {
             requiredImport: "QtQuick3D.Materials"
         }
     }
+    Type {
+        name: "QtQuick3D.Materials.CustomMaterial"
+        icon: "images/custommaterial16.png"
+
+        Hints {
+            visibleInNavigator: true
+            canBeDroppedInNavigator: true
+            canBeDroppedInFormEditor: false
+        }
+
+        ItemLibraryEntry {
+            name: "Custom Material"
+            category: "Qt Quick 3D Custom Shader Utils"
+            libraryIcon: "images/custommaterial.png"
+            version: "1.14"
+            requiredImport: "QtQuick3D.Materials"
+        }
+    }
 }
diff --git a/src/imports/quick3d/designer/BlendingSection.qml b/src/imports/quick3d/designer/BlendingSection.qml
new file mode 100644
index 0000000000000000000000000000000000000000..2f29301baa338a82ebfbc3a4e586afe990b4efec
--- /dev/null
+++ b/src/imports/quick3d/designer/BlendingSection.qml
@@ -0,0 +1,64 @@
+/****************************************************************************
+**
+** 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("Blending")
+        width: parent.width
+
+        SectionLayout {
+            Label {
+                text: qsTr("Source")
+                tooltip: qsTr("Source blending for a pass.")
+            }
+            ComboBox {
+                scope: "Blending"
+                model: ["Unknown", "Zero", "One", "SrcColor", "OneMinusSrcColor", "DstColor", "OneMinusDstColor", "SrcAlpha", "OneMinusSrcAlpha", "DstAlpha", "OneMinusDstAlpha", "ConstantColor", "OneMinusConstantColor", "ConstantAlpha", "OneMinusConstantAlpha", "SrcAlphaSaturate"]
+                backendValue: backendValues.srcBlending
+                Layout.fillWidth: true
+            }
+            Label {
+                text: qsTr("Destination")
+                tooltip: qsTr("Destination blending for a pass.")
+            }
+            ComboBox {
+                scope: "Blending"
+                model: ["Unknown", "Zero", "One", "SrcColor", "OneMinusSrcColor", "DstColor", "OneMinusDstColor", "SrcAlpha", "OneMinusSrcAlpha", "DstAlpha", "OneMinusDstAlpha", "ConstantColor", "OneMinusConstantColor", "ConstantAlpha", "OneMinusConstantAlpha"]
+                backendValue: backendValues.destBlending
+                Layout.fillWidth: true
+            }
+        }
+    }
+}
diff --git a/src/imports/quick3d/designer/BlendingSpecifics.qml b/src/imports/quick3d/designer/BlendingSpecifics.qml
new file mode 100644
index 0000000000000000000000000000000000000000..6e1567f61f0c8c7e5f12c0610c92caf8c0a3f9a2
--- /dev/null
+++ b/src/imports/quick3d/designer/BlendingSpecifics.qml
@@ -0,0 +1,40 @@
+/****************************************************************************
+**
+** 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
+
+    BlendingSection {
+        width: parent.width
+    }
+}
diff --git a/src/imports/quick3d/designer/BufferBlitSection.qml b/src/imports/quick3d/designer/BufferBlitSection.qml
new file mode 100644
index 0000000000000000000000000000000000000000..b5d2683153d528be88c794723f75c4e03a5e82df
--- /dev/null
+++ b/src/imports/quick3d/designer/BufferBlitSection.qml
@@ -0,0 +1,66 @@
+/****************************************************************************
+**
+** 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("Buffer Blit")
+        width: parent.width
+
+        SectionLayout {
+            Label {
+                text: qsTr("Source")
+                tooltip: qsTr("Source buffer for the buffer blit.")
+            }
+            SecondColumnLayout {
+                IdComboBox {
+                    typeFilter: "QtQuick3D.Buffer"
+                    Layout.fillWidth: true
+                    backendValue: backendValues.source
+                }
+            }
+            Label {
+                text: qsTr("Destination")
+                tooltip: qsTr("Destination buffer for the buffer blit.")
+            }
+            SecondColumnLayout {
+                IdComboBox {
+                    typeFilter: "QtQuick3D.Buffer"
+                    Layout.fillWidth: true
+                    backendValue: backendValues.destination
+                }
+            }
+        }
+    }
+}
diff --git a/src/imports/quick3d/designer/BufferBlitSpecifics.qml b/src/imports/quick3d/designer/BufferBlitSpecifics.qml
new file mode 100644
index 0000000000000000000000000000000000000000..289c12f07582ae9083403b619c054a60cb930e35
--- /dev/null
+++ b/src/imports/quick3d/designer/BufferBlitSpecifics.qml
@@ -0,0 +1,40 @@
+/****************************************************************************
+**
+** 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
+
+    BufferBlitSection {
+        width: parent.width
+    }
+}
diff --git a/src/imports/quick3d/designer/BufferInputSection.qml b/src/imports/quick3d/designer/BufferInputSection.qml
new file mode 100644
index 0000000000000000000000000000000000000000..421c312ddde1405659ecc56dc926195c6ef050dc
--- /dev/null
+++ b/src/imports/quick3d/designer/BufferInputSection.qml
@@ -0,0 +1,66 @@
+/****************************************************************************
+**
+** 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("Buffer Input")
+        width: parent.width
+
+        SectionLayout {
+            Label {
+                text: qsTr("Buffer")
+                tooltip: qsTr("Input buffer for a pass.")
+            }
+            SecondColumnLayout {
+                IdComboBox {
+                    typeFilter: "QtQuick3D.Buffer"
+                    Layout.fillWidth: true
+                    backendValue: backendValues.buffer
+                }
+            }
+            Label {
+                text: qsTr("Parameter")
+                tooltip: qsTr("Buffer input buffer name in the shader.")
+            }
+            SecondColumnLayout {
+                LineEdit {
+                    backendValue: backendValues.param
+                    Layout.fillWidth: true
+                    showTranslateCheckBox: false
+                }
+            }
+        }
+    }
+}
diff --git a/src/imports/quick3d/designer/BufferInputSpecifics.qml b/src/imports/quick3d/designer/BufferInputSpecifics.qml
new file mode 100644
index 0000000000000000000000000000000000000000..7be284617534d5a7e6f12565017d8db7c32185d1
--- /dev/null
+++ b/src/imports/quick3d/designer/BufferInputSpecifics.qml
@@ -0,0 +1,40 @@
+/****************************************************************************
+**
+** 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
+
+    BufferInputSection {
+        width: parent.width
+    }
+}
diff --git a/src/imports/quick3d/designer/BufferSection.qml b/src/imports/quick3d/designer/BufferSection.qml
new file mode 100644
index 0000000000000000000000000000000000000000..7bd7d534f6bebc92e6cc320a51c3daa9956c50c3
--- /dev/null
+++ b/src/imports/quick3d/designer/BufferSection.qml
@@ -0,0 +1,114 @@
+/****************************************************************************
+**
+** 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("Buffer")
+        width: parent.width
+
+        SectionLayout {
+            Label {
+                text: qsTr("Name")
+                tooltip: qsTr("Buffer name.")
+            }
+            SecondColumnLayout {
+                LineEdit {
+                    backendValue: backendValues.name
+                    Layout.fillWidth: true
+                    showTranslateCheckBox: false
+                }
+            }
+
+            Label {
+                text: qsTr("Format")
+                tooltip: qsTr("Format of the buffer.")
+            }
+            ComboBox {
+                scope: "Buffer"
+                model: ["Unknown", "R8", "R16", "R16F", "R32I", "R32UI", "R32F", "RG8", "RGBA8", "RGB8", "SRGB8", "SRGB8A8", "RGB565", "RGBA16F", "RG16F", "RG32F", "RGB32F", "RGBA32F", "R11G11B10", "RGB9E5", "Depth16", "Depth24", "Depth32", "Depth24Stencil8"]
+                backendValue: backendValues.format
+                Layout.fillWidth: true
+            }
+
+            Label {
+                text: qsTr("Filter")
+                tooltip: qsTr("Texture filter for the buffer.")
+            }
+            ComboBox {
+                scope: "Buffer"
+                model: ["Unknown", "Nearest", "Linear"]
+                backendValue: backendValues.textureFilterOperation
+                Layout.fillWidth: true
+            }
+
+            Label {
+                text: qsTr("Coordinate Operation")
+                tooltip: qsTr("Texture coordinate operation for the buffer.")
+            }
+            ComboBox {
+                scope: "Buffer"
+                model: ["Unknown", "ClampToEdge", "MirroredRepeat", "Repeat"]
+                backendValue: backendValues.textureCoordOperation
+                Layout.fillWidth: true
+            }
+
+            Label {
+                text: qsTr("Allocation Flags")
+                tooltip: qsTr("Allocation flags for the buffer.")
+            }
+            ComboBox {
+                scope: "Buffer"
+                model: ["None", "SceneLifetime"]
+                backendValue: backendValues.bufferFlags
+                Layout.fillWidth: true
+            }
+
+            Label {
+                text: qsTr("Size Multiplier")
+                tooltip: qsTr("Defines the size multiplier for the buffer.")
+            }
+            SecondColumnLayout {
+                SpinBox {
+                    maximumValue: 10000
+                    minimumValue: 0
+                    decimals: 2
+                    realDragRange: 30
+                    backendValue: backendValues.sizeMultiplier
+                    Layout.fillWidth: true
+                }
+            }
+        }
+    }
+}
diff --git a/src/imports/quick3d/designer/BufferSpecifics.qml b/src/imports/quick3d/designer/BufferSpecifics.qml
new file mode 100644
index 0000000000000000000000000000000000000000..be0b16b2ddb456f08a07b1da6d1cc6d604f7d6dd
--- /dev/null
+++ b/src/imports/quick3d/designer/BufferSpecifics.qml
@@ -0,0 +1,40 @@
+/****************************************************************************
+**
+** 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
+
+    BufferSection {
+        width: parent.width
+    }
+}
diff --git a/src/imports/quick3d/designer/CullModeSection.qml b/src/imports/quick3d/designer/CullModeSection.qml
new file mode 100644
index 0000000000000000000000000000000000000000..e3de29ca9e8f2c5addcbc1a25f837bd7ee1f334e
--- /dev/null
+++ b/src/imports/quick3d/designer/CullModeSection.qml
@@ -0,0 +1,54 @@
+/****************************************************************************
+**
+** 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("Cull Mode")
+        width: parent.width
+
+        SectionLayout {
+            Label {
+                text: qsTr("Mode")
+                tooltip: qsTr("Cull mode for a pass.")
+            }
+            ComboBox {
+                scope: "Material"
+                model: ["BackFaceCulling", "FrontFaceCulling", "NoCulling"]
+                backendValue: backendValues.cullMode
+                Layout.fillWidth: true
+            }
+        }
+    }
+}
diff --git a/src/imports/quick3d/designer/CullModeSpecifics.qml b/src/imports/quick3d/designer/CullModeSpecifics.qml
new file mode 100644
index 0000000000000000000000000000000000000000..6a22c0d1f1117675b2ee4f8f651acf10e93c5bcb
--- /dev/null
+++ b/src/imports/quick3d/designer/CullModeSpecifics.qml
@@ -0,0 +1,40 @@
+/****************************************************************************
+**
+** 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
+
+    CullModeSection {
+        width: parent.width
+    }
+}
diff --git a/src/imports/quick3d/designer/DepthInputSection.qml b/src/imports/quick3d/designer/DepthInputSection.qml
new file mode 100644
index 0000000000000000000000000000000000000000..3811eae715131d1b82b3354b13b2dd13d47e359c
--- /dev/null
+++ b/src/imports/quick3d/designer/DepthInputSection.qml
@@ -0,0 +1,55 @@
+/****************************************************************************
+**
+** 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("Depth Input")
+        width: parent.width
+
+        SectionLayout {
+            Label {
+                text: qsTr("Parameter")
+                tooltip: qsTr("Depth input texture name in the shader.")
+            }
+            SecondColumnLayout {
+                LineEdit {
+                    backendValue: backendValues.param
+                    Layout.fillWidth: true
+                    showTranslateCheckBox: false
+                }
+            }
+        }
+    }
+}
diff --git a/src/imports/quick3d/designer/DepthInputSpecifics.qml b/src/imports/quick3d/designer/DepthInputSpecifics.qml
new file mode 100644
index 0000000000000000000000000000000000000000..1cdcb4dfd4b04f08e4684de444ba178b53cc77fc
--- /dev/null
+++ b/src/imports/quick3d/designer/DepthInputSpecifics.qml
@@ -0,0 +1,40 @@
+/****************************************************************************
+**
+** 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
+
+    DepthInputSection {
+        width: parent.width
+    }
+}
diff --git a/src/imports/quick3d/designer/PassSection.qml b/src/imports/quick3d/designer/PassSection.qml
new file mode 100644
index 0000000000000000000000000000000000000000..da4109b9922a6e8e99e034ab6d11df8942e08205
--- /dev/null
+++ b/src/imports/quick3d/designer/PassSection.qml
@@ -0,0 +1,87 @@
+/****************************************************************************
+**
+** 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("Pass")
+        width: parent.width
+
+        SectionLayout {
+            Label {
+                text: qsTr("Commands")
+                tooltip: qsTr("Render commands of the pass.")
+            }
+            SecondColumnLayout {
+                EditableListView {
+                    backendValue: backendValues.commands
+                    model: backendValues.commands.expressionAsList
+                    Layout.fillWidth: true
+                    typeFilter: "QtQuick3D.Command"
+
+                    onAdd: function(value) { backendValues.commands.idListAdd(value) }
+                    onRemove: function(idx) { backendValues.commands.idListRemove(idx) }
+                    onReplace: function (idx, value) { backendValues.commands.idListReplace(idx, value) }
+                }
+            }
+            Label {
+                text: qsTr("Buffer")
+                tooltip: qsTr("Output buffer for the pass.")
+            }
+            SecondColumnLayout {
+                IdComboBox {
+                    typeFilter: "QtQuick3D.Buffer"
+                    Layout.fillWidth: true
+                    backendValue: backendValues.output
+                }
+            }
+            Label {
+                text: qsTr("Shaders")
+                tooltip: qsTr("Shaders for the pass.")
+            }
+            SecondColumnLayout {
+                EditableListView {
+                    backendValue: backendValues.shaders
+                    model: backendValues.shaders.expressionAsList
+                    Layout.fillWidth: true
+                    typeFilter: "QtQuick3D.Shader"
+
+                    onAdd: function(value) { backendValues.shaders.idListAdd(value) }
+                    onRemove: function(idx) { backendValues.shaders.idListRemove(idx) }
+                    onReplace: function (idx, value) { backendValues.shaders.idListReplace(idx, value) }
+                }
+            }
+        }
+    }
+}
diff --git a/src/imports/quick3d/designer/CustomMaterialSection.qml b/src/imports/quick3d/designer/PassSpecifics.qml
similarity index 91%
rename from src/imports/quick3d/designer/CustomMaterialSection.qml
rename to src/imports/quick3d/designer/PassSpecifics.qml
index 0bc32da4ec375c3e35457aeffda8886bf49450fa..2a59fb0bd9b8305e19c1373ff0c1250f1e057f14 100644
--- a/src/imports/quick3d/designer/CustomMaterialSection.qml
+++ b/src/imports/quick3d/designer/PassSpecifics.qml
@@ -1,6 +1,6 @@
 /****************************************************************************
 **
-** Copyright (C) 2019 The Qt Company Ltd.
+** Copyright (C) 2020 The Qt Company Ltd.
 ** Contact: https://www.qt.io/licensing/
 **
 ** This file is part of Qt Quick 3D.
@@ -31,6 +31,10 @@ import QtQuick 2.15
 import HelperWidgets 2.0
 import QtQuick.Layouts 1.12
 
-Section {
-    caption: qsTr("Custom Material")
+Column {
+    width: parent.width
+
+    PassSection {
+        width: parent.width
+    }
 }
diff --git a/src/imports/quick3d/designer/RenderStateSection.qml b/src/imports/quick3d/designer/RenderStateSection.qml
new file mode 100644
index 0000000000000000000000000000000000000000..2d8f28ce67afd469819002e7d408f500d31ce534
--- /dev/null
+++ b/src/imports/quick3d/designer/RenderStateSection.qml
@@ -0,0 +1,65 @@
+/****************************************************************************
+**
+** 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("Render State")
+        width: parent.width
+
+        SectionLayout {
+            Label {
+                text: qsTr("State")
+                tooltip: qsTr("Render state to set for a pass.")
+            }
+            ComboBox {
+                scope: "RenderState"
+                model: ["Unknown", "Blend", "CullFace", "DepthTest", "StencilTest", "ScissorTest", "DepthWrite", "Multisample"]
+                backendValue: backendValues.renderState
+                Layout.fillWidth: true
+            }
+            Label {
+                text: qsTr("Enabled")
+                tooltip: qsTr("Render state enable state.")
+            }
+            SecondColumnLayout {
+                CheckBox {
+                    text: backendValues.enabled.valueToString
+                    backendValue: backendValues.enabled
+                    Layout.fillWidth: true
+                }
+            }
+        }
+    }
+}
diff --git a/src/imports/quick3d/designer/RenderStateSpecifics.qml b/src/imports/quick3d/designer/RenderStateSpecifics.qml
new file mode 100644
index 0000000000000000000000000000000000000000..23ce2c1394efb99db5d39dc7a2f59d5fa7245db0
--- /dev/null
+++ b/src/imports/quick3d/designer/RenderStateSpecifics.qml
@@ -0,0 +1,40 @@
+/****************************************************************************
+**
+** 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
+
+    RenderStateSection {
+        width: parent.width
+    }
+}
diff --git a/src/imports/quick3d/designer/SetUniformValueSection.qml b/src/imports/quick3d/designer/SetUniformValueSection.qml
new file mode 100644
index 0000000000000000000000000000000000000000..760627799e1744f6b5d366a80951433d26cf47a0
--- /dev/null
+++ b/src/imports/quick3d/designer/SetUniformValueSection.qml
@@ -0,0 +1,67 @@
+/****************************************************************************
+**
+** 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("Set Uniform Value")
+        width: parent.width
+
+        SectionLayout {
+            Label {
+                text: qsTr("Target")
+                tooltip: qsTr("The name of the uniform to change value for a pass.")
+            }
+            SecondColumnLayout {
+                LineEdit {
+                    backendValue: backendValues.target
+                    Layout.fillWidth: true
+                    showTranslateCheckBox: false
+                }
+            }
+            Label {
+                text: qsTr("Value")
+                tooltip: qsTr("The value of the uniform.")
+            }
+            SecondColumnLayout {
+                LineEdit {
+                    backendValue: backendValues.value
+                    Layout.fillWidth: true
+                    showTranslateCheckBox: false
+                    writeAsExpression: true
+                }
+            }
+        }
+    }
+}
diff --git a/src/imports/quick3d/designer/SetUniformValueSpecifics.qml b/src/imports/quick3d/designer/SetUniformValueSpecifics.qml
new file mode 100644
index 0000000000000000000000000000000000000000..96982ef9bbcbcecc587d40012d824433e3ac372c
--- /dev/null
+++ b/src/imports/quick3d/designer/SetUniformValueSpecifics.qml
@@ -0,0 +1,40 @@
+/****************************************************************************
+**
+** 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
+
+    SetUniformValueSection {
+        width: parent.width
+    }
+}
diff --git a/src/imports/quick3d/designer/ShaderInfoSection.qml b/src/imports/quick3d/designer/ShaderInfoSection.qml
new file mode 100644
index 0000000000000000000000000000000000000000..c678b3a594fb8171fd981a04fcd09b623cd00f75
--- /dev/null
+++ b/src/imports/quick3d/designer/ShaderInfoSection.qml
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** 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("Shader Info")
+        width: parent.width
+
+        SectionLayout {
+            Label {
+                text: qsTr("Version")
+                tooltip: qsTr("Shader code version to use.")
+            }
+            SecondColumnLayout {
+                LineEdit {
+                    backendValue: backendValues.version
+                    Layout.fillWidth: true
+                    showTranslateCheckBox: false
+                }
+            }
+            Label {
+                text: qsTr("Type")
+                tooltip: qsTr("Shader type.")
+            }
+            SecondColumnLayout {
+                LineEdit {
+                    backendValue: backendValues.type
+                    Layout.fillWidth: true
+                    showTranslateCheckBox: false
+                }
+            }
+            Label {
+                text: qsTr("Key")
+                tooltip: qsTr("Shader key.")
+            }
+            ComboBox {
+                scope: "ShaderInfo"
+                model: ["Diffuse", "Specular", "Cutout", "Refraction", "Transparent", "Displace", "Transmissive", "Glossy"]
+                backendValue: backendValues.shaderKey
+                Layout.fillWidth: true
+            }
+        }
+    }
+}
diff --git a/src/imports/quick3d/designer/ShaderInfoSpecifics.qml b/src/imports/quick3d/designer/ShaderInfoSpecifics.qml
new file mode 100644
index 0000000000000000000000000000000000000000..488076c33312d19dbf879c6fbdc5b4da7ff68042
--- /dev/null
+++ b/src/imports/quick3d/designer/ShaderInfoSpecifics.qml
@@ -0,0 +1,40 @@
+/****************************************************************************
+**
+** 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
+
+    ShaderInfoSection {
+        width: parent.width
+    }
+}
diff --git a/src/imports/quick3d/designer/ShaderSection.qml b/src/imports/quick3d/designer/ShaderSection.qml
new file mode 100644
index 0000000000000000000000000000000000000000..cc52cd180a5ed323c6300fb208300784e2589300
--- /dev/null
+++ b/src/imports/quick3d/designer/ShaderSection.qml
@@ -0,0 +1,64 @@
+/****************************************************************************
+**
+** 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("Shader")
+        width: parent.width
+
+        SectionLayout {
+            Label {
+                text: qsTr("Source")
+                tooltip: qsTr("Shader source code.")
+            }
+            SecondColumnLayout {
+                UrlChooser {
+                    backendValue: backendValues.shader
+                    filter: "*.*"
+                }
+            }
+            Label {
+                text: qsTr("Stage")
+                tooltip: qsTr("Shader stage.")
+            }
+            ComboBox {
+                scope: "Shader"
+                model: ["Shared", "Vertex", "Fragment", "Geometry", "Compute"]
+                backendValue: backendValues.stage
+                Layout.fillWidth: true
+            }
+        }
+    }
+}
diff --git a/src/imports/quick3d/designer/ShaderSpecifics.qml b/src/imports/quick3d/designer/ShaderSpecifics.qml
new file mode 100644
index 0000000000000000000000000000000000000000..3de46b66656905798c3dcd96b36d3a13b30ed447
--- /dev/null
+++ b/src/imports/quick3d/designer/ShaderSpecifics.qml
@@ -0,0 +1,40 @@
+/****************************************************************************
+**
+** 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
+
+    ShaderSection {
+        width: parent.width
+    }
+}
diff --git a/src/imports/quick3d/designer/TextureInputSection.qml b/src/imports/quick3d/designer/TextureInputSection.qml
new file mode 100644
index 0000000000000000000000000000000000000000..560b1df1c321e4ef3fdca26b41b3cb0cf8d4abbb
--- /dev/null
+++ b/src/imports/quick3d/designer/TextureInputSection.qml
@@ -0,0 +1,66 @@
+/****************************************************************************
+**
+** 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("Texture Input")
+        width: parent.width
+
+        SectionLayout {
+            Label {
+                text: qsTr("Texture")
+                tooltip: qsTr("Input texture.")
+            }
+            SecondColumnLayout {
+                IdComboBox {
+                    typeFilter: "QtQuick3D.Texture"
+                    Layout.fillWidth: true
+                    backendValue: backendValues.texture
+                }
+            }
+            Label {
+                text: qsTr("Enabled")
+                tooltip: qsTr("Texture enable state.")
+            }
+            SecondColumnLayout {
+                CheckBox {
+                    text: backendValues.enabled.valueToString
+                    backendValue: backendValues.enabled
+                    Layout.fillWidth: true
+                }
+            }
+        }
+    }
+}
diff --git a/src/imports/quick3d/designer/TextureInputSpecifics.qml b/src/imports/quick3d/designer/TextureInputSpecifics.qml
new file mode 100644
index 0000000000000000000000000000000000000000..32e714e6525777ec048221b0cd831b5e29e93c4d
--- /dev/null
+++ b/src/imports/quick3d/designer/TextureInputSpecifics.qml
@@ -0,0 +1,40 @@
+/****************************************************************************
+**
+** 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
+
+    TextureInputSection {
+        width: parent.width
+    }
+}
diff --git a/src/imports/quick3d/designer/designer.pri b/src/imports/quick3d/designer/designer.pri
index 7cbe84ae410998660be64b1585ff1f2c3d5fedce..844d4101d1718b94f656ba9027364967afa31365 100644
--- a/src/imports/quick3d/designer/designer.pri
+++ b/src/imports/quick3d/designer/designer.pri
@@ -9,8 +9,6 @@ AUX_QML_FILES += \
     $$PWD/FrustumCameraSpecifics.qml \
     $$PWD/CustomCameraSection.qml \
     $$PWD/CustomCameraSpecifics.qml \
-    $$PWD/CustomMaterialSection.qml \
-    $$PWD/CustomMaterialSpecifics.qml \
     $$PWD/DefaultMaterialSection.qml \
     $$PWD/DefaultMaterialSpecifics.qml \
     $$PWD/TextureSection.qml \
@@ -37,6 +35,30 @@ AUX_QML_FILES += \
     $$PWD/ShadowSection.qml \
     $$PWD/View3DSection.qml \
     $$PWD/View3DSpecifics.qml \
+    $$PWD/ShaderSection.qml \
+    $$PWD/ShaderSpecifics.qml \
+    $$PWD/ShaderInfoSection.qml \
+    $$PWD/ShaderInfoSpecifics.qml \
+    $$PWD/TextureInputSection.qml \
+    $$PWD/TextureInputSpecifics.qml \
+    $$PWD/PassSection.qml \
+    $$PWD/PassSpecifics.qml \
+    $$PWD/BufferInputSection.qml \
+    $$PWD/BufferInputSpecifics.qml \
+    $$PWD/BufferBlitSection.qml \
+    $$PWD/BufferBlitSpecifics.qml \
+    $$PWD/BufferSection.qml \
+    $$PWD/BufferSpecifics.qml \
+    $$PWD/BlendingSection.qml \
+    $$PWD/BlendingSpecifics.qml \
+    $$PWD/RenderStateSection.qml \
+    $$PWD/RenderStateSpecifics.qml \
+    $$PWD/CullModeSection.qml \
+    $$PWD/CullModeSpecifics.qml \
+    $$PWD/DepthInputSection.qml \
+    $$PWD/DepthInputSpecifics.qml \
+    $$PWD/SetUniformValueSection.qml \
+    $$PWD/SetUniformValueSpecifics.qml \
     $$PWD/source/view3D_template.qml \
     $$PWD/source/cube_model_template.qml \
     $$PWD/source/sphere_model_template.qml \
@@ -69,12 +91,19 @@ AUX_QML_FILES += \
     $$PWD/images/material.png \
     $$PWD/images/material@2x.png \
     $$PWD/images/material16.png \
+    $$PWD/images/model16.png \
     $$PWD/images/plane.png \
     $$PWD/images/plane@2x.png \
     $$PWD/images/plane16.png \
     $$PWD/images/scene.png \
     $$PWD/images/scene@2x.png \
     $$PWD/images/scene16.png \
+    $$PWD/images/shadercommand.png \
+    $$PWD/images/shadercommand@2x.png \
+    $$PWD/images/shadercommand16.png \
+    $$PWD/images/shaderutil.png \
+    $$PWD/images/shaderutil@2x.png \
+    $$PWD/images/shaderutil16.png \
     $$PWD/images/sphere.png \
     $$PWD/images/sphere@2x.png \
     $$PWD/images/sphere16.png \
diff --git a/src/imports/quick3d/designer/images/cube16.png b/src/imports/quick3d/designer/images/cube16.png
index 37d683d971b454a2221d35acf0d4a4ebf1a34d17..759f073dd5110d93404397746e17692bd0908779 100644
Binary files a/src/imports/quick3d/designer/images/cube16.png and b/src/imports/quick3d/designer/images/cube16.png differ
diff --git a/src/imports/quick3d/designer/images/model16.png b/src/imports/quick3d/designer/images/model16.png
new file mode 100644
index 0000000000000000000000000000000000000000..759f073dd5110d93404397746e17692bd0908779
Binary files /dev/null and b/src/imports/quick3d/designer/images/model16.png differ
diff --git a/src/imports/quick3d/designer/images/shadercommand.png b/src/imports/quick3d/designer/images/shadercommand.png
new file mode 100644
index 0000000000000000000000000000000000000000..86aa50b3089eda32b6efdbd9859b4b5bb18bc0a6
Binary files /dev/null and b/src/imports/quick3d/designer/images/shadercommand.png differ
diff --git a/src/imports/quick3d/designer/images/shadercommand16.png b/src/imports/quick3d/designer/images/shadercommand16.png
new file mode 100644
index 0000000000000000000000000000000000000000..62a9160ea4e3e20007a671fc62f7e338425cbb86
Binary files /dev/null and b/src/imports/quick3d/designer/images/shadercommand16.png differ
diff --git a/src/imports/quick3d/designer/images/shadercommand@2x.png b/src/imports/quick3d/designer/images/shadercommand@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..6fc3793e048699206bb081ef7f0ce91d604e84f6
Binary files /dev/null and b/src/imports/quick3d/designer/images/shadercommand@2x.png differ
diff --git a/src/imports/quick3d/designer/images/shaderutil.png b/src/imports/quick3d/designer/images/shaderutil.png
new file mode 100644
index 0000000000000000000000000000000000000000..948752c39f2afd845ab74d706e63647c7c0f5192
Binary files /dev/null and b/src/imports/quick3d/designer/images/shaderutil.png differ
diff --git a/src/imports/quick3d/designer/images/shaderutil16.png b/src/imports/quick3d/designer/images/shaderutil16.png
new file mode 100644
index 0000000000000000000000000000000000000000..a33401e094ca0c7c6605d6e10a779d80e56b73d9
Binary files /dev/null and b/src/imports/quick3d/designer/images/shaderutil16.png differ
diff --git a/src/imports/quick3d/designer/images/shaderutil@2x.png b/src/imports/quick3d/designer/images/shaderutil@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..a54511ed5fe384792f6b706a9498b52e092cc02d
Binary files /dev/null and b/src/imports/quick3d/designer/images/shaderutil@2x.png differ
diff --git a/src/imports/quick3d/designer/quick3d.metainfo b/src/imports/quick3d/designer/quick3d.metainfo
index 50cd60220739f9dc25e4da470b5fc8f758f2c46f..e16e6dc2ffc2cca9a578be9a3b5507a44c087118 100644
--- a/src/imports/quick3d/designer/quick3d.metainfo
+++ b/src/imports/quick3d/designer/quick3d.metainfo
@@ -79,25 +79,6 @@ MetaInfo {
             Property { name: "z"; type: "int"; value: 500; }
         }
     }
-    Type {
-        name: "QtQuick3D.CustomMaterial"
-        icon: "images/material16.png"
-
-        Hints {
-            visibleInNavigator: true
-            canBeDroppedInNavigator: true
-            canBeDroppedInFormEditor: false
-            canBeContainer: false
-        }
-
-        ItemLibraryEntry {
-            name: "Custom Material"
-            category: "Qt Quick 3D"
-            libraryIcon: "images/material.png"
-            version: "1.0"
-            requiredImport: "QtQuick3D"
-        }
-    }
     Type {
         name: "QtQuick3D.DefaultMaterial"
         icon: "images/material16.png"
@@ -106,7 +87,6 @@ MetaInfo {
             visibleInNavigator: true
             canBeDroppedInNavigator: true
             canBeDroppedInFormEditor: false
-            canBeContainer: false
         }
 
         ItemLibraryEntry {
@@ -126,7 +106,6 @@ MetaInfo {
             visibleInNavigator: true
             canBeDroppedInNavigator: true
             canBeDroppedInFormEditor: false
-            canBeContainer: false
         }
 
         ItemLibraryEntry {
@@ -237,7 +216,7 @@ MetaInfo {
     }
     Type {
         name: "QtQuick3D.Model"
-        icon: "images/cube16.png"
+        icon: "images/model16.png"
 
         Hints {
             visibleInNavigator: true
@@ -258,7 +237,7 @@ MetaInfo {
     }
     Type {
         name: "QtQuick3D.Model"
-        icon: "images/sphere16.png"
+        icon: "images/model16.png"
 
         Hints {
             visibleInNavigator: true
@@ -279,7 +258,7 @@ MetaInfo {
     }
     Type {
         name: "QtQuick3D.Model"
-        icon: "images/cylinder16.png"
+        icon: "images/model16.png"
 
         Hints {
             visibleInNavigator: true
@@ -300,7 +279,7 @@ MetaInfo {
     }
     Type {
         name: "QtQuick3D.Model"
-        icon: "images/plane16.png"
+        icon: "images/model16.png"
 
         Hints {
             visibleInNavigator: true
@@ -321,7 +300,7 @@ MetaInfo {
     }
     Type {
         name: "QtQuick3D.Model"
-        icon: "images/cone16.png"
+        icon: "images/model16.png"
 
         Hints {
             visibleInNavigator: true
@@ -367,7 +346,6 @@ MetaInfo {
             visibleInNavigator: true
             canBeDroppedInNavigator: true
             canBeDroppedInFormEditor: false
-            canBeContainer: false
         }
 
         ItemLibraryEntry {
@@ -391,4 +369,220 @@ MetaInfo {
             QmlSource { source: "./source/view3D_template.qml" }
         }
     }
+    Type {
+        name: "QtQuick3D.Shader"
+        icon: "images/shaderutil16.png"
+
+        Hints {
+            visibleInNavigator: true
+            canBeDroppedInNavigator: true
+            canBeDroppedInFormEditor: false
+        }
+
+        ItemLibraryEntry {
+            name: "Shader"
+            category: "Qt Quick 3D Custom Shader Utils"
+            libraryIcon: "images/shaderutil.png"
+            version: "1.15"
+            requiredImport: "QtQuick3D"
+        }
+    }
+    Type {
+        name: "QtQuick3D.ShaderInfo"
+        icon: "images/shaderutil16.png"
+
+        Hints {
+            visibleInNavigator: true
+            canBeDroppedInNavigator: true
+            canBeDroppedInFormEditor: false
+        }
+
+        ItemLibraryEntry {
+            name: "Shader Info"
+            category: "Qt Quick 3D Custom Shader Utils"
+            libraryIcon: "images/shaderutil.png"
+            version: "1.15"
+            requiredImport: "QtQuick3D"
+        }
+    }
+    Type {
+        name: "QtQuick3D.TextureInput"
+        icon: "images/shaderutil16.png"
+
+        Hints {
+            visibleInNavigator: true
+            canBeDroppedInNavigator: true
+            canBeDroppedInFormEditor: false
+        }
+
+        ItemLibraryEntry {
+            name: "Texture Input"
+            category: "Qt Quick 3D Custom Shader Utils"
+            libraryIcon: "images/shaderutil.png"
+            version: "1.15"
+            requiredImport: "QtQuick3D"
+        }
+    }
+    Type {
+        name: "QtQuick3D.Pass"
+        icon: "images/shaderutil16.png"
+
+        Hints {
+            visibleInNavigator: true
+            canBeDroppedInNavigator: true
+            canBeDroppedInFormEditor: false
+        }
+
+        ItemLibraryEntry {
+            name: "Pass"
+            category: "Qt Quick 3D Custom Shader Utils"
+            libraryIcon: "images/shaderutil.png"
+            version: "1.15"
+            requiredImport: "QtQuick3D"
+        }
+    }
+    Type {
+        name: "QtQuick3D.BufferInput"
+        icon: "images/shadercommand16.png"
+
+        Hints {
+            visibleInNavigator: true
+            canBeDroppedInNavigator: true
+            canBeDroppedInFormEditor: false
+        }
+
+        ItemLibraryEntry {
+            name: "Buffer Input"
+            category: "Qt Quick 3D Custom Shader Utils"
+            libraryIcon: "images/shadercommand.png"
+            version: "1.15"
+            requiredImport: "QtQuick3D"
+        }
+    }
+    Type {
+        name: "QtQuick3D.BufferBlit"
+        icon: "images/shadercommand16.png"
+
+        Hints {
+            visibleInNavigator: true
+            canBeDroppedInNavigator: true
+            canBeDroppedInFormEditor: false
+        }
+
+        ItemLibraryEntry {
+            name: "Buffer Blit"
+            category: "Qt Quick 3D Custom Shader Utils"
+            libraryIcon: "images/shadercommand.png"
+            version: "1.15"
+            requiredImport: "QtQuick3D"
+        }
+    }
+    Type {
+        name: "QtQuick3D.Blending"
+        icon: "images/shadercommand16.png"
+
+        Hints {
+            visibleInNavigator: true
+            canBeDroppedInNavigator: true
+            canBeDroppedInFormEditor: false
+        }
+
+        ItemLibraryEntry {
+            name: "Blending"
+            category: "Qt Quick 3D Custom Shader Utils"
+            libraryIcon: "images/shadercommand.png"
+            version: "1.15"
+            requiredImport: "QtQuick3D"
+        }
+    }
+    Type {
+        name: "QtQuick3D.Buffer"
+        icon: "images/shaderutil16.png"
+
+        Hints {
+            visibleInNavigator: true
+            canBeDroppedInNavigator: true
+            canBeDroppedInFormEditor: false
+        }
+
+        ItemLibraryEntry {
+            name: "Buffer"
+            category: "Qt Quick 3D Custom Shader Utils"
+            libraryIcon: "images/shaderutil.png"
+            version: "1.15"
+            requiredImport: "QtQuick3D"
+        }
+    }
+    Type {
+        name: "QtQuick3D.RenderState"
+        icon: "images/shadercommand16.png"
+
+        Hints {
+            visibleInNavigator: true
+            canBeDroppedInNavigator: true
+            canBeDroppedInFormEditor: false
+        }
+
+        ItemLibraryEntry {
+            name: "Render State"
+            category: "Qt Quick 3D Custom Shader Utils"
+            libraryIcon: "images/shadercommand.png"
+            version: "1.15"
+            requiredImport: "QtQuick3D"
+        }
+    }
+    Type {
+        name: "QtQuick3D.CullMode"
+        icon: "images/shadercommand16.png"
+
+        Hints {
+            visibleInNavigator: true
+            canBeDroppedInNavigator: true
+            canBeDroppedInFormEditor: false
+        }
+
+        ItemLibraryEntry {
+            name: "Cull Mode"
+            category: "Qt Quick 3D Custom Shader Utils"
+            libraryIcon: "images/shadercommand.png"
+            version: "1.15"
+            requiredImport: "QtQuick3D"
+        }
+    }
+    Type {
+        name: "QtQuick3D.DepthInput"
+        icon: "images/shadercommand16.png"
+
+        Hints {
+            visibleInNavigator: true
+            canBeDroppedInNavigator: true
+            canBeDroppedInFormEditor: false
+        }
+
+        ItemLibraryEntry {
+            name: "Depth Input"
+            category: "Qt Quick 3D Custom Shader Utils"
+            libraryIcon: "images/shadercommand.png"
+            version: "1.15"
+            requiredImport: "QtQuick3D"
+        }
+    }
+    Type {
+        name: "QtQuick3D.SetUniformValue"
+        icon: "images/shadercommand16.png"
+
+        Hints {
+            visibleInNavigator: true
+            canBeDroppedInNavigator: true
+            canBeDroppedInFormEditor: false
+        }
+
+        ItemLibraryEntry {
+            name: "Set Uniform Value"
+            category: "Qt Quick 3D Custom Shader Utils"
+            libraryIcon: "images/shadercommand.png"
+            version: "1.15"
+            requiredImport: "QtQuick3D"
+        }
+    }
 }