2023年5月24日 星期三

達yo - 攝影機、運鏡 - week15

 今天教的是攝影機、運鏡

前往 https://jsyeh.org/3dcg10/ 下載win32和data


把win32解壓縮並將data複製過來


執行Projection.exe


攝影機的設定

一開始先了解gluLookAt的三個參數"eye、center、up",才知道要讓攝影機怎麼拍

eye是你從哪邊去看這個物體(物體本身沒有動)

center是你從物體的某部分為中心去看他(ex: 有一個人在你前面,你看他的肚子)

up就像我們拿手機以某種角度去拍物體(ex:拿傾斜、拿上下顛倒)


再來了解 gluPerspective的fovy、aspect、zNear、zFar

fovy:Field of view(y方向),相機的視野

*預設為60


aspect:aspect ratio畫面的長寬比


zNear、zFar

投射畫面的範圍,如果沒有在範圍裡,就不會出現或是破圖


開啟GLUT專案

要來寫gluPerspective(透視投影)的程式

*來看這三個的長寬比區別*

*透視投影 與 垂直投影 的區別*


在程式碼第35行後增加新的程式碼

glOrtho(-ar*3, ar*3, -1*3, 1*3, -100, +100)

先把frustum這行註解,去執行(換成glOrtho)


可以發現視角比較正


再來換成glOrtho註解

變成glfrustum

再執行一次

視角變得比較斜

另外會發現無論視窗怎麼縮放,都是以y軸為主,x軸為輔


再加這行程式碼gluPerspective(60,ar,0.01,1000);///角度,比例,近的,遠的

執行畫面


操作gluLookAt(運鏡)
開啟新專案

把原先的程式碼刪掉,去寫新的程式碼(gluLookAt)
寫reshape函式 讓它可調整視窗的長寬

還沒加上gluLookAt這行,執行畫面會呈現全白,因為我們在茶壺裡頭
因此需要model view


加上以後
執行畫面就會跑出完整的茶壺(感覺變立體了一點)


增加motion函式
做運鏡


利用滑鼠右鍵操作

執行畫面


期末作業

將Final_Project打開來

修改程式碼

執行碼





沒有留言:

張貼留言