• 【OpenGL 学习笔记01】HelloWorld示例


    <<OpenGL Programming Guide>>这本书是看了忘,忘了又看,赶脚还是把笔记做一做心里比较踏实,哈哈。
    我的主题是,好记性不如烂笔头。
    ================================================================

    1. 下载glut库

    glut库地址为:www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
    glut全称为:OpenGL Utility Toolkit,也就是OpenGL应用工具包,它建立在OpenGL基础之上,方便开发OpenGL的某些功能,比如我们后面要创建的Windows程序,就可以用glut来方便地构建起一个初始化的Windows程序。

    2. 安装glut库

    为了能使用glut库,我们解压开这个zip包,会发现其中包含如下几个文件,我们需要复制一下以下几个文件:
    glut.h:头文件,复制到D:Program Files (x86)Microsoft Visual Studio 11.0VCincludegl目录下(需要自己来新建gl目录)
    glut.lib,glut32.lib:静态链接库,复制到D:Program Files (x86)Microsoft Visual Studio 11.0VClib目录下
    glut.dll,glut32.dll:动态链接库,复制到C:WindowsSystem32目录下,64位操作系统的,还需要复制到C:WindowsSysWOW64目录下。

    3.创建工程

    创建一个win32应用控制台工程。

    4.HelloWorld示例

    #include <GL/glut.h>
    
    void display(void)
    {
      
      glClear (GL_COLOR_BUFFER_BIT);  //清除颜色缓冲区
    
      glColor3f (1.0, 1.0, 1.0);      //设置绘制的颜色为白色(红,绿,蓝,)
    
      glBegin(GL_POLYGON);            //标志着一个顶点数据列表的开始,GL_POLYGON表示绘制简单的凸多边形
      glVertex3f (0.25, 0.25, 0.0);   
      glVertex3f (0.75, 0.25, 0.0);
      glVertex3f (0.75, 0.75, 0.0);
      glVertex3f (0.25, 0.75, 0.0);
      glEnd();                        //标志着一个顶点数据列表的结束
    
      glFlush ();
    }
    
    void init (void) 
    {
    
      glClearColor (0.0, 0.0, 0.0, 0.0);     //设置窗口将被清除成黑色
      glMatrixMode(GL_PROJECTION);           //将当前矩阵指定为投影矩阵
      glLoadIdentity();                      //把当前矩阵设为单位矩阵
      glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);//指定绘制图像时使用的坐标系统 glOrtho(Xmin,Xmax,Ymin,Ymax,Zmin,Zmax);   
    }
    
    
    int main(int argc, char** argv)
    {
      //初始化gult
      glutInit(&argc, argv);
      
      //指定使用RGBA模式还是颜色索引模式,单缓冲还是双缓冲。  
      glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);   
    
      //指定窗口大小(像素为单位)
      glutInitWindowSize (250, 250); 
    
      //左上角位置
      glutInitWindowPosition (100, 100);
    
      //创建窗口,glutMainLoop()之后才会显示
      glutCreateWindow ("hello");
      
      //初始化一次
      init ();
      
      //显示回调函数,当glut确定窗口需要重绘时,回调函数会执行。
      //因此场景重绘代码应该放在这里
      glutDisplayFunc(display); 
    
      //启动程序,
      glutMainLoop();
      return 0;   
    }

    5.效果图


  • 相关阅读:
    苹果向Intel迁移的过程
    苹果向Intel迁移的过程
    UNIX发展简史
    UNIX发展简史
    不折腾的Windows+MAC双平台ADT-Bundle版本总结
    不折腾的Windows+MAC双平台ADT-Bundle版本总结
    MDICT的100G的辞典资源
    MDICT的100G的辞典资源
    android开发工具中的版本不一致问题的剖析
    android开发工具中的版本不一致问题的剖析
  • 原文地址:https://www.cnblogs.com/fzll/p/3954576.html
Copyright © 2020-2023  润新知