Qt Quick 3D - Custom Materials Example

Demonstrates the use of some Material Library materials.

This example demonstrates using four different Material Library custom materials in an application.

Setting the Scene Environment

We want to use a light probe, as we're going to use some reflective materials. We need to enable light probe and adjust its settings to get the result we want.

environment: SceneEnvironment {
    clearColor: "#848895"
    backgroundMode: SceneEnvironment.Color
    probeBrightness: 1000
    lightProbe: Texture {
        source: "maps/OpenfootageNET_garage-1024.hdr"
    }
    antialiasingMode: SceneEnvironment.SSAA
    antialiasingQuality: SceneEnvironment.VeryHigh
}

Material Library Custom Materials

Bumpy Aluminum

We're applying AluminumMaterial for the WeirdShape model we have created in WeirdShape.qml. We'll adjust its bumpiness to make it look battered or cast, instead of smooth and polished.

WeirdShape {
    customMaterial: AluminumMaterial {
        bump_amount: 5.0
    }
    position: Qt.vector3d(150, 150, -100)
}
Copper

Next we apply unmodified CopperMaterial for another WeirdShape.

WeirdShape {
    customMaterial: CopperMaterial {}
    position: Qt.vector3d(-150, -150, -100)
}
Frosted Glass

We'll apply FrostedGlassSinglePassMaterial for one of the spheres, and adjust its roughness, reflectivity, index of refraction, and color a little bit.

Model {
    position: Qt.vector3d(-300, 0, 100)
    scale: Qt.vector3d(2.5, 2.5, 2.5)
    source: "#Sphere"
    materials: [ FrostedGlassSinglePassMaterial {
            roughness: 0.1
            reflectivity_amount: 0.9
            glass_ior: 1.9
            glass_color: Qt.vector3d(0.85, 0.85, 0.9)
        }
    ]
}
Plastic

For the other sphere we'll apply PlasticStructuredRedMaterial, and adjust its index of refraction and bumpiness a bit.

Model {
    position: Qt.vector3d(300, 0, 100)
    scale: Qt.vector3d(2.5, 2.5, 2.5)
    source: "#Sphere"
    materials: [ PlasticStructuredRedMaterial {
            material_ior: 1.55
            bump_factor: 0.1
        }
    ]
}

Files:

© 2023 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.