2023年3月29日 星期三

達yo - week07 - 電腦圖學_Texture

 今天要教的是Texture貼圖

一開始先前往https://jsyeh.org/3dcg10/並下載檔案

下載完成後,把它們解壓縮並把data資料夾拉進windows資料夾裡

點開Texture.exe
執行畫面
橘色框框框起來的地方可以改變圖片顏色

改變黃色框起來的數值會讓圖片的頂點位置變動,而紅色框起來則會讓圖片顯示的範圍改變(如果超過範圍,會repeat圖片)

紅色框框:貼圖座標
紅色那條線是隱形的線,更動glTextCoord2f任一個數值,圖片會以那條作為分界
也可發現圖學會把四邊形拆解成三角形,它的優點是又快又好,也是用三角形的有
Unity、OpenGL...而使用四邊形的是Maya,好處是人類好理解

矩陣的變動

Step2-1
開始來做貼圖

1.安裝OpenCV(不要安裝最新版本)
2.重開CodeBlocks
3.開始寫OpenCV
在安裝的第二步,要停一下把選項選到第2個或第3個(絕對不能選第一個,因為程式會跑不出來)
.
4.打開CodeBlocks,點選Settings的Compiler
5.跳出視窗後,開始做設定

*Search directory搜尋的目錄(Compiler include , linker lib),以及Linker setting 
cv210、cxcore210、highgui210

1.Compiler:C:\OpenCV2.1\include

2.Linker:C:\OpenCV2.1\lib

3.在Linker setting,分別加入"cv210" "cxcore210" "highgui210"(小心不要打錯)



秀出圖片程式
程式碼


貼圖

開啟GLUT project
前往https://gist.github.com/jsyeh,複製老師寫的mytexture_sample.cpp的程式碼並貼上

在執行之前,先去網路上下載earth的圖片,並存到freeglut資料夾裡的bin資料夾

執行畫面

接下來把茶壺圖案換掉,變成四邊形

程式碼是
 glBegin(GL_POLYGON);
        glTexCoord2f(0,0); glVertex2f(-1,+1);
        glTexCoord2f(1,0); glVertex2f(+1,+1);
        glTexCoord2f(1,1); glVertex2f(+1,-1);
        glTexCoord2f(0,1); glVertex2f(-1,-1);
glEnd();

執行畫面

做出會轉動的地球

一樣去複製老師寫的 myEarth.cpp的程式碼並貼上
*如果圖片名稱跟原來的程式碼的圖片名稱不一樣,要去改程式碼圖片的檔名*

程式碼

沒有留言:

張貼留言