Qt Quick 3D 物理效果 - 材质示例

演示了如何使用物理材质。

材质 示例演示了如何控制物理体的材质属性。场景包含常用的 View3DPhysicsWorldPerspectiveCameraDirectionalLight。除此之外,场景还包含两个物理体,即一个略微倾斜的平面和一个盒子。每个物理体都有一个包含 physicsMaterial 的属性,该属性包含一个 PhysicsMaterial 节点。《PhysicsMaterial》 包含这三个材质属性;静态摩擦动态摩擦恢复,这些属性用来定义物体在与其他物体碰撞和滑动时的行为。有一个简单的用户界面,可以交互式地调整盒子的材质,以便您可以看到根据其材质属性如何互动。

这是材质的 QML 代码

PhysicsMaterial {
    id: physicsMaterial
    staticFriction: staticFrictionSlider.value
    dynamicFriction: dynamicFrictionSlider.value
    restitution: restitutionSlider.value
}

材质简单引用用户界面滑动条的值。这个相同的材质被用于盒子和地面

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: DefaultMaterial {
            diffuseColor: "green"
        }
        castsShadows: false
        receivesShadows: true
    }
}

文件

© 2024 Qt 公司。本文档中包含的文档贡献是其各自所有者的版权。本文档根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款许可。Qt 和相应的标志是芬兰的 Qt 公司及其在全球的子公司或附属公司的 商标。所有其他商标均为其各自所有者的财产。