注意: 每週到教室都要記得先下載有mingw的codeblocks
本週上課主題:利用 Vertex Buffer/Vertex Array來進行加速,改進第2週點(Vertex) 太多造成呼叫函式太多次的效能問題,並介紹簡單 shader 觀念。
實作一: 編譯學姐程式
1. 把記錄RGB的.txt檔放到freeglut資料夾中的bin資料夾。因GLUT專案會把excutable目錄設定在freeglut的bin目錄裡
2. 在codeblocks開啟一個新的GLUT專案。
3. 貼上學姐的程式碼 。
4. 執行,小小兵出來say Hi。

學姐的程式作法很特別,老師特別拿出來分享,另外也提出幾個可以特別注意的點。
1. 呼叫fopen()的時機
注意開檔讀檔的時機,盡量避免在執行多次的函式/迴圈中進行,以免造成不必要的效能浪費。
2. glClear()參數
draw()函式中的glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
與main()函式中的glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE| GLUT_DEPTH);
需同時存在,作深度緩衝的功能。若遺漏,有時候圖會無法正常顯示。
3. glPointSize(10.0f)
將每一格點放大為原先的10倍,以免改變圖片大小時造成失真。
實作二: 3D exploration
1. 3D exploration下載並安裝這個公司已經不在了,無法註冊新帳號,想付費買也沒地方付錢(令人煩惱),但還是可以使用。
2. http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/
點data右鍵另存,裡面有許多現成的模型。
3. 把下載的小模拉到3D exploration介面的右下方,選擇喜歡的圖形。
4. file-save as-另存新檔 ,OpenGL APP 存成simple app,勾選generate workspace & Project files。
5. 即可到C->program files(x86)->3D exploration,找到剛剛存的檔案。
6. codeblocks開新OpenGL專案,貼code,改檔名為.cpp
7. 註解有問題的老舊code,執行程式即可顯示出圖形。

新工具
GithubGist可在部落格原始碼直接嵌入程式碼,讓版面乾淨整潔許多,感謝如萲提供~
沒有留言:
張貼留言