顯示具有 05160682_郁晶 標籤的文章。 顯示所有文章
顯示具有 05160682_郁晶 標籤的文章。 顯示所有文章

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)
① ➤ 但這個程式碼可以穩定放大縮小後的畫面比例
↑ 隱藏 glutReshapeFunc(resize) 的樣子

② 加一行程式碼
① ➤ 但還是會怪怪的
透出來的部分
③ 更正前後位置


(3)做很多關節的茶壺

2018年5月21日 星期一

Week13 ㄩㄐ的廃怯日常

Week 13

本週進度:

Ⓐ 寫檔、讀檔:利用大一學過的基本程式使用 → printf()、scanf()
Ⓑ 控制關節
Ⓒ 動作內插

(1)建立空白專案檔 _(´ཀ`」 ∠)_ 
File - New - Empty File (Ctrl + Shift + N)
建立後另存新檔,並命名為 file.cpp 

(2)輸入程式碼

輸入後按下執行會跳出 output.txt小黑
※故意的部分:
若在程式碼後方加入 scanf("") 讀入某值
屆時叫出的小黑會長得很奇怪,沒有 Process returned... 那行
而叫出的 output.txt 檔案大小為 0
是為了故意讓小黑卡住用的程式 ¯\_(ツ)_/¯
可以看見 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)

它是多媒體系統的外掛,不可以不加

像這樣 ↑

不然就會跟小葉老師一樣犯下同樣的錯誤 ↓

(3)置入音效檔

把下載到的 wav 檔放到 freeglut 資料夾
此時執行程式碼應該會有聲音
↑ 照理來說有聲音的話系統喇叭會有反應


(4)建立新專案-Console Project

輸入以下程式碼

如果和我一樣出現問題,記得要這樣做↓

照理來說應該會出現相應的小黑


(5)鍵盤鋼琴

※ 小葉有教如何用 CodeBlocks 專案置入鋼琴,可以看上課用影片
※ 音色可能還需要調整(笑)

① GLUT 專案設成 Active
② 在 static void key(unsigned char key, int x, int y打可愛的程式碼

③ 老師提供的播放檔要放在 freeglut 資料夾裡
④ 測試設定鍵
↑ 按下設定的鍵喇叭會有反應

(6)射擊遊戲

2018年5月5日 星期六

Week10_ㄩㄐ來不及交出去的作業3

HW3 – Note



建議搭配小葉老師的直播影片

(1)建立CodeBlocks GLUT專案

(2)專案建立後逐一修改範例給予的程式碼

① 移除不需要的程式碼片段


以及註記部分程式碼EX:打光的函式)


② 修改完後按下Build and Run

除了小黑之外,還會有被打光的可愛茶壺(?)



③ 調整光源

影片約07:15有提到調整打光的位置

更改完再執行一次會得到光源在前方的茶壺

(3)source內匯入三個檔案


 glm.h
② glm.c  ➤ glm.cpp
③ transformation.c


(4)將 transformation.c用可編譯程式開啟

利用搜尋找到 pmodel = glmReadOBJ("data/porsche.obj");

從這裡開始把 if(!pmodel)… ~~ glDraw… 複製起來到 CodeBlocks 

複製後先 Build 檢查有沒有錯誤,若無誤則會出現保時捷

※更改執行目錄


利用 Notepad++ 開啟程式的cbp檔,編輯執行目錄
把檔案預設的 bin 的位置改成 ” . ”

記得把freeglut.dll塞到專案檔的資料夾內,這個時候執行程式會出現小黑

小黑找不到保時捷的obj


此時,我們的檔案就可以開始匯入了!
匯入之前要先把自己在 MAYA 建好的模型轉成 obj 檔
(忘記主任怎麼教的可以看這裡

轉完以後把檔案塞到程式碼的資料夾內

接著看影片跟著老師把程式碼補齊!

(5)更改程式碼


比較重要的是中間這兩塊
也要記得在主程式加入 motion 滑鼠事件(轉動模型用)
 ➤ glutMotionFunc(motion); /*讓滑鼠事件有效果*/

跟著老師把應該加的程式碼輸入完畢、自己的模型也讀入以後
照理來說應該會長這個樣子(?)

根據作業內容轉動它會長這樣

利用錄影做成的 GIF 在這裡 ↓ 

檔案連結在此