C 正确计算OpenGL使用的模型和视图矩阵?
我对GL 3.2中的矩阵有点问题。最好用矩阵表示法,我如何生成模型和视图矩阵?如何设置模型/视图矩阵?我已经有了一个投影矩阵;它的定义是:C 正确计算OpenGL使用的模型和视图矩阵?,c,opengl,matrix,model-view,projection-matrix,C,Opengl,Matrix,Model View,Projection Matrix,我对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,
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};
我知道这个正交矩阵必须乘以模型矩阵和视图矩阵,这些矩阵必须乘以点。如何设置这些矩阵
编辑:我不介意它们是否连接成一个(modelview) 我建议您使用OpenGL数学库,而不是自己实现所有功能。OpenGL Mathematics包含OpenGL所需的所有数学知识,其语法受GLSL启发。该库位于以下位置: 或者,您可以实现自己的数学库。在这种情况下,我建议您看看Angels数学库(摘自《交互式计算机图形:基于着色器的OpenGL自上而下方法,6/E》一书)。此库非常容易理解:
(查看mat.h和vec.h)我建议您使用库OpenGL Mathematics,而不是自己实现所有功能。OpenGL Mathematics包含OpenGL所需的所有数学知识,其语法受GLSL启发。该库位于以下位置: 或者,您可以实现自己的数学库。在这种情况下,我建议您看看Angels数学库(摘自《交互式计算机图形:基于着色器的OpenGL自上而下方法,6/E》一书)。此库非常容易理解:
(查看mat.h和vec.h)如果您只想计算modelview矩阵,可以参考参考页了解它在GLU中的实现方式。(实际上,您不能在OpenGL 3中使用GLU库,但参考页显示了矩阵数学是如何在内部实现的。) 对于“摄像机”的定位: 进行翻译: 进行旋转时:
如果您只想计算modelview矩阵,可以参考参考页了解它在GLU中的实现方式。(实际上,您不能在OpenGL 3中使用GLU库,但参考页显示了矩阵数学是如何在内部实现的。) 对于“摄像机”的定位: 进行翻译: 进行旋转时:
您当时使用的是什么语言?@user1575991那么您可能想用您正在使用的语言标记您的问题。您可以为此牺牲glsl标记,它无论如何不适合这里。C,它没有GL矩阵库(我知道)。我可以自己做矩阵运算,我只需要知道如何为GL设置这些矩阵。你当时使用的是什么语言?@user1575991那么你可能想用你正在使用的语言标记你的问题。您可以为此牺牲glsl标记,它无论如何不适合这里。C,它没有GL矩阵库(我知道)。我可以自己做矩阵运算,我只需要知道如何为GL设置这些矩阵。OpenGL手册页包含、、等的公式。OpenGL手册页包含、、等的公式。