PhysicsWorld QML Type

控制物理模拟。更多

Import Statement: import QtQuick3D.Physics
Since: Qt 6.4

属性

信号

详细说明

物理世界(PhysicsWorld)类型控制着物理模拟。该节点用于创建物理世界实例并定义其属性。物理世界只能有一个。qml 中的所有碰撞节点都将自动添加到物理世界中。

属性文档

defaultDensity : real

该属性定义了动态物体的默认密度,单位为千克/立方。这相当于边长为1 的立方体的重量。

默认值为0.001 ,相当于 1 g/cm³:水的密度。如果您的测量单位是米,那么好的值是1000 。注意只允许使用正值。

范围:(0, inf]


enableCCD : bool

此属性可实现连续碰撞检测。这将降低物体高速穿过其他物体的风险(也称为隧道效应)。默认值为false

警告: 不支持在启用 CCD 的情况下使用触发体,这可能导致触发报告丢失或错误。


forceDebugDraw : bool

此属性可调试物理世界中所有活动形状的绘制。默认值为false


gravity : vector3d

该属性定义物理世界的重力矢量。默认值为(0, -981, 0) 。如果测量单位为米,且模拟的是地球重力,则将该值设置为Qt.vector3d(0, -9.81, 0)


maximumTimestep : real

该属性以毫秒为单位定义最大模拟时间步长。默认值为33.333 ,相当于每秒30 帧。

范围:[0, inf]


minimumTimestep : real

该属性以毫秒为单位定义最小模拟时间步长。默认值为16.667 ,相当于每秒60 帧。

范围: 以毫秒为单位:[0, maximumTimestep]


numThreads : int [since 6.7]

该属性定义用于物理仿真的线程数。这就是数值范围的解释方式:

范围说明
负值[-inf, -1]自动线程数。应用程序将尝试从系统中查询线程数。
{0}无线程,模拟将按顺序运行。
[1, inf]特定线程数。

默认值为-1 ,表示自动计算线程数。

注意: 一旦场景开始运行,就无法更改线程数。

此属性在 Qt 6.7 中引入。


reportKinematicKinematicCollisions : bool [since 6.7]

此属性控制运动动态刚体对之间的碰撞是否会触发接触报告。

默认值为false

注意: 一旦场景开始运行,就无法更改此设置。

此属性在 Qt 6.7 中引入。

另请参阅 PhysicsWorld::reportStaticKinematicCollisions,DynamicRigidBody, 和PhysicsNode::bodyContact


reportStaticKinematicCollisions : bool [since 6.7]

该属性控制静态刚体与运动动态刚体之间的碰撞是否会触发接触报告。

默认值为false

注意: 一旦场景开始运行,就无法更改此设置。

此属性在 Qt 6.7 中引入。

另请参阅 PhysicsWorld::reportKinematicKinematicCollisions,StaticRigidBody,DynamicRigidBody, 和PhysicsNode::bodyContact


running : bool

此属性可启动或停止物理模拟。默认值为true


scene : Node

该属性定义了包含物理模拟所有节点的最顶层节点。作为该节点祖先的所有物理对象都将被视为PhysicsWorld 的一部分。

注: 不支持在多个PhysicsWorld 中使用同一个场景节点。


typicalLength : real

该属性定义了模拟中对象的大致尺寸。该属性用于估算某些与长度相关的公差。小于或大于此尺寸的对象可能无法正常运行。默认值为100

范围:[0, inf]


typicalSpeed : real

该属性定义了模拟中物体速度的典型值。根据物体的撞击速度和动能阈值(低于该阈值,模拟可能会使物体休眠),来估算是将触点视为弹跳还是静止。

对于正常物理环境,物体在重力作用下下落一秒的大致速度是一个不错的选择。默认值为1000

范围:[0, inf]


viewport : Node

该属性定义了在启用forceDebugDraw 时绘制调试组件的视口。如果未设置,将使用scene 节点。

另请参阅 forceDebugDrawscene


信号文档

[since 6.5] frameDone(float timestep)

当物理模拟完成一帧的模拟时,就会发出该信号。timestep 参数是模拟中时间步的毫秒数。

注: 相应的处理程序是onFrameDone

该信号在 Qt 6.5 中引入。


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