1

だから私はこのコード行を持っています:

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。メッシュは平面です。

ここに画像の説明を入力

4

1 に答える 1