Week 15 - 複習週
(1)從第一週至第十四週的連結如下:
Week01 ㄩㄐ的愉快日常
Week02 ㄩㄐ的失智日常
Week03 ㄩㄐ的疲憊日常
Week04 ㄩㄐ的流浪日常
Week05 ㄩㄐ的回歸日常
Week07 ㄩㄐ的壓線日常
Week08 ㄩㄐ的閃爍日常
Week10 ㄩㄐ的恍惚日常
Week11 ㄩㄐ的音效日常
Week12 ㄩㄐ的複習日常
Week13 ㄩㄐ的廃怯日常
Week14 ㄩㄐ的投射日常
※小葉老師:「絕對不可以偷我的圖ㄛ(́◉◞౪◟◉‵)」
(2)簡略地複習。
Week1 -
2018電腦圖學 Computer Graphics 授課教師: 葉正聖 銘傳大學資訊傳播工程系 每週主題: 程式環境、點線面顏色、移動/旋轉/縮放與矩陣(Matrix)、階層性關節轉動(T-R-T)、做出機器人、打光、貼圖、glu/glut函式、鍵盤、滑鼠、計時器(timer)、讀入3D模型、粒子系統、聲音、特效、投影矩陣、攝影機與運鏡、機器人2.0、期末作品
2018年6月4日 星期一
2018年5月28日 星期一
Week14 ㄩㄐ的投射日常
Week 14
本週進度:
Ⓐ 主題:攝影機、投影矩陣
Ⓑ 作業四 Q&A
Ⓒ 實作 ┳ gluLookAt()
Ⓒ 實作 ┗ glutReshapeFunc()
Ⓓ 期末作品
(1)使用 Projection 理解投射
① 照慣例去 Moodle 還有 這裡 把檔案載下來
① ➤ ┳ windows.zip
① ➤ ┣ source.zip
① ➤ ┣ data.zip
① ➤ ┗ glut32.dll
② 開啟 Projection 操作模型
① ➤ 理解各個角度和數值對應的視角
③ 理解視窗與畫面比例之調整關係
(2)理解 ┳ glOrtho(...)
(2)理解 ┣ gluPerspective(...)
(2)理解 ┗ glutReshapeFunc(resize)
① 上週消除了 glutReshapeFunc(resize)
① ➤ 但這個程式碼可以穩定放大縮小後的畫面比例
② 加一行程式碼
① ➤ 但還是會怪怪的
(3)做很多關節的茶壺
本週進度:
Ⓐ 主題:攝影機、投影矩陣
Ⓑ 作業四 Q&A
Ⓒ 實作 ┳ gluLookAt()
Ⓒ 實作 ┗ glutReshapeFunc()
Ⓓ 期末作品
(1)使用 Projection 理解投射
① 照慣例去 Moodle 還有 這裡 把檔案載下來
① ➤ ┳ windows.zip
① ➤ ┣ source.zip
① ➤ ┣ data.zip
① ➤ ┗ glut32.dll
② 開啟 Projection 操作模型
① ➤ 理解各個角度和數值對應的視角
③ 理解視窗與畫面比例之調整關係
(2)理解 ┳ glOrtho(...)
(2)理解 ┣ gluPerspective(...)
(2)理解 ┗ glutReshapeFunc(resize)
① 上週消除了 glutReshapeFunc(resize)
① ➤ 但這個程式碼可以穩定放大縮小後的畫面比例
↑ 隱藏 glutReshapeFunc(resize) 的樣子
② 加一行程式碼
① ➤ 但還是會怪怪的
透出來的部分
③ 更正前後位置(3)做很多關節的茶壺
2018年5月21日 星期一
Week13 ㄩㄐ的廃怯日常
Week 13
本週進度:
Ⓐ 寫檔、讀檔:利用大一學過的基本程式使用 → printf()、scanf()
Ⓑ 控制關節
Ⓒ 動作內插
(1)建立空白專案檔 _(´ཀ`」 ∠)_
File - New - Empty File (Ctrl + Shift + N)
建立後另存新檔,並命名為 file.cpp
(2)輸入程式碼
若在程式碼後方加入 scanf("") 讀入某值
屆時叫出的小黑會長得很奇怪,沒有 Process returned... 那行
而叫出的 output.txt 檔案大小為 0
是為了故意讓小黑卡住用的程式 ¯\_(ツ)_/¯
(3)加入旋轉關節
本週進度:
Ⓐ 寫檔、讀檔:利用大一學過的基本程式使用 → printf()、scanf()
Ⓑ 控制關節
Ⓒ 動作內插
(1)建立空白專案檔 _(´ཀ`」 ∠)_
File - New - Empty File (Ctrl + Shift + N)
建立後另存新檔,並命名為 file.cpp
(2)輸入程式碼

輸入後按下執行會跳出 output.txt 和 小黑
※故意的部分:若在程式碼後方加入 scanf("") 讀入某值
屆時叫出的小黑會長得很奇怪,沒有 Process returned... 那行
而叫出的 output.txt 檔案大小為 0
是為了故意讓小黑卡住用的程式 ¯\_(ツ)_/¯
(3)加入旋轉關節
加入旋轉關節的角度
(4)載入GLUT專案檔
一如往常把 libglut32.a 做出來(也不要忘記執行目錄在 freeglut/bin )
新增專案檔,接著:
Ⓐ 增加程式碼(老師的範例以 show 茶壺為例)
Ⓑ 將打光的程式碼留下,其餘刪除
※善加利用老師的程式碼
※檢查專案檔資料夾內 output.txt 是否有更新紀錄
Ⓒ 加入鍵盤偵聽事件
※記得是 fin = fopen("output.txt", "r");
(5)建立茶壺關節
2018年5月14日 星期一
Week12 ㄩㄐ的複習日常
Week 12
(1) File - New - Project (GLUT 專案)
記得到Moodle下載 freeglut 用的檔案(♡˙︶˙♡)
建立專案後,用 notepad++ 把建立的 cbp 檔位置改掉
把 freeglut 資料夾的 freeglut32.dll 放到專案檔的資料夾( •̀ω•́ )σ
(2)去 Moodle 下載 CMP3_MCI.h
↑ 下載後放在專案檔同一目錄內
CMP3_MCI.h 用 notepad++ 打開看一下(?)
之後到 CodeBlocks 約137行的位置進行編輯
(置入的音檔來源)
按下播放就可以聽了ヾ(●゜▽゜●)♡
(3)使用計時器 Timer
第 134 行告訴系統「等待兩秒」
兩秒後到第 135 行執行播放 " Wave.wav " 檔
進入 main 主程式後
第 161 行告訴系統播放 7 秒 (๑•̀ㅂ•́)و✧
(4)內插法應用
小葉老師畫的內插法
※利用 Excel 複習內插法
老師的圖
※06/04更新:怕老師森77(還有為了我的分數著想),已將Excel圖刪除。
2018年5月7日 星期一
Week11 ㄩㄐ的音效日常
Week11
教學內容
(1)到 Moodle 下載 freeglut 用的檔案
下載後
① 解壓縮
② 進入freeglut 資料夾
③ 找到 lib 資料夾
④ 複製一個 libfreeglut.a 檔案 ➤ libglut32.a
(2)開啟新的 GLUT 專案
記得要打它(๑ơ ₃ ơ)♥
#include <mmsystem.h> ➤ 多媒體系統(Mulitiple Media System)
它是多媒體系統的外掛,不可以不加
如果和我一樣出現問題,記得要這樣做↓
※ 小葉有教如何用 CodeBlocks 專案置入鋼琴,可以看上課用影片
※ 音色可能還需要調整(笑)
(1)到 Moodle 下載 freeglut 用的檔案
下載後
① 解壓縮
② 進入freeglut 資料夾
③ 找到 lib 資料夾
④ 複製一個 libfreeglut.a 檔案 ➤ libglut32.a
(2)開啟新的 GLUT 專案
記得要打它(๑ơ ₃ ơ)♥
#include <mmsystem.h> ➤ 多媒體系統(Mulitiple Media System)

像這樣 ↑
不然就會跟小葉老師一樣犯下同樣的錯誤 ↓
(3)置入音效檔
把下載到的 wav 檔放到 freeglut 資料夾
此時執行程式碼應該會有聲音
↑ 照理來說有聲音的話系統喇叭會有反應
(4)建立新專案-Console Project
輸入以下程式碼
如果和我一樣出現問題,記得要這樣做↓
(5)鍵盤鋼琴
※ 音色可能還需要調整(笑)
① GLUT 專案設成 Active
② 在 static void key(unsigned char key, int x, int y) 打可愛的程式碼
③ 老師提供的播放檔要放在 freeglut 資料夾裡
④ 測試設定鍵
↑ 按下設定的鍵喇叭會有反應
(6)射擊遊戲
2018年5月5日 星期六
Week10_ㄩㄐ來不及交出去的作業3
建議搭配小葉老師的直播影片
(1)建立CodeBlocks GLUT專案
(2)專案建立後逐一修改範例給予的程式碼
以及註記部分程式碼(EX:打光的函式)
② 修改完後按下Build and Run
除了小黑之外,還會有被打光的可愛茶壺(?)
③ 調整光源
更改完再執行一次會得到光源在前方的茶壺
(3)從source內匯入三個檔案
① glm.h
② glm.c ➤ 改glm.cpp
③ transformation.c
(4)將 transformation.c用可編譯程式開啟
利用搜尋找到 pmodel =
glmReadOBJ("data/porsche.obj");
從這裡開始把 if(!pmodel)… ~~ glDraw… 複製起來到 CodeBlocks 裡
※更改執行目錄
利用 Notepad++ 開啟程式的cbp檔,編輯執行目錄
記得把freeglut.dll塞到專案檔的資料夾內,這個時候執行程式會出現小黑
此時,我們的檔案就可以開始匯入了!
匯入之前要先把自己在 MAYA 建好的模型轉成 obj 檔
(忘記主任怎麼教的可以看這裡)
轉完以後把檔案塞到程式碼的資料夾內
接著看影片跟著老師把程式碼補齊!
(5)更改程式碼
也要記得在主程式加入 motion 滑鼠事件(轉動模型用)
➤ glutMotionFunc(motion); /*讓滑鼠事件有效果*/
跟著老師把應該加的程式碼輸入完畢、自己的模型也讀入以後
根據作業內容轉動它會長這樣
利用錄影做成的 GIF 在這裡 ↓
檔案連結在此
訂閱:
文章 (Atom)























































