设为首页 加入收藏

TOP

OpenGL的矩阵
2014-11-23 22:08:31 来源: 作者: 【 】 浏览:1
Tags:OpenGL 矩阵

1.
OpenGL中的矩阵
m[0] m[4] m[8] m[12]
m[1] m[5] m[9] m[13]
m[2] m[6] m[10] m[14]
m[3] m[7] m[11] m[15]

对它定义的新坐标系,OpenGL是这么说的:
x轴向量(m[0], m[1], m[2]);
y轴向量(m[4], m[5], m[6]);
z轴向量(m[8], m9], m[10]);
原点(m[12], m[13], m[14]);

2.
回过头,矩阵只不过是方程组的一种表达形式,这个矩阵对应的方程组应为:
x = m[0]x + m[1]y +m[2]z + m[3]w;
y = m[4]x + m[5]y +m[6]z + m[7]w;
z = m[8]x + m[9]y +m[10]z + m[11]w;
w = m[12]x + m[13]y +m[14]z + m[15]w;

3.
因为w和w’都是1,由这个方程组我唯一能看出来的是m[3],m[7],m[11]跟平移量有关系,它们和原点(Ox,Oy,Oz)有如下关系:
m[3] = - (m[0]*Ox + m[1]*Oy +m[2]*Oz)
m[7] = - (m[4]*Ox + m[5]*Oy +m[6]*Oz)
m[11] = - (m[8]*Ox + m[9]*Oy +m[10]*Oz)

疑问:
??这跟OpenGL所说的貌似矛盾了。

一种说法
有筒子提出,我在2. 还原的方程组不正确,正确的方程组是
x = m[0]x + m[4]y +m[8]z + m[12]w;
y = m[1]x + m[5]y +m[9]z + m[13]w;
z = m[2]x + m[6]y +m[10]z + m[14]w;
w = m[3]x + m[7]y +m[11]z + m[15]w;

我个人并不同意这种说法。
即便如此,原点坐标也并不是OpenGL所说的12-14,更何况,这个方程组决定的坐标系的x轴方向已经变成了(m[0],m[4],m[8])。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C语言将数组逆序输出 下一篇VRML文件操作

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: