我对 OpenGL 投影、 View 和模型矩阵有疑问。
在 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
并为它们设置矩阵。
最佳答案
GL_MODELVIEW
矩阵正如它的名字一样;模型和 View 矩阵的组合。通常,您首先应用 View 变换,然后为每个模型推送一个矩阵,应用模型变换,绘制模型,然后弹出矩阵。
但是,如果您使用着色器(并且您必须在没有兼容性配置文件的 OpenGL 3.1+ 中使用),那么您可以根据需要使用制服将矩阵传递给着色器,包括拆分模型和 View 矩阵(如果需要)愿望。
关于c - OpenGL 投影、 View 和世界矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26586131/