2
我正在使用PhysX,OpenGL和assimp。我在最後一行createTriangleMesh未處理的異常
void CreateActor(const aiScene *scene)
{
NxTriangleMeshDesc t;
aiMesh *mesh = scene->mMeshes[0];
t.numVertices = mesh->mNumVertices;
t.points = mesh->mVertices;
t.pointStrideBytes = sizeof(aiVector3D);
t.numTriangles = mesh->mNumFaces;
NxU32 *tr = new NxU32[mesh->mNumFaces*3];
NxU32 k=0;
for(NxU32 i=0;i<mesh->mNumFaces;i++)
for(int j=0;j<3;j++)
tr[k++]=mesh->mFaces[i].mIndices[j];
t.triangles = tr;
t.triangleStrideBytes = sizeof(NxU32)*3;
t.flags=0;
NxTriangleMeshShapeDesc terrainShapeDesc;
// Cooking from memory
InitCooking();
MemoryWriteBuffer buf;
bool status = CookTriangleMesh(t, buf);
MemoryReadBuffer readBuffer(buf.data);
gPhysicsSDK->createTriangleMesh(readBuffer);
}
使用Assimp獲得「未處理的異常.....訪問衝突閱讀位置0x00000」 ::進口商我已閱讀.X 它有24個頂點,12個面的簡單的立方體。 使用2 for循環的點與'mesh-> mFaces [i] .mIndices [j]'是有一個mNumIndices阿爾貢與mIndices
我知道函數CreateActor是不完整的,但錯誤是' createTriangleMesh'(最後一行),所以我省略了休息。
什麼時候gPhysicsSDK初始化?我的第一個猜測會是空指針。 –
哈哈,你是對的。不能相信它。實際上,在我將三角形直接與assimp-mesh-> faces(沒有for循環)等同之前,它不能做飯。所以我從樣本中複製了一些代碼,我認爲這跳過了InitNx()'哦上帝' –
謝謝無論如何......乾杯:) –