物體的形狀由<code>btCollisionShape</code>對象維護;
物體的位置,旋轉狀态由<code>btTransform</code>對象維護;
最終需要将物體封裝成<code>btRigidBody</code>或<code>btSoftBody</code>或其它對象;
然後将步驟3的對象加入到場景中。
例如
btCollisionObject 基類
btRigidBody 剛體
btSoftBody 流體
<code>btCollisionShape* btCollisionObject::getCollisionShape()</code>
btCollisionObject對象中擷取形狀維護對象
<code>void btCollisionObject::setFriction(btScalar frict)</code>
設定摩擦力
預設值:0
<code>void btCollisionObject::setRestitution(btScalar rest)</code>
設定碰撞反彈系數
<code>void btRigidBody::applyImpulse(const btVector3 & impulse, const btVector3 & rel_pos)</code>
設定沖量/動量(通過這個設定初始速度)
<code>void btRigidBody::applyCentralImpulse(const btVector3 & impulse)</code>
<a href="http://bulletphysics.org/Bullet/BulletFull/classbtCollisionShape.html">http://bulletphysics.org/Bullet/BulletFull/classbtCollisionShape.html</a>
常見的物體有長方體、球體、膠囊體、三角網格集合。
btCollisionShap
基類
btBoxShape
長方體
BOX_SHAPE_PROXYTYPE
btSphereShape
球體
SPHERE_SHAPE_PROXYTYPE
btCapsuleShape
膠囊體
CAPSULE_SHAPE_PROXYTYPE
btBvhTriangleMeshShap
三角網格
TRIANGLE_MESH_SHAPE_PROXYTYPE
<code>int btCollisionShape::getShapeType() const</code>
擷取物品類型,類型參考以下枚舉
<code>#include "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h" //for the shape types</code>
構造函數<code>btBvhTriangleMeshShape::btBvhTriangleMeshShape(btStridingMeshInterface* meshInterface,bool useQuantizedAabbCompression)</code>
構造函數<code>btBvhTriangleMeshShape::btBvhTriangleMeshShape(btStridingMeshInterface* meshInterface,bool useQuantizedAabbCompression, bool buildBvh = true)</code>
<code>btTriangleIndexVertexArray</code>類內建于 <code>btStridingMeshInterface</code>接口。
<code>btIndexedMesh</code> 三角網格頂點清單和索引清單維護類
頂點表 Vertex Buff
三角形表 Index Buff
通用高性能三角網格通路接口。
構造函數<code>btBoxShape::btBoxShape(const btVector3 & boxHalfExtents)</code>
長寬高,封裝成<code>btVector3</code>對象
構造函數<code>btSphereShape::btSphereShape(btScalar radius)</code>
radius xyz軸的半徑,可以設定為橢圓球
構造函數<code>btCapsuleShape::btCapsuleShape()</code>
構造函數<code>btCapsuleShape::btCapsuleShape(btScalar radius, btScalar height)</code>
radius 膠囊體半徑,可以設定為橢圓球
height 膠囊體長度,height為圓心之間的距離
膠囊體的aabb的邊的長度為 {radius2, radius2, radius*2+height}
本文轉自 Ron Ngai 部落格園部落格,原文連結:http://www.cnblogs.com/rond/p/6375917.html ,如需轉載請自行聯系原作者