gpt4 book ai didi

c++ - 项目符号:btBvhTriangleMeshShape 崩溃

转载 作者:行者123 更新时间:2023-11-30 04:02:20 25 4
gpt4 key购买 nike

所以我有这行代码:

new btBvhTriangleMeshShape(meshInterface, true);

这让我的程序崩溃了。显然,函数内部某处有一个 assert(numIndices>0) 行,这导致了崩溃。

如果我在行末添加一个 false 参数,它看起来像:

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]);
}

我已经在另一个对象中设置了我的数据,我只是将它加载到项目符号设置中。

在这里你可以看到我的 meshInterface 中有明显有效的数据。网格是一个平面。

enter image description here

最佳答案

来自 btTriangleMesh.h:

// findOrAddVertex is an internal method, use addTriangle instead
int findOrAddVertex(const btVector3& vertex, bool removeDuplicateVertices);

所以请尝试改用 addTriangle。

编辑:使用 btTriangleIndexVertexArray 比使用 btTriangleMesh 更有效。

关于c++ - 项目符号:btBvhTriangleMeshShape 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25128295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com