2016-06-11 27 views
1

我确定我的浏览器没有损坏,但OpenGL的参考文档使用非常奇怪和未记录的矩阵表示,我无法理解。如何理解OpenGL文档的矩阵?

例如,这样的:https://www.opengl.org/sdk/docs/man2/xhtml/glFrustum.xml

说明

glFrustum描述了产生的透视投影的立体矩阵。当前矩阵(见glMatrixMode)是由这个矩阵相乘,结果替换当前矩阵,仿佛glMultMatrix用以下矩阵作为参数调用:

2 ⁢ nearVal right - left 0 A 0 0 2 ⁢ nearVal top - bottom B 0 0 0 C D 0 0 -1 0 

A = right + left right - left 

B = top + bottom top - bottom 

C = - farVal + nearVal farVal - nearVal 

D = - 2 ⁢ farVal ⁢ nearVal farVal - nearVal 

所以我不能让“下面的矩阵感“ 他们说。它甚至没有16个值,如果我不得不把它看作线性数组。

这是更难:https://www.opengl.org/sdk/docs/man2/xhtml/glMultMatrix.xml

实例

如果当前矩阵是C和坐标被变换为V = V⁡0伏⁡1体积⁡2 v⁡3,则当前转换为C×v,或者

c ⁡ 0 c ⁡ 4 c ⁡ 8 c ⁡ 12 c ⁡ 1 c ⁡ 5 c ⁡ 9 c ⁡ 13 c ⁡ 2 c ⁡ 6 c ⁡ 10 c ⁡ 14 c ⁡ 3 c ⁡ 7 c ⁡ 11 c ⁡ 15 × v ⁡ 0 v ⁡ 1 v ⁡ 2 v ⁡ 3 
Calling glMultMatrix with an argument of m = m ⁡ 0 m ⁡ 1 ... m ⁡ 15 replaces the current transformation with C × M × v , or 

c ⁡ 0 c ⁡ 4 c ⁡ 8 c ⁡ 12 c ⁡ 1 c ⁡ 5 c ⁡ 9 c ⁡ 13 c ⁡ 2 c ⁡ 6 c ⁡ 10 c ⁡ 14 c ⁡ 3 c ⁡ 7 c ⁡ 11 c ⁡ 15 × 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 × v ⁡ 0 v ⁡ 1 v ⁡ 2 v ⁡ 3 
Where v is represented as a 4 × 1 matrix. 

回答

3

您的浏览器是否支持MathML?因为没有它会显示这个无格式的混乱。这是它的外观在浏览器中支持MATHML:

enter image description here

3

你的情况的问题是双重的:

1:您有不支持MathML的浏览器。 OpenGL 2.x文档makes it clear that this is necessary

2:OpenGL 2.x文档尚未使用MathJax支持进行更新,MathJax支持随处启用MathML。 modern OpenGL 4.x documentation uses this,但只涵盖核心配置文件的东西。

因此,除了获得带有MathML支持的浏览器外,没有真正的解决方案。 Khronos集团明确表示,他们甚至不会在man2页面中修复错误信息,更不用说使用MathJax升级它们了。