OpenGL 三維場景漫遊的實現

2021-10-06 01:59:47 字數 604 閱讀 1182

1、開始想直接利用opengl的glulookat函式,但發現並不好用

2、之後參考他人資料尋思構造乙個攝像機類,通過攝像機類達到控制視點,這部分通過參考learnopengl上的攝像機類進行實現

一般glulookat()用於從世界座標系到眼座標系的轉換,但是由於opengl裡面模型檢視矩陣直接將本地座標系轉換為眼座標系,所以glulookat()應該被用來設定模型檢視矩陣,但是有一點得注意了:

glulookat()的呼叫應該在場景繪製初glloadidentity()函式呼叫之後,在所有的gltranslate*()、glrotate*()、glscale*()函式呼叫之前呼叫,且只呼叫一次

參考自以下資料

首先是是場景漫遊:實現場景漫遊有兩種方式,一種是固定照相機的位置,對整個場景進行變換,例如當人物前進時,其實是通過將整個場景向後平移實現的,轉向時,是通過反向旋轉整個場景實現的;另一種方式是使照相機在場景中移動,通過glulookat()函式設定照相機的位置,可以任意指定照相機的位置和朝向。

opengl三維程式設計

void gluperspective gldouble fovy,gldouble aspect,gldouble znear,gldouble zfar 引數fovy定義視野在x z平面的角度取值是 0.0,180.0 引數aspect是投影平面寬度與高度的比率 引數znear和zfar分別是近...

opengl三維觀察

1.相機 產生目標場景檢視的變換過程類似於用照相機進行拍照。用照相機進行拍照的步驟大致如下 把照相機固定在三腳架上,並讓它對準場景 檢視變換 對場景進行安排,使各個物體在 中的位置是我們所希望的 模型變換 選擇照相機鏡頭,並調整放大倍數 投影變換 確定最終 的大小 視口變換 完成這些步驟之後,就可以...

OpenGL實現三維迷宮遊戲(一)

計算機圖形學 這門課的第二個實驗,覺得還挺有意思的 實驗要求 設計乙個opengl程式,建立乙個三維迷宮,支援替身通過一定互動手段在迷宮中漫遊,基本功能包括 迷宮應當至少包含10 10 個cell,不能過於簡單,下圖給出一種示例。讀取給定的替身模型,載入到場景中。鍵盤方向鍵控制替身轉向與漫遊。有碰撞...