gluLookAt

簡介編輯

視點轉換
函數原型
void gluLookAt(GLdouble eyex,GLdouble eyey,GLdouble eyez,GLdouble centerx,GLdouble centery,GLdouble centerz,GLdouble upx,GLdouble upy,GLdouble upz);
函數定義一個視圖矩陣,並與當前矩陣相乘。
第一組eyex, eyey,eyez 相機在世界座標的位置
第二組centerx,centery,centerz 相機鏡頭對準的物體在世界座標的位置
第三組upx,upy,upz 相機向上的方向在世界座標中的方向
你把相機想象成爲你自己的腦袋:
第一組數據就是腦袋的位置
第二組數據就是眼睛看的物體的位置
第三組就是頭頂朝向的方向(因爲你可以歪着頭看同一個物體)

2參數編輯

gluLookAt()共有九個參數,分別是眼睛的位置,眼睛朝向的位置,以及相機朝向的方向。
函數定義了視點矩陣,並用該矩陣乘以當前矩陣。eyex、eyey、eyez定義了視點的位置;centerx、centery和centerz變量指定了參考點的位置,該點通常爲相機所瞄準的場景中心軸線上的點;upx、upy、upz變量指定了向上向量的方向。(注意,這是一個向量,不是一個座標)

3說明編輯

通常,視點轉換操作在模型轉換操作之後發出,以便模型轉換先對物體發生作用。場景中物體的頂點經過模型轉換之後移動到所希望的位置,然後再對場景進行視點定位等操作。模型轉換和視點轉換共同構成模型視景矩陣
gluLookAt可以在投影變換之後或模型變換後調用。因爲投影變換是設置視景體的大小和形狀,gluLookAt即設置視景體在世界座標的位置和方向來觀察物體,所以只要gluLookAt在視景體設置完成後調用即可,與變換模式無關。
gluPerspective函數是對投影矩陣進行變換(GL_PROJECTION),這一點一定要搞清楚。在實際應用時,可以用gluPerspective函數設置近平面、遠平面。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章