关于在windows下OpenGL glViewport, glOrtho,glScissor的详解(几日心得体会)
2011-09-07 11:08
381 查看
这两天在不停的弄OpenGL编程,好久没用了,遗忘了不少,现在找回来,总结了一下心得:
首先关于视点的问题,这些可能一些初学的同学可能会很困惑这个问题:
首先在Windows下坐标原点在左上角,而OpenGL的坐标原点则在左下角。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202010/18/c55886a05477284076828390fab1c5f9.gif)
对于我想渲染一个2D的图片来说视点设置应该如下:
之后在绘制实体的时候,比如画一个正方形在屏幕上,如果你想画在左上角,则需要做一部这个转换。
首先关于视点的问题,这些可能一些初学的同学可能会很困惑这个问题:
首先在Windows下坐标原点在左上角,而OpenGL的坐标原点则在左下角。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202010/18/c55886a05477284076828390fab1c5f9.gif)
对于我想渲染一个2D的图片来说视点设置应该如下:
glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0, (IPHONE_SCREEN_WIDTH), 0, SCREEN_HEIGHT, -I2F(100), I2F(1000));//这里glOrtho(左,右,下,上,近,远) //这个是基于openGL坐标的 glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glViewport(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);//glViewport(x,y,width,height) glScissor (0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);//glScissor(x,y,width,height)
之后在绘制实体的时候,比如画一个正方形在屏幕上,如果你想画在左上角,则需要做一部这个转换。
void drawRect(x,y,width,height) { y = SCREEN_HEIGHT - y - h; //通过GL的方式画矩形 }
相关文章推荐
- 关于在windows下OpenGL glViewport, glOrtho,glScissor的详解
- 关于windows句柄机制的一些心得体会
- 关于windows程序设计的心得体会
- 关于WPF中使用AxWindowsMediaPlayer的一些心得体会
- 关于写代码的心得体会
- 关于Windows的域和活动目录(以实践心得来讲解)
- 关于Windows编程的一些心得
- 关于解bug的一点体会和心得
- 关于Hiberante存储CLOB的一些心得体会
- 关于项目和实施过程中部分角色行为的心得体会
- 关于调试过程中单片机复位的几点心得与体会
- 关于使用Axure RP进行原型开发的一些心得体会
- 关于信息学奥林匹克竞赛(OI)比赛策略的心得体会
- 关于OR-Mapping的学习心得体会
- 心得体会:关于开发效率和项目周期的问题
- 关于关闭浏览器退出系统清除Session 的心得体会及方法
- OpenGl中的glViewport()函数和glOrtho()函数的理解
- 关于网络推广的一些心得体会
- 关于调试过程中单片机复位的几点心得与体会
- 关于string的一些心得体会