立體顯示原理:設沒有立體顯示的模型視圖矩陣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/