• 【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.创建project

    创建一个win32应用控制台project。



    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.效果图


  • 相关阅读:
    初识NuGet
    NHibernate之映射文件配置说
    NHibernate 数据查询之QueryOver<T>
    一、NHibernate配置所支持的属性
    javascript forEach无法break,使用every代替
    missing ) after argument list
    数组分组chunk的一种写法
    call和apply第一个参数为null/undefined,函数this指向全局对象
    apply的理解和数组降维
    javascript push 和 concat 的区别
  • 原文地址:https://www.cnblogs.com/brucemengbm/p/6774248.html
Copyright © 2020-2023  润新知