Qt Quick 3D Physics - マテリアルの例
物理的なマテリアルを使用する例を示します。
マテリアルの例では、物理ボディのマテリアルプロパティを制御する方法を示します。シーンには、View3D 、PhysicsWorld 、PerspectiveCamera 、DirectionalLight の通常の定型文が含まれています。これに加えて、シーンには、わずかに傾いた平面とボックスの2つの物理ボディが含まれています。各物理ボディには、PhysicsMaterial ノードを含むphysicsMaterial プロパティがあります。PhysicsMaterial には、staticFriction 、dynamicFriction 、restitution の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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。