2022年6月7日 星期二

ʕ •ᴥ•ʔ week16

 


week16 20220607
小葉老師上課要點:
1. 主題: 內插、動作內插
2. 主題: 攝影機、運鏡 
3. 實作: gluLookAt()





主題: alpha內插公式 : alpha: 0.0~1.0


*能夠讓動畫進行得更流暢的關鍵

angle = alpha * 新 + ( 1 - alpha ) * 舊

e.g. 
alpha: 0      - 舊 

alpha: 0.5   - 半新半舊 

alpha:  1     - 新的 

> 可以使用 Excel or Google Spreadsheet 練習

主題: 用程式試看看 alpha內插公式,讓動畫運行變的流暢


1. 開啟 codeblocks 建新的 GLUT 專案 : week16_interpolation
    從上週程式: week15_angles_TRT_angle 做修改

2. 複製程式後,執行

3. 上週程式碼執行結果: 按 r 會讀到動作,但是不連續 ( 動作1馬上跳動作2 )

4. 目標: 讓動畫運行變的流暢,而不是類似很卡的逐格效果 ( 動作1是逐漸自然得變成動作2 )

*發明 myInterpolate() 做新舊值的內插函式
(37行程式碼)每讀到新的值
(23行)原本新的值就會變舊的值
(23-24行)然後進行新舊交換

*為什麼 26行 alpha 不需要 [ ] : 因為他不是陣列,是介於0~1之間的值

5. 要讓 p 還要自己一直按著太遜了,我們要讓他自動播放
    * 使用 timer 

6. 在 keyboard 函式內加入按下 ' p ' 就會呼叫內插函式 myInterpolate() 然後重畫畫面 

*按一次 r ,按一次 p 之後,他就會自己開始做動畫


7. 但是還要先按 r 在按著 p 太麻煩,要讓 p 自動化
   
     *使用 timer 函式


主題: 攝影機、運鏡 


1. 進入小葉老師的網址 https://jsyeh.org/3dcg10
    下載 windows.zip 解壓縮> \windows\Projection.exe
    下載 data.zip  解壓縮 > \windows\data\一堆模型們


2. eye : 我(攝影機)看目標 -可以從左邊或是右邊或是任何角度看目標
    
    center : 我(攝影機)看目標的中心點 -看目標的鈕扣或是換看目標的鼻孔

    up : 我(攝影機)的方向 -通常(0,1,0)向上拍照,但也可以旋轉角度看、倒過來看


主題: 實作: gluLookAt()


1. 開啟 codeblocks 建新的 GLUT 專案 : week16_camera_projection_gluLookAt

2. 備份範例程式第117行程式碼(透視投影法)來做改造

3. aspect ration 長寬比 e.g 1920x1080, 1280x720, 640z480, 16:9, 4:3
    執行視窗怎麼執行都不會變形

   *使用 reshape() 讓視窗大小任意拉內容也不會變形

   *一顆視窗怎麼拉縮都不會變形的茶壺


4.加入 motion 函式,使可以用滑鼠拖曳移動看茶壺角度



沒有留言:

張貼留言

VERY BEAUTIFUL, VERY POWERFUL

一.     一樣先安裝且設定好freeglut,OpecCV, 開啟CodeBlocks建立新專案 week11_gundam,                 把 MyGundam.zip下載解壓縮後的data資料夾放到freeglut/bin裡面 把week09_openc...