PhysicsWorld QML Type
Gère la simulation physique. En savoir plus…
| Import Statement: | import QtQuick3D.Physics |
| Since: | Qt 6.4 |
Propriétés
- defaultDensity : real
- enableCCD : bool
- forceDebugDraw : bool
- gravity : vector3d
- maximumTimestep : real
- minimumTimestep : real
- numThreads : int
(since 6.7) - reportKinematicKinematicCollisions : bool
(since 6.7) - reportStaticKinematicCollisions : bool
(since 6.7) - running : bool
- scene : Node
- typicalLength : real
- typicalSpeed : real
- viewport : Node
Signaux
- frameDone(float timestep)
(since 6.5)
Description détaillée
Le type PhysicsWorld contrôle la simulation physique. Ce nœud sert à créer une instance du monde physique ainsi qu’à définir ses propriétés. Il ne peut y avoir qu’un seul monde physique. Tous les nœuds de collision présents dans le fichier QML seront automatiquement ajoutés au monde physique.
Documentation des propriétés
defaultDensity : real
Cette propriété définit la densité par défaut des objets dynamiques, exprimée en kilogrammes par unité cubique. Elle correspond au poids d'un cube dont les côtés mesurent 1.
La valeur par défaut est 0.001, ce qui correspond à 1 g/cm³ : la densité de l'eau. Si votre unité de mesure est le mètre, une valeur appropriée serait 1000. Notez que seules les valeurs positives sont autorisées.
Plage : (0, inf]
enableCCD : bool
Cette propriété active la détection continue des collisions. Cela permet de réduire le risque que des corps traversent d'autres corps à grande vitesse (phénomène également appelé « effet tunnel »). La valeur par défaut est « false ».
Avertissement : l'utilisation de corps déclencheurs avec la détection de collision continue (CCD) activée n'est pas prise en charge et peut entraîner des rapports de déclenchement manquants ou erronés.
forceDebugDraw : bool
Cette propriété permet l'affichage de débogage de toutes les formes actives dans l'environnement physique. La valeur par défaut est « false ».
gravity : vector3d
Cette propriété définit le vecteur de gravité de l'univers physique. La valeur par défaut est (0, -981, 0). Définissez la valeur sur Qt.vector3d(0, -9.81, 0) si votre unité de mesure est le mètre et que vous simulez la gravité terrestre.
maximumTimestep : real
Cette propriété définit le pas de temps maximal de la simulation en millisecondes. La valeur par défaut est 33.333.
Plage : [0, inf]
Remarque : le pas de temps de simulation fonctionne en synchronisation avec le rendu, ce qui signifie qu’une nouvelle image de simulation ne sera lancée qu’une fois l’image rendue terminée. Cela signifie qu’une seule image de simulation s’exécutera au maximum par image rendue.
minimumTimestep : real
Cette propriété définit le pas de temps minimal de la simulation, en millisecondes. La valeur par défaut est 1.
Plage : [0, maximumTimestep]
Remarque : le pas de temps de simulation fonctionne en synchronisation avec le rendu, ce qui signifie qu’une nouvelle image de simulation ne sera lancée qu’une fois l’image rendue terminée. Cela signifie qu’une seule image de simulation s’exécutera au maximum par image rendue.
numThreads : int [since 6.7]
Cette propriété définit le nombre de threads utilisés pour la simulation physique. Voici comment interpréter la plage de valeurs :
| Valeur | Plage | Description |
|---|---|---|
| Négatif | [-inf, -1] | Nombre de threads automatique. L'application tentera d'interroger le système pour connaître le nombre de threads. |
| Zéro | {0} | Pas de multithreading, la simulation s'exécutera de manière séquentielle. |
| Positif | [1, 256] | Nombre de threads spécifique. Les valeurs supérieures à 256 sont limitées. |
La valeur par défaut est « -1 », ce qui signifie « nombre de threads automatique ».
Remarque : une fois que la scène a commencé à s'exécuter, il n'est plus possible de modifier le nombre de threads.
Cette propriété a été introduite dans Qt 6.7.
reportKinematicKinematicCollisions : bool [since 6.7]
Cette propriété détermine si les collisions entre des paires de corps rigides cinématiques dynamiques déclenchent un rapport de contact.
La valeur par défaut est « false ».
Remarque : une fois que la scène a commencé à s'exécuter, il n'est plus possible de modifier ce paramètre.
Cette propriété a été introduite dans Qt 6.7.
Voir également PhysicsWorld::reportStaticKinematicCollisions, DynamicRigidBody et PhysicsNode::bodyContact.
reportStaticKinematicCollisions : bool [since 6.7]
Cette propriété détermine si les collisions entre un corps rigide statique et un corps rigide dynamique cinématique déclenchent un rapport de contact.
La valeur par défaut est « false ».
Remarque : une fois que la scène a commencé à s'exécuter, il n'est plus possible de modifier ce paramètre.
Cette propriété a été introduite dans Qt 6.7.
Voir également PhysicsWorld::reportKinematicKinematicCollisions, StaticRigidBody, DynamicRigidBody et PhysicsNode::bodyContact.
running : bool
Cette propriété permet de démarrer ou d'arrêter la simulation physique. La valeur par défaut est « true ».
scene : Node
Cette propriété définit le nœud de niveau supérieur qui contient tous les nœuds de la simulation physique. Tous les objets physiques qui sont des ancêtres de ce nœud seront considérés comme faisant partie de cette « PhysicsWorld ».
Remarque : l'utilisation d'un même nœud de scène pour plusieurs « PhysicsWorld » n'est pas prise en charge.
typicalLength : real
Cette propriété définit la taille approximative des objets dans la simulation. Elle sert à estimer certaines tolérances liées à la longueur. Les objets nettement plus petits ou plus grands que cette taille risquent de ne pas se comporter correctement. La valeur par défaut est « 100 ».
Plage : [0, inf]
typicalSpeed : real
Cette propriété définit l'ordre de grandeur typique des vitesses des objets dans la simulation. Elle sert à déterminer si un contact doit être considéré comme un rebond ou comme un arrêt en fonction de la vitesse d'impact, ainsi qu'à définir un seuil d'énergie cinétique en dessous duquel la simulation peut mettre les objets en veille.
Pour des environnements physiques normaux, un bon choix correspond à la vitesse approximative d’un objet tombant sous l’effet de la gravité pendant une seconde. La valeur par défaut est 1000.
Plage : [0, inf]
viewport : Node
Cette propriété définit la fenêtre d'affichage dans laquelle les composants de débogage seront affichés si l'option « forceDebugDraw » est activée. Si elle n'est pas définie, le nœud « scene » sera utilisé.
Voir également « forceDebugDraw » et « scene ».
Documentation sur les signaux
[since 6.5] frameDone(float timestep)
Ce signal est émis lorsque la simulation physique a terminé la simulation d'une image. Le paramètre timestep indique la durée, en millisecondes, du pas de temps utilisé dans la simulation.
Remarque : le gestionnaire correspondant est onFrameDone.
Ce signal a été introduit dans Qt 6.5.
© 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.