{\__/}
( • - •)
/ > ❤️
------------------------------------------------------------------------------------------------------------
今天課題!
「攝影機與運鏡」
「投影矩陣」
--------------------------------------------------------------------------------------------------------------------------
➤先準備好模擬器~
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 專案
→打開 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比例沒調好,模型會變形
沒有留言:
張貼留言