【发布时间】:2011-05-15 00:55:39
【问题描述】:
我一直试图让我的 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
然后由上面生成的投影矩阵 我只是得到一个黑屏。我还需要更改其他内容才能使其正常工作吗?
【问题讨论】:
标签: opengl