Qt Quick 3D Physics - マテリアルの例

物理的なマテリアルを使用する例を示します。

マテリアルの例では、物理ボディのマテリアルプロパティを制御する方法を示します。シーンには、View3DPhysicsWorldPerspectiveCameraDirectionalLight の通常の定型文が含まれています。これに加えて、シーンには、わずかに傾いた平面とボックスの2つの物理ボディが含まれています。各物理ボディには、PhysicsMaterial ノードを含むphysicsMaterial プロパティがあります。PhysicsMaterial には、staticFrictiondynamicFrictionrestitution の3つのマテリアル・プロパティがあり、これらは、ボディが他のボディと衝突したり、スライドしたりするときにどのように動作するかを定義するために使用されます。箱のマテリアルをインタラクティブに調整できるシンプルなユーザーインターフェイスがあり、マテリアルプロパティによって箱がどのように相互作用するかを見ることができます。

これはマテリアルの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
    }
}

ファイル

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。