我在GL 3.2中遇到了一些矩阵问题。如何,最好以矩阵表示法,如何生成模型和查看矩阵?如何设置模型/视图矩阵?我已经有了投影矩阵;它被定义为:
float right = 800.0f, left = 0.0f;
float top = 0.0f, bottom = 600.0f;
float far = 1.0f, near = -1.0f;
float ortho_mat[16] = {(2.0f / (right - left)), 0.0f, 0.0f, 0.0f,
0.0f, (2.0f / (top - bottom)), 0.0f, 0.0f,
0.0f, 0.0f, (-2.0f / (far - near)), 0.0f,
(-((right + left) / (right - left))),
(-((top + bottom) / (top - bottom))),
(-((far + near) / (far - near))), 1.0f};
据我所知,这个正交矩阵必须乘以模型和视图矩阵,并且必须乘以该点。我如何设置这些矩阵?
编辑:我不介意他们是否被连接成一个(模型视图)。
答案 0 :(得分:1)
我建议您使用OpenGL数学库,而不是自己实现所有内容。 OpenGL数学包含OpenGL所需的所有数学 - 语法灵感来自GLSL。图书馆在这里找到:
另外,你可以实现自己的数学库。在这种情况下,我建议你看看Angels数学库(来自“交互式计算机图形:基于着色器的OpenGL,6 / E的自上而下方法”一书)。这个库很容易理解:
http://www.cs.unm.edu/~angel/BOOK/INTERACTIVE_COMPUTER_GRAPHICS/SIXTH_EDITION/CODE/include/
(查看mat.h和vec.h)
答案 1 :(得分:0)
如果您只想计算模型视图矩阵,可以参考参考页面了解它在GLU中的实现方式。 (您无法在OpenGL 3中实际使用GLU库,但参考页面显示了如何在内部实现矩阵数学。)
用于定位“相机”: http://www.opengl.org/sdk/docs/man/xhtml/gluLookAt.xml
进行翻译: http://www.opengl.org/sdk/docs/man/xhtml/glTranslate.xml