Qt Quick 3D Physics - Exemple de matériau
Démonstration de l'utilisation de matériaux physiques.

L'exemple « Matériau » montre comment contrôler les propriétés d'un corps physique. La scène contient les éléments standards habituels : un « View3D », un « PhysicsWorld », un « PerspectiveCamera » et un « DirectionalLight ». En outre, la scène contient deux corps physiques, à savoir un plan légèrement incliné et une boîte. Chaque corps physique possède une propriété « physicsMaterial » contenant un nœud « PhysicsMaterial ». « PhysicsMaterial » contient ces trois propriétés de matériau : « staticFriction », « dynamicFriction » et « restitution », qui servent à définir le comportement du corps lors d’une collision ou d’un glissement contre d’autres corps. Une interface utilisateur simple permet de modifier de manière interactive le matériau de la boîte afin de voir comment celle-ci interagit en fonction de ses propriétés de matériau.
Voici le code QML correspondant au matériau :
PhysicsMaterial {
id: physicsMaterial
staticFriction: staticFrictionSlider.value
dynamicFriction: dynamicFrictionSlider.value
restitution: restitutionSlider.value
}Le matériau se contente de référencer les valeurs des curseurs de l'interface utilisateur. Ce même matériau est ensuite utilisé à la fois pour la boîte et pour le sol :
DynamicRigidBody {
id: box
physicsMaterial: physicsMaterial
massMode: DynamicRigidBody.CustomDensity
density: 10
property vector3d startPosition: Qt.vector3d(700, 300, 0)
position: startPosition
Model {
source: "#Cube"
materials: PrincipledMaterial {
baseColor: "red"
}
}
collisionShapes: BoxShape {}
}
StaticRigidBody {
eulerRotation: Qt.vector3d(-79, -90, 0)
scale: Qt.vector3d(20, 30, 100)
physicsMaterial: physicsMaterial
collisionShapes: PlaneShape {}
Model {
source: "#Rectangle"
materials: PrincipledMaterial {
baseColor: "green"
}
castsShadows: false
receivesShadows: true
}
}Fichiers :
© 2026 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.