だから私はこのコード行を持っています:
new btBvhTriangleMeshShape(meshInterface, true);
これは私のプログラムをクラッシュさせます。どうやら、関数内のどこかにassert(numIndices>0)
、クラッシュの原因となっている行があります。
false
行末にパラメータをもう 1 つ追加すると、次のようになります。
new btBvhTriangleMeshShape(meshInterface, true, false);
バウンディング ボリューム データを生成しないように指示すると、正常に続行されます (クラッシュは発生しません)。私の質問は次のとおりです。 に明らかにインデックスがmeshInterface
あるのに、クラッシュしてインデックスがないと言われるのはなぜですか。
追加情報:
meshInterface
次のように作成されます。
btTriangleMesh *meshInterface = new btTriangleMesh();
for(uint i = 0; i < terrainMesh.position.size(); i++) {
//don't remove duplicate vertex because there won't ever be any
meshInterface->findOrAddVertex(toBt(terrainMesh.position[i]), false);
}
for(uint i = 0; i < terrainMesh.index.size(); i++) {
meshInterface->addIndex(terrainMesh.index[i]);
}
すでに別のオブジェクトにデータをセットアップしており、それを弾丸のセットアップにロードするだけです。
ここで、 my に明らかに有効なデータがあることがわかりますmeshInterface
。メッシュは平面です。