OpenGL實現立體顯示

立體顯示原理:設沒有立體顯示的模型視圖矩陣ModelView爲Mv,投影矩陣爲Mp,則、物體空間的任何一點爲P,則變換到屏幕座標P*=Mp×Mv×P;注意前面已經說過opengl裏面座標列優先,所以矩陣都是右乘。

左眼和右眼的變換都是由中間的變換矩陣變換而來,則立體顯示中左眼的變換矩陣公式爲:

P(L)*=Ms(L) × Mp(L) × Mt(L) × Mv(L) × P;

右眼的矩陣變換公式爲:

P(R)*=Ms(R) × Mp(R) × Mt(R) × Mv(R) × P;

其中Ms,Mt是立體顯示需要而增加的變換。

程序裏面有幾個參數,現實世界眼睛到屏幕的距離Fd,兩眼之間的距離Sd,比例尺R,如圖:

如上圖:沒有立體顯示,視點位於就是中間的藍色位置,立體顯示就是將左眼(紅色),右眼(綠色)的視圖分開繪製。

程序中左眼用紅色去畫,右眼同時用綠色和藍色繪製。

 

代碼:

相關立體顯示鏈接:http://local.wasp.uwa.edu.au/~pbourke/projection/stereorender/

發佈了218 篇原創文章 · 獲贊 94 · 訪問量 95萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章