OpenGL投影,视图和世界矩阵

时间:2014-10-27 11:03:50

标签: c opengl matrix directx-9

我对OpenGL投影,视图和模型矩阵有疑问。 在DirectX 9中,我可以轻松操作矩阵内容,然后使用SetTransform function应用它。

我在MSDN OpenGL glLoadMatrixf function中看到了它,但它只更改了我可以按glMatrixMode function更改的当前矩阵。

此函数通过3个选项获得一个参数:GL_MODELVIEWGL_PROJECTIONGL_TEXTURE。但这就是问题所在。我该如何修改世界矩阵?

在DirectX 9中,我可以使用SetTransformstate types之一:D3DTS_WORLD(宏),D3DTS_VIEWD3DTS_PROJECTION并为它们设置矩阵。< / p>

1 个答案:

答案 0 :(得分:2)

GL_MODELVIEW矩阵正是它的名字;模型和视图矩阵的组合。通常,首先应用视图转换,然后为每个模型推送矩阵,应用模型转换,绘制模型,然后弹出矩阵。

如果您使用着色器,(并且您必须在没有兼容性配置文件的OpenGL 3.1+中),那么您可以使用制服将矩阵传递到着色器(如果您愿意),包括拆分模型和查看矩阵欲望。