您的位置:首页 > 运维架构

关于在windows下OpenGL glViewport, glOrtho,glScissor的详解(几日心得体会)

2011-09-07 11:08 381 查看
这两天在不停的弄OpenGL编程,好久没用了,遗忘了不少,现在找回来,总结了一下心得:

首先关于视点的问题,这些可能一些初学的同学可能会很困惑这个问题:

首先在Windows下坐标原点在左上角,而OpenGL的坐标原点则在左下角。



对于我想渲染一个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的方式画矩形
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: