Qt?6.4 包含新模块Qt Quick 3D Physics作为技术预览,这是一个在Qt Quick 3D之上添加物理模拟功能的模块。比较特别的是,它可以使用简单的基元(球体、盒子、平面和胶囊)以及凸面和三角形网格和高度图进行刚体模拟,质量、密度、重力和摩擦力等物理属性是可定制的。 这使得在 3D 场景中创建物理上正确的行为成为可能,而无需手工制作动画。
Qt技术交流群:166830288??????欢迎一起进群讨论
点击获取Qt组件下载将物理添加到您的场景中非常容易,以下片段是创建和渲染整个场景所需的全部内容,其中平面和盒子相互交互:
class="prettyprint lang-cpp">import QtQuick
import QtQuick3D
import QtQuick3D.Physics
Window {
visible: true
DynamicsWorld {}
View3D {
anchors.fill: parent
PerspectiveCamera {
position: Qt.vector3d(0, 100, 500)
clipFar: 5000
clipNear: 1
}
DirectionalLight {
eulerRotation.x: -45
eulerRotation.y: 45
castsShadow: true
}
StaticRigidBody {
position: Qt.vector3d(0, 0, 0)
eulerRotation: Qt.vector3d(-90, 0, 0)
collisionShapes: PlaneShape {}
Model {
source: "#Rectangle"
scale: Qt.vector3d(10, 10, 10)
materials: PrincipledMaterial {
baseColor: "green"
}
castsShadows: false
receivesShadows: true
}
}
DynamicRigidBody {
position: Qt.vector3d(0, 200, 0)
collisionShapes: BoxShape {}
Model {
source: "#Cube"
materials: PrincipledMaterial {
baseColor: "yellow"
}
}
}
}
}
?
Qt?Quick 3D Physics 是一个纯 QML API,目前在 Qt 6.4 中作为技术预览版提供。 该文档附带了一些说明性示例,展示了该模块的不同功能。
?Qt技术交流群:166830288??????欢迎一起进群讨论