2017年10月1日 星期日

Mengting計圖筆記Week03 - 編譯清大學姐點陣圖作業、3D exploration

注意: 每週到教室都要記得先下載有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可在部落格原始碼直接嵌入程式碼,讓版面乾淨整潔許多,感謝如萲提供~

沒有留言:

張貼留言