2017年9月28日 星期四

楊喻文的學習手札 20170928

week 03
🎊  今天是9/28 祝老師   ❤❤教師節快樂❤❤  🎊


事前提要:
1. 要注意電腦上的codeblocks上面是有裝圖學要用的MinGW編譯環境,並且將相關設定都設好

學姊的作品:繪製小小兵

1. glClear();的使用

Display()
glClear(GL, COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT
main()
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
這兩行藍色的部分是互相對應的,在使用的時候都要記得寫(他代表的是圖片3D的深度),不然在Lunix之外的系統跑的時候會跑不出圖

2. 讀檔的時機

要在程式中開檔案的時候,要記得不要在會使用很多次的函式中用,因為fscanf本身速度就不快,在常常使用的函式中使用的時候,會讓程式跑更慢,所以開啟檔案和讀檔的時機要注意!

3. glPointSize(10.0f);

glPointSize(10.0f); 
這行把一格圖點放大10倍,這樣圖片如果放超級大(高解析度),也不會壞掉(髒髒的)*,除非放到100倍才有可能壞掉。因為她在畫的時候,每個點會把前面的點蓋住,變成一條細細的線,畫到下一行的時候會把點的下半部分蓋住,始點只剩下原本左上角的細細的點(應該是原本的1/10)。

以下面這張圖為例,大概就是長這樣,原本和淺綠色一樣的大小,最後只會剩下左上角藍色的那個小塊
(繪圖技術不良,請見諒>"<)


 有這行放到很大的樣子 VS 沒有這行放大的樣子 
VS

4. 檔案放置位置

檔案要記得放在freeglut\bin的資料夾裡面(上),不然圖片會跑不出來(下)


--------------------------------------------------------------------------
自己執行之後的結果😊


Vertex Buffer/ Array/ Shader

每次呼叫一個頂點的方式(glVertex3f(...))會很慢,用這個就可以一次用一刷(?)來執行,會比較快
然後好像沒有講太多~

介紹個好東西:

3d exploration是一款可以看3D模型的軟體

➧下載&安裝:

用瀏覽器搜尋關鍵字:3d exploration就可以下載安裝了

然後打開來(TA DA~~)

➧找模板

到老師的網站可以找一些檔案大小比較小的模板使用:jsyeh.org/3dcg10
(下載紅色圈起來的)


➧建立新的.cpp檔

從範例中打開一個你喜歡的東西~~

然後另存成.cpp檔
注意這邊要存成Open GL APP,不然之後一樣會不出來
就可以在自己設定存的地方找到剛剛存的.cpp

➧開啟新專案

接下來,在codeblocks中開一個新的openGl專案(忘了話請往Week01找~)
把剛剛新的.cpp檔全部內容複製貼上丟到這個專案的main.cpp中


➧解決問題

把舊問題砍掉(直接執行之後找問題點在哪裡,把他註解掉)


➧成果

就完成拉!可以看到海豚繞圈圈~~~



➧如果使用display list存取

在程式當中會有displaylist之類的程式碼,它可以加速程式


老師回應上週關於要如何畫成線:


glBegin(GL_POLYGON); ///替換這行的紅色部分

GL_POINTS 是畫點
GL_LINES 是畫線
GL_LINE_STRIP 是畫成像彩帶一樣不間斷的線
GL_LINE_LOOP 是畫成頭尾相連的線
GL_TRIANGLES 是畫成三角形(用這個比較多邊形有效率,而且多邊形也只能畫凸多邊形)
GL_TRIANGLE_STRIP 用三角形連出來的彩帶 (慈母手中線...臨行密密縫,用來補洞)
GL_TRIANGLE_FAN 用三角形連成一個扇形



---------------------------------------------------------------------------------------------------------------------------------------------
其他:
*在記事本中用ctrl+g 可以得到總共幾行

今日小心得:
老師上課很有趣
老師講評很浮誇😆😆
老師身體要保重








沒有留言:

張貼留言