Qt Quick 3D - Dynamic Texture Example

Demonstrates how to use a 2D layer as a 3D texture.

DynamicTexture demonstrates how to render 3D objects with 2D item. The 2D item used in this example is a fancy corkboard and it is textured to a simple double door.

Drawing a 3D View

A wall and two doors

The two doors share the same texture, which is identified by the sourceItem property.

DefaultMaterial {
    id: material_001_material
    diffuseMap: Texture {
        sourceItem: object2d
        flipV: true
    }
}
materials: [
    material_001_material
]
Defining a new state

Each door will open when clicked on it and its state is set to opened.

states: State {
    name: "opened"
    PropertyChanges {
        target: door1
        rotation: Qt.vector3d(0, 90, 0)
    }
}
transitions: Transition {
    to: "opened"
    reversible: true
    SequentialAnimation {
        PropertyAnimation { property: "rotation"; duration: 2000 }
    }
}

Drawing a 2D layer

The corkboards example is used as the content for this example.

Rectangle {
    id: object2d
    width: 500
    height: 700
    anchors.top: parent.top
    anchors.left: parent.left
    anchors.margins: 10

    CorkBoards { }

    layer.enabled: true
}

Files:

Images:

© 2020 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.