- Qt 6.6
- Qt Quick 3D
- Qt Quick 3D Examples and Tutorials
- Qt Quick 3D - Custom Shaders Example
- Qt Quick 3D | Commercial or GPLv3

# Qt Quick 3D - Custom Shaders Example

     // Copyright (C) 2019 The Qt Company Ltd.
     // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause

     import QtQuick
     import QtQuick3D

     CustomMaterial {
         id: root
         property real time: 0.0
         property real amplitude: 5.0
         property real alpha: 1.0

         property bool texturing: false
         property bool textureFromItem: false
         property Item texSrc
         Texture {
             id: texFromFile
             source: "qt_logo.png"
         }
         Texture {
             id: texFromItem
             sourceItem: root.texSrc
         }
         property TextureInput tex: TextureInput {
             enabled: root.texturing
             texture: root.textureFromItem ? texFromItem : texFromFile
         }

         shadingMode: CustomMaterial.Unshaded
         sourceBlend: root.alpha < 1.0 ? CustomMaterial.SrcAlpha : CustomMaterial.NoBlend
         destinationBlend: root.alpha < 1.0 ? CustomMaterial.OneMinusSrcAlpha : CustomMaterial.NoBlend
         cullMode: CustomMaterial.BackFaceCulling

         vertexShader: "example.vert"
         fragmentShader: root.texturing ? "example_tex.frag" : "example.frag"
     }