eagle.bmp 

基於我在網路上找資料也是相當辛苦,在測試的時候也有很多問題需要克服,所以我覺得要寫點實作心得記錄一下。

首先,這次目的是在Visual C++6.0的環境利用OpenGL的函式達成讀obj檔的效果呈現。

在教學網站特別感謝Gary前輩為我解答問題,讓我了解很多之前不懂的知識。

接下來進入主題,我們在Visual C++6.0開啟一個新專案,必須將專案類型選對才可以。

讀obj檔必須要選擇Win32 Console Application,這是第一個重要的地方。

Win32 Console Application.bmp  

接下來,我們必須將別人寫好的glm.hglm.cpp加入專案資料夾裡頭,因為別人已經寫好如何讀取obj檔案的函式都在這兩個檔案裡頭。將下來還必須將glut.hglut32.lib放到專案資料夾內才行,這樣一來才可以使用OpenGL的函式。

專案資料夾.bmp

接下來是讓我恍然大悟的地方,請大家注意,務必要將glut32.dll和自己想要讀取的obj檔放到Debug資料夾裡面,這是Visual C++6.0的工作資料夾,放到這裡才能讀取到。

另外如果你的檔案有兩個,obj檔mtl檔,請務必記得將兩個檔案一起放到這個資料夾才行。(mtl檔是紀錄物件顏色的檔案)

Debug資料夾.bmp

環境畫面大概像是這樣,必須把該加入專案的檔案都加入。

環境.bmp

讀取檔案之後,其實是平面的,一開始它不會動,必須要寫個旋轉的函式依照轉軸轉動它。

另外顏色,如沒有mtl檔(mtl檔是紀錄物件顏色的檔案),可以利用改變光源顏色達到效果。

cube.bmp

若是利用C++讀文字檔的方式可能只可以讀取像cube.obj的簡單檔案,複雜一點可能就行不通。

但是選用函式的方法實作,可以讀取任何的obj檔案。

castle.bmp

因為有打光的設定可以看到亮度和陰影的存在。

pawn.bmp 

其實,這一次的電腦繪圖學作業,學到不少,感覺多媒體的東西頗有趣,裡頭函式功能也很好玩。

 

只是真的都需要下工夫了解,凡事皆是如此:)

 

 

arrow
arrow
    全站熱搜

    LawlietMoon 發表在 痞客邦 留言(3) 人氣()