GL_MODELVIEW与GL_PROJECTION的区别
来源:互联网 发布:linux多线程服务通信 编辑:程序博客网 时间:2024/05/16 07:29
今天用OpenGL画图的时候,显示的画面老是不对,原来是reshape函数出了问题。在进行投影相关的操作前,必须将glMatrixMode设为GL_PROJECTION;之后必须将glMatrixMode设回为GL_MODELVIEW。否则之后针对物体的变换都不起作用。
void reshape(int width,int height)
{
glViewport (0, 0, (GLsizei) width, (GLsizei) height);
glMatrixMode (GL_PROJECTION);
glLoadIdentity();
glOrtho (-l, l, -w, w ,-10*h ,10*h);//或glFrustum(),gluPerspective()等投影相关的操作。
glMatrixMode ( GL_MODELVIEW );
glLoadIdentity() ;
}
看到了一篇文章介绍这两者的区别:http://home.kaoyan.com/home.php?mod=space&uid=2820987&do=blog&id=45163
这两个都是glMatrixMode()函数的参数,那就先说说glMatrixMode吧~,这个函数其实就是对接下来要做什么进行一下声明,也就是在要做下一步之前告诉计算机我要对“什么”进行操作了,这个“什么”在glMatrixMode的“()”里的选项(参数)有,GL_PROJECTION,GL_MODELVIEW和GL_TEXTURE;
如果参数是GL_PROJECTION,这个是投影的意思,就是要对投影相关进行操作,也就是把物体投影到一个平面上,就像我们照相一样,把3维物体投到2维的平面上。这样,接下来的语句可以是跟透视相关的函数,比如glOrtho(),glFrustum()或gluPerspective()等。
如果参数是GL_MODELVIEW,这个是对模型视景的操作,接下来的语句描绘一个以模型为基础的适应,这样来设置参数,接下来用到的就是像gluLookAt()这样的函数;
若是GL_TEXTURE,就是对纹理相关进行操作;
顺便说下,OpenGL里面的操作,很多是基于对矩阵的操作的,比如位移,旋转,缩放,所以,这里其实说的规范一点就是glMatrixMode是用来指定哪一个矩阵是当前矩阵,而它的参数代表要操作的目标,GL_PROJECTION是对投影矩阵操作,GL_MODELVIEW是对模型视景矩阵操作,GL_TEXTURE是对纹理矩阵进行随后的操作。
- GL_MODELVIEW与GL_PROJECTION的区别
- GL_MODELVIEW与GL_PROJECTION的区别
- OpenGL -- GL_PROJECTION跟GL_MODELVIEW区别
- GL_PROJECTION和GL_MODELVIEW的作用
- GL_PROJECTION和GL_MODELVIEW的作用
- GL_PROJECTION和GL_MODELVIEW的作用
- 关于GL_PROJECTION和GL_MODELVIEW的理解
- 关于GL_PROJECTION和GL_MODELVIEW的理解
- GL_PROJECTION和GL_MODELVIEW的作…
- glMatrixMode()函数的参数中GL_PROJECTION和GL_MODELVIEW和GL_TEXTURE的区别
- OpenGL GL_PROJECTION and GL_MODELVIEW
- GL_PROJECTION and GL_MODELVIEW
- GL_PROJECTION和GL_MODELVIEW
- glMatrixMode()函数的参数中GL_PROJECTION和GL_MODELVIEW的作用
- glMatrixMode()函数的参数中GL_PROJECTION和GL_MODELVIEW的作用
- opengl的GL_PROJECTION变换矩阵
- opengl中GL_MODELVIEW下的变换矩阵的说明
- GL_MODELVIEW矩阵详解
- Ubuntu添加BT5软件源
- VB中Split函数的作用和用法(字符串用逗号分割)
- SGU 364 Lemmings Dijkstra
- HDU 1061 Rightmost Digit
- 采用vb以十六进制的形式读取文本文档数据
- GL_MODELVIEW与GL_PROJECTION的区别
- PADS备忘录
- 《编程珠玑》读书笔记4------------第四章部分习题及个人答案
- Objective-c中的委托
- 应用服务器学习笔记
- Xcode调试技巧之二 crash之后的定位问题
- poj 1195 Mobile phones
- Eclipse下配置主题颜色
- Objective-C学习之路 委托模式