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

这两天在不停的弄OpenGL编程,好久没用了,遗忘了不少,现在找回来,总结了一下心得:

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

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

关于在windows下OpenGL glViewport, glOrtho,glScissor的详解(几日心得体会)_第1张图片

对于我想渲染一个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,iPhone)