我正在使用AssImp来解析要在OpenGl上使用的简单多维数据集(作为测试示例)。但是当OpenGl启动时,我看到我的场景中有多维数据集,然后在我的Nvidia驱动程序上出现此错误:
http://nvidia.custhelp.com/app/answers/detail/a_id/3007
OpenGl关闭,这种情况一直发生在我开始使用AssImp之后。
我的Nvidia是GeForce 9300M GS。 绘制多维数据集的代码非常简单:
#include "Object.h"
Object::Object(string filename){
scene = importer.ReadFile(filename,aiProcess_CalcTangentSpace|aiProcess_Triangulate|aiProcess_JoinIdenticalVertices|aiProcess_SortByPType);
if(!scene){
cout << importer.GetErrorString();
}
}
void Object::draw(){
if(!scene)
return;
if(!scene->mNumMeshes){
cout << "NO PRIMITIVES" << endl;
return;
}
for(int i = 0; i < scene->mNumMeshes ; i++){
for (int j = 0; j < scene->mMeshes[i]->mNumFaces ; j++)
{
glBegin(GL_TRIANGLES);
glVertex3f(scene->mMeshes[i]->mVertices[scene->mMeshes[i]->mFaces[j].mIndices[0]].x,
scene->mMeshes[i]->mVertices[scene->mMeshes[i]->mFaces[j].mIndices[0]].y,
scene->mMeshes[i]->mVertices[scene->mMeshes[i]->mFaces[j].mIndices[0]].z);
glVertex3f(scene->mMeshes[i]->mVertices[scene->mMeshes[i]->mFaces[j].mIndices[1]].x,
scene->mMeshes[i]->mVertices[scene->mMeshes[i]->mFaces[j].mIndices[1]].y,
scene->mMeshes[i]->mVertices[scene->mMeshes[i]->mFaces[j].mIndices[1]].z);
glVertex3f(scene->mMeshes[i]->mVertices[scene->mMeshes[i]->mFaces[j].mIndices[2]].x,
scene->mMeshes[i]->mVertices[scene->mMeshes[i]->mFaces[j].mIndices[2]].y,
scene->mMeshes[i]->mVertices[scene->mMeshes[i]->mFaces[j].mIndices[2]].z);
glEnd;
}
}
}
有没有人使用AssImp在Nvidia驱动程序上发生此类崩溃?
我不知道问题可能是什么。我已经在这台计算机上多次使用OpenGl,其中更复杂的形状构建了整个场景,但我从来没有这样做过。
答案 0 :(得分:3)
在double for循环中,您可能希望编写glEnd();
而不是glEnd;
(这是有效的C ++,但编译器会发出警告)