2013-11-25 42 views
0

我正在使用AssImp來分析在OpenGl上使用的簡單多維數據集(作爲測試示例)。但是,OpenGl的開始,當我看到我的場景一瞥與立方體在它後面這個錯誤在我的Nvidia驅動:無法在OpenGl上使用AssImp運行場景

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

你使用調試器?它在哪一行崩潰? – GraphicsMuncher

+0

我有,我使用Visual Studio,並沒有說什麼行是崩潰,簡單關閉顯示。 –

回答

3

裏面的雙for循環,你可能想要寫glEnd();而不是glEnd;(這是有效的C++但是編譯器會發出警告它)

+0

謝謝!由於它沒有發出錯誤,我最終並沒有意識到首先它是錯誤的。 –