今天教的是攝影機、運鏡
前往 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);///角度,比例,近的,遠的
執行畫面
沒有留言:
張貼留言