如何理解OpenGL文档的矩阵?
问题描述:
我确定我的浏览器没有损坏,但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 = V0伏1体积2 v3,则当前转换为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.
答
你的情况的问题是双重的:
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升级它们了。