我一直在试图让我的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