Bullet その四 ソフトボディ


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

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
などがあります。
ツールボックス

下から選んでください:

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