2023電腦圖學 Computer Graphics 授課教師: 葉正聖 銘傳大學資訊傳播工程系 每週主題: 程式環境、點線面顏色、移動/旋轉/縮放與矩陣(Matrix)、階層性關節轉動(T-R-T)、做出機器人、打光、貼圖、glu/glut函式、鍵盤、滑鼠、計時器(timer)、讀入3D模型、粒子系統、聲音、特效、投影矩陣、攝影機與運鏡、機器人2.0、期末作品
2023年5月25日 星期四
2023年5月4日 星期四
2023年4月20日 星期四
2023年4月6日 星期四
Week08 讀入3D模型
第一個目標:搞清楚3D模型
- 點擊Transformation.exe,如果成功開啟就是成功了!會閃退就請你重新嘗試看看!
- 我們要來了解,3D模型是如何產生的,我們拿Porsche模型開刀
- 打開data資料夾,找到porsche.mtl&&porsche.obj檔案
- 利用Notepad++或者文字文件開啟這兩個檔案
- 要來看看其中寫了什麼!
- v 對應 vertex (頂點)
- vt 對應 glTexCoord2f(tx,ty) (貼圖座標)
- vn 對應 vertex normal (法向量)
2023年3月23日 星期四
Week06 階層轉動
第一個程式:GLUT實作TRT robot2
- 學校教室的2022葉正聖老師上課軟體內有內建freeglut-MinGW-3.0.0-1.mp.zip,如果用自己的電腦或者沒有,下載網站在下面~~(按一下圖片紅色文字那邊就會自動下載)
- https://www.transmissionzero.co.uk/software/freeglut-devel/
- 把freeglut-MinGW-3.0.0-1.mp.zip檔案解壓縮後,點選freeglut-MinGW-3.0.0-1.mp檔案夾,在選擇freeglut檔案夾,最後打開lib檔案夾會看到以下畫面
- 接著把"libfreeglut.a"複製一遍貼上得到"libfreeglut - 複製.a"
- 把"libfreeglut - 複製.a"重新命名為"libglut32.a",副檔名不用動,完成初始設定了,接下來就可以開啟CodeBlocks
- 老樣子開啟CodeBlocks(17.12版本最佳)
- 點選左上角"File",接著拖移屬標到"New",但是不要按下去!右邊浮現選項後,選擇"Project"
- 進入Project後,不用滑至最下方,選擇"GLUT Project"開源軟件,然後按下視窗右上角的"Go"
- 進入第一個畫面直接按下"Next",下一頁設定名稱(Project title)為"Week06-1_GLUT_TRT_robot2",(檔案位置推薦設定在桌面)即可按下"Next"
- 第三頁不能急著按"Finish",點選那神奇的三個點"..."
2023年3月9日 星期四
2023年3月2日 星期四
銘傳夜間部教你寫程式 Week03 移動Translate
第一個課堂作業:下載範例包並嘗試操作
- 下載好之後,全部解壓縮,然後把data資料夾拉進去Windows資料夾內
- 點擊Transformation.exe,如果成功開啟就是成功了!會閃退就請你重新嘗試看看!
- 這個課堂作業要你用滑鼠往上往下滾動試看看操控數值
第一個程式:GLUT實作Translate
- 把"libfreeglut - 複製.a"重新命名為"libglut32.a",副檔名不用動,完成初始設定了,接下來就可以開啟CodeBlocks
- 老樣子開啟CodeBlocks(17.12版本最佳)
- 點選左上角"File",接著拖移屬標到"New",但是不要按下去!右邊浮現選項後,選擇"Project"
- 進入Project後,不用滑至最下方,選擇"GLUT Project"開源軟件,然後按下視窗右上角的"Go"
- 進入第一個畫面直接按下"Next",下一頁設定名稱(Project title)為"Week03-1_GLUT_Translate",(檔案位置推薦設定在桌面)即可按下"Next"
- 第三頁不能急著按"Finish",點選那神奇的三個點"..."
- 然後就會出現一個視窗
- 什麼都不要做,沒錯就是這樣,然後按下"X"即可
- 接下來會直接跳出選擇資料夾頁面,Just like this,選擇一整個"freeglut-MinGW-3.0.0-1.mp"裡的"freeglut"資料夾(不需對檔案點兩下,按一下選取後,直接按確定即可)
- 恭喜你成功完成了前置作業,畫面是灰色空白的,到目前為止跟上禮拜一樣,程式碼還是GLUT的範例,請去左方"Projects",展開你的檔案名稱,展開"Sources",找到主程式"main.cpp"點擊兩下
- 接著畫面會顯示範例程式碼,就是原本會跑出紅色球,紅色三角錐,跟紅色甜甜圈的那個
- 不要懷疑!全部刪除!寫上屬於自己的程式碼~~
- 首先寫上程式碼架構
///#include <bits/stdc++.h>函式庫是一個包含近乎90%函式的一個函示庫(剛好這就是其中10%)母湯用
#include <GL/glut.h> ///(For Windows)
///#include <GLUT/glut.h>(For Mac OS)
void display()
{
glutSolidTeapot( 0.3 ); ///畫出實心的茶壺
glutSwapBuffers(); ///交換顯示出來
}
int main(int argc,char *argv[]) ///這個main()括號裡的程式碼可以程式讀取小黑內容
{
glutInit(&argc, argv); ///啟用GLUT功能
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); ///GLUT顯示模式
glutCreateWindow("Week03-1_GLUT_Translate"); ///要建立一個視窗,這是他的名稱
glutDisplayFunc(display); ///要顯示的函示 display()
glutMainLoop(); ///主迴圈卡在後面
}
- 這個程式碼只會出現一個很蠢的茶壺
- 補上三行程式碼(已標註紅色),讓茶壺變成有位移的
AD茶壺 - 以下為Week03-1_GLUT_Translate範例:
第二個程式:GLUT實作使用滑鼠滾動Translate
- 仿造以上開啟檔案方法開啟一個新的檔案,以下這一頁不須再點"..."來找尋"freeglut"資料夾,因為你剛剛找過電腦自動存檔了,除非重啟或者換一台電腦才需重新抓位置
- 程式碼還是GLUT的範例,請去左方"Projects",展開你的檔案名稱,展開"Sources",找到主程式"main.cpp"點擊兩下
- 全部刪除!寫上屬於自己的程式碼~~
- 有了位移還不夠,還要能用滑鼠控制,我們要來寫讓他可以用滑鼠按左鍵移動的程式碼
- 補上的程式碼會標註紅色
- 以下為Week03-2_GLUT_使用滑鼠滾動Translate範例:
訂閱:
文章 (Atom)