Bullet その四 ソフトボディ

Bullet その四はソフトボディを扱います。

ソフトボディはパラメータの設定がたくさんあるのですが
今回はデフォルトのままでやります。

生成方法は以下の通りです。

追加のヘッダ
#include <BulletSoftBody/btSoftBodyHelpers.h>

生成方法
std::vector< btVector3 > vertices; //頂点データ
std::vector< int > indices; //インデックスデータ

btSoftBodyWorldInfo worldInfo; //ワールド情報
worldInfo.m_broadphase = g_Boardphase.get();
worldInfo.m_dispatcher = g_CollisionDispatcher.get();
worldInfo.m_sparsesdf.Initialize();
worldInfo.air_density = 1.2f;
worldInfo.water_density = 0.0f;
worldInfo.water_offset = 0.0f; 
worldInfo.water_normal.setValue( 0.0f, 0.0f, 0.0f );

//生成
btSoftBody* softbody = btSoftBodyHelpers::CreateFromTriMesh( worldInfo, &vertices[0], &indices[0], indices.size()/3 );

btTransform start;
//初期位置の設定 
softbody->transform( start );

//登録
g_World->addSoftBody( softbody );
g_Objects.push_back( ObjectPtr( softbody ) );

上記の例は、三角形メッシュをソフトボディにしています。
注意点として、インデックスデータはintの整数型になっています。
ほかにも、
 CreateFromConvexHull
 CreateRope
などがあります。

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2011年01月23日 20:59
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。