我对OpenGL投影,视图和模型矩阵有疑问。
在DirectX 9中,我可以轻松操作矩阵内容,然后使用SetTransform
function应用它。
我在MSDN OpenGL glLoadMatrixf
function中看到了它,但它只更改了我可以按glMatrixMode
function更改的当前矩阵。
此函数通过3个选项获得一个参数:GL_MODELVIEW
,GL_PROJECTION
和GL_TEXTURE
。但这就是问题所在。我该如何修改世界矩阵?
在DirectX 9中,我可以使用SetTransform
和state types之一:D3DTS_WORLD
(宏),D3DTS_VIEW
和D3DTS_PROJECTION
并为它们设置矩阵。< / p>
答案 0 :(得分:2)
GL_MODELVIEW
矩阵正是它的名字;模型和视图矩阵的组合。通常,首先应用视图转换,然后为每个模型推送矩阵,应用模型转换,绘制模型,然后弹出矩阵。
如果您使用着色器,(并且您必须在没有兼容性配置文件的OpenGL 3.1+中),那么您可以使用制服将矩阵传递到着色器(如果您愿意),包括拆分模型和查看矩阵欲望。