This example demonstrates how to use the principled material in two different ways in an application.
We want to use a light probe , as we're going to use reflective metallic materials. We need to enable light probe and adjust its settings to get the result we want.
environment: SceneEnvironment { probeBrightness: 100 clearColor: "#848895" backgroundMode: SceneEnvironment.Color lightProbe: Texture { source: "maps/OpenfootageNET_garage-1024.hdr" } }
Then we add DirectionalLight and add a rotation for it, to better demonstrate the effect of the metalness and roughness properties have on the materials.
// Rotate the light direction DirectionalLight { eulerRotation.y: -100 brightness: 100 SequentialAnimation on eulerRotation.y { loops: Animation.Infinite PropertyAnimation { duration: 5000 to: 360 from: 0 } } }
We will apply a basic principled material on to the sphere on the left. By basic we mean just using the non-texture properties of the material.
Model { position: Qt.vector3d(-250, -30, 0) scale: Qt.vector3d(4, 4, 4) source: "#Sphere" materials: [ PrincipledMaterial { baseColor: "#41cd52" metalness: materialCtrl.metalness roughness: materialCtrl.roughness specularAmount: materialCtrl.specular indexOfRefraction: materialCtrl.ior specularTint: materialCtrl.specularTint opacity: materialCtrl.opacityValue } ] }
We will apply a textured principled material on to the sphere on the right. When using textures for metalness , roughness , bumpiness ,和 color the basic property values are applied as multipliers for the values gotten from the textures.
Model { position: Qt.vector3d(250, -30, 0) scale: Qt.vector3d(4, 4, 4) source: "#Sphere" materials: [ PrincipledMaterial { metalness: materialCtrl.metalness roughness: materialCtrl.roughness specularAmount: materialCtrl.specular indexOfRefraction: materialCtrl.ior opacity: materialCtrl.opacityValue baseColorMap: Texture { source: "maps/metallic/basecolor.jpg" } metalnessMap: Texture { source: "maps/metallic/metallic.jpg" } roughnessMap: Texture { source: "maps/metallic/roughness.jpg" } normalMap: Texture { source: "maps/metallic/normal.jpg" } metalnessChannel: Material.R roughnessChannel: Material.R } ]
There are some sliders for adjusting the values of the different basic properties.
注意:
若
金属性
has a non-zero value, adjusting
Specular Power
or
Specular Tint
不起作用。
文件:
图像: