2019年6月8日 星期六

神のノト - Week15

{\__/}
( • - •)
/ > ❤️
------------------------------------------------------------------------------------------------------------

今天課題! 

「攝影機與運鏡」


「投影矩陣」


--------------------------------------------------------------------------------------------------------------------------


➤先準備好模擬器~


2.  data.zip / windows.zip / glut32.dll download


3. windows / data   |   windows / glut32.dll
--------------------------------------------------------------------------------------------------------------------------

➤今天上課主軸 "Projection" (投影) 


➣有分三種投影方式  1. Ortho 正交投影
                                      2. Frustum 四角椎投影 (是圖學的函式) (效果類似透視投影)
                                      3. Perspective 透視投影


➣運鏡用到的函式 gluLookAt( x1,y1,z1(eye) , x2,y2,z2(center) , x3,y3,z3(up) ) ;

解釋參數:
eye→ ( x , y , z )  → 攝影機的座標
center → ( x , y , z ) → 聚焦的點
up → ( x , y , z ) → 指定攝影機 y 軸(上方) 的向量

--------------------------------------------------------------------------------------------------------------------------

➤試著打出Projection效果的程式

➣ 前置作業:
→ 下載 source.zip

需要source檔案裡面的 "glm.c"、"glm.h"、"projection.c"  



➣ 測試projection的程式碼
→打開 glut 專案
→將專案資料夾中,放入source內的 "glm.c"、"glm.h"、"projection.c


→將 glm.c 檔名改為 glm.cpp
 


→新增檔案進專案內


→將projection.c 的程式碼,開始notepad++複製程式碼
→將程式碼取代原專案內 main.cpp 的程式碼



→發現錯誤,freeglut\bin內,沒有找到data資料夾中的al.obj檔案


→將data資料夾 (模型的obj檔案) 丟入freeglut\bin中即可!

--------------------------------------------------------------------------------------------------------------------------

➤做出自己想要的運鏡,配合projection內的程式碼

1. 先讀入模型


2. 打光,讓模型變成立體 (開啟打光Enable,設定好光線的向量(位置) Position)


3.加入timer,讓模型轉起來,和LookAt函式,調整好eye和center來聚焦在頭部


4.搭配投影方式,正確投影出模型旋轉的樣子 (正交投影)

Q.   破圖原因?
A.   glOrtho( left , right ,bottom, top , near , far ) 指定正交投影的投影範圍
       如果不再投影範圍內,會破圖

5.測試不同投影 (透視投影)
gluPerspective ( fovy視野 , aspect長寬比例 , zNear , zFar )
→fovy 調視野能見角度
→ aspect 調視窗的長:寬比例
→ 如果視窗拉大拉小,aspect比例沒調好,模型會變形


Class Computer Graphics 

The End .. Q^Q


Final Project -------> Coming Soon ..



沒有留言:

張貼留言