PhysicsWorld QML 类型
控制物理学模拟。 更多...
导入语句 | import QtQuick3D.Physics |
自 | Qt 6.4 |
属性
- defaultDensity : float
- enableCCD : bool
- forceDebugDraw : bool
- gravity : vector3d
- maximumTimestep : float
- minimumTimestep : float
- numThreads : int
(since 6.7)
- reportKinematicKinematicCollisions : bool
(since 6.7)
- reportStaticKinematicCollisions : bool
(since 6.7)
- running : bool
- scene : Node
- typicalLength : float
- typicalSpeed : float
- viewport : Node
信号
- frameDone(float timestep)
(since 6.5)
详细描述
PhysicsWorld 类型控制物理学模拟。此节点用于创建物理世界实例以及定义其属性。只能有一个物理世界。所有的碰撞节点都将自动添加到 QML 中的物理世界。
属性文档
defaultDensity : float |
此属性定义了动态物体的默认密度,以每立方单位千克为单位度量。这等于边长为 1
的立方体的重量。
默认值是 0.001
,对应于 1 g/cm³:水的密度。如果您的测量单位是米,良好的值将是 1000
。请注意,只允许正数。
范围:(0, inf]
enableCCD : bool |
此属性启用连续碰撞检测。这可以降低在高速情况下(也称为隧道效应)身体穿过其他身体的几率。
警告:不支持在启用CCD的情况下使用触发身体,可能导致漏报或错误触发报告。
forceDebugDraw : bool |
此属性启用在物理世界中对所有活动形状的调试绘图。默认值是 false
。
gravity : vector3d |
此属性定义物理世界的重力向量。默认值是 (0, -981, 0)
。如果您使用的单位是米,并且您正在模拟地球重力,请将值设置为 Qt.vector3d(0, -9.81, 0)
。
maximumTimestep : float |
此属性定义最大模拟时间步长(以毫秒为单位)。默认值为 33.333
,相当于 30
帧/秒。
范围:[0, inf]
minimumTimestep : float |
此属性定义最小模拟时间步长(以毫秒为单位)。默认值为 16.667
,相当于 60
帧/秒。
范围:[0, maximumTimestep]
numThreads : int |
此属性定义用于物理仿真线程的数量。以下是值的解释
值 | 范围 | 描述 |
---|---|---|
负数 | [-inf, -1] | 自动线程数。应用将尝试从系统查询线程数。 |
零 | {0} | 无线程,仿真将按顺序运行。 |
正数 | [1, inf] | 特定线程数。 |
默认值是 -1
,表示自动线程数。
注意:一旦场景开始运行,就无法更改线程数。
此属性是在 Qt 6.7 中引入的。
reportKinematicKinematicCollisions : bool |
此属性控制两个运动学动态刚体之间的碰撞是否触发接触报告。
默认值是 false
。
注意:一旦场景开始运行,就无法更改此设置。
此属性是在 Qt 6.7 中引入的。
另请参阅:PhysicsWorld::reportStaticKinematicCollisions、DynamicRigidBody 和 PhysicsNode::bodyContact。
reportStaticKinematicCollisions : bool |
此属性控制静态刚体和运动学动态刚体之间的碰撞是否触发接触报告。
默认值是 false
。
注意:一旦场景开始运行,就无法更改此设置。
此属性是在 Qt 6.7 中引入的。
另请参阅:PhysicsWorld::reportKinematicKinematicCollisions、StaticRigidBody、DynamicRigidBody 和 PhysicsNode::bodyContact。
running : bool |
此属性开始或停止物理仿真。默认值是 true
。
scene : Node |
此属性定义包含物理仿真中所有节点的最顶层节点。所有作为此节点祖先的物理对象都将被视为此 PhysicsWorld 的部分。
注意: 为多个 PhysicsWorld 使用相同的场景节点是不受支持的。
typicalLength : float |
该属性定义了模拟中对象的近似大小。这用于估计某些与长度相关的公差。比这个尺寸小得多或大得多的对象可能无法正常工作。默认值是 100
。
范围:[0, inf]
typicalSpeed : float |
该属性定义了模拟中对象的典型速度大小。这用于基于接触速度估计是否应处理为弹跳或静止,以及一个动能阈值,以下可能使模拟中的对象休眠。
对于正常的物理环境,一个好的选择是在重力作用下物体自由落体一秒钟的近似速度。默认值是 1000
。
范围:[0, inf]
viewport : Node |
该属性定义了在启用 forceDebugDraw 时将绘制调试组件的视口。如果没有设置,将使用 scene 节点。
另请参阅 forceDebugDraw 和 scene。
信号文档
|
当物理模拟完成模拟一帧时,会发出此信号。参数 timestep 表示在模拟中时间步长是多少毫秒。
注意: 相应的事件处理程序是 onFrameDone
。
此信号在 Qt 6.5 中引入。
© 2024 The Qt Company Ltd. 本文档中的贡献的文档产权属于其各自的所有者。提供的文档是根据自由软件基金会发布的 GNU 自由文档许可版本 1.3 的条款许可的。Qt 和相应的徽标是 The Qt Company Ltd. 在芬兰和/或其他国家的商标。所有其他商标均为其各自所有者的财产。