Qt Quick 3D - Procedural Texture Example
// Copyright (C) 2020 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause import QtQuick import QtQuick3D import QtQuick.Controls import QtQuick.Layouts import ProceduralTextureExample Window { id: window width: 480 height: 320 visible: true View3D { anchors.fill: parent DirectionalLight { } PerspectiveCamera { z: 300 } Model { source: "#Cube" materials: DefaultMaterial { diffuseMap: Texture { textureData: GradientTexture { id: gradientTexture startColor: "#00dbde" endColor: "#fc00ff" width: size256.checked ? 256 : 16 height: width } minFilter: size256.checked ? Texture.Linear : Texture.Nearest magFilter: size256.checked ? Texture.Linear : Texture.Nearest } } PropertyAnimation on eulerRotation.y { from: 0 to: 360 duration: 5000 loops: -1 running: true } } } function randomColor() { return Qt.rgba(Math.random(), Math.random(), Math.random(), 1.0); } ColumnLayout { Label { text: "Set texture size:" } ButtonGroup { id: sizeGroup } RadioButton { id: size256 text: "256x256" checked: true ButtonGroup.group: sizeGroup } RadioButton { id: size512 text: "16x16" checked: false ButtonGroup.group: sizeGroup } Button { text: "Random Start Color" onClicked: gradientTexture.startColor = randomColor(); } Button { text: "Random End Color" onClicked: gradientTexture.endColor = randomColor(); } } }