我一直在試圖讓我的opengl引擎使用z軸作爲上軸,但無論我做什麼都不顯示。餘計算視圖矩陣是這樣的:OpenGL Z軸向上
float width = xymax - xmin;
float height = xymax - ymin;
float depth = zfar - znear;
float q = -(zfar + znear)/depth;
float qn = -2 * (zfar * znear)/depth;
float w = 2 * znear/width;
w = w/aspect;
float h = 2 * znear/height;
m[0] = w;
m[1] = 0;
m[2] = 0;
m[3] = 0;
m[4] = 0;
m[5] = 0;
m[6] = h;
m[7] = qn;
m[8] = 0;
m[9] = q;
m[10] = 0;
m[11] = 0;
m[12] = 0;
m[13] = 0;
m[14] = -1;
m[15] = 0;
之前,當我有Y軸爲向上(其工作得很好),碼是這樣的:
m[0] = w;
m[4] = 0;
m[8] = 0;
m[12] = 0;
m[1] = 0;
m[5] = h;
m[9] = 0;
m[13] = 0;
m[2] = 0;
m[6] = 0;
m[10] = q;
m[14] = -1;
m[3] = 0;
m[7] = 0;
m[11] = qn;
m[15] = 0;
每個對象/頂點是第一乘以一個簡單的翻譯矩陣:
1 0 0 xposition
0 1 0 yposition
0 0 1 zposition
0 0 0 1
,然後通過上面 產生的投影矩陣,我只是得到一個黑色的屏幕。有什麼我需要改變這個工作?
我不知道你在做什麼來獲得第三個矩陣,沒有列似乎交換,一切都只是重新排序。另外,什麼是r-乘法?我更新了關於渲染的更多信息 – zacaj 2011-05-15 16:02:22