概要

1. 为什么使用OpenGL

2. 在VS2008上搭建环境

3. 一个简单的例程

OpenGL相较于DirectX的优越性

1. 与C语言紧密结合

    OpenGL命令最初就是用C语言函数来进行描述的,对于学习过C语言的人来讲,OpenGL是容易理解和学习的

2. 强大的可移植性

    OpenGL不仅用于 Windows,还可以用于Unix/Linux等其它系统,它甚至在大型计算机、各种专业计算机(如:医疗用显示设备)上都有应用。并且,OpenGL的基本命令都做到了硬件无关,甚至是平台无关

3. 高性能的图形渲染

    OpenGL是一个工业标准,它的技术紧跟时代,现今各个显卡厂家无一不对OpenGL提供强力支持,激烈的竞争中使得OpenGL性能一直领先

在VS2008上搭建环境

1. 我的环境是vs2008+win7

2. 下载安装GLUT

    GLUT是OpenGL实用工具包,一个窗口系统独立编写OpenGL程序的工具包。它实现了一个简单的窗口应用程序编程接口(API)为OpenGL。GLUT使得它相当容易了解和探索OpenGL编程。GLUT提供了一个可移植的API,所以你可以写一个单一的OpenGL程序,它在所有的PC和工作站操作系统平台都可以运行

    GLUT是专为小到中等规模的OpenGL程序建设。虽然GLUT非常适合学习OpenGL和简单的OpenGL应用程序开发,GLUT不是一个全功能的大型应用程序,需要复杂的用户界面的工具包,所以最好使用本地窗口系统的工具包。GLUT简单,操作方便,和小

    GLUT不是开源的,但有很多新的和开放源码的替代品
    下载地址

    GLUT包含五个文件

    

opencv 易语言 易语言opengl_搭建环境

3. 解压文件

    将glut.h解压到X:\Program Files\Microsoft Visual Studio 9.0\VC\include文件夹(实际应用中新建一个GL文件应该更好吧)

glut.lib和glut32.lib解压到静态函数库所在文件夹X:\Program Files\Microsoft Visual Studio 9.0\VC\lib

    把解压得到的glut.dll和glut32.dll放到操作系统目录下面的system32文件夹内(典型的位置为:C:\Windows\System32)

    如果是64位系统,将system32文件夹改为SysWOW64文件夹

 一个简单的程序

#include <glut.h>
#include <math.h>

GLfloat r(double angle)
{
    return 1 - cos(angle);                                //心形线r=1-cosθ
}

void myDisplay(void)
{
    double t, p = 3.141593 / 180;

    int i;

    glClear(GL_COLOR_BUFFER_BIT);                         //清除图像缓冲器

    glColor3f(1.0, 1.0, 1.0);                             //设置画线颜色,对应RGB

    glBegin(GL_POINTS);
    for( i = 0; i < 360; i += 4)                          //画出每一个点
    {
        t = i * p;
        glVertex2f(r(t) * cos(t), r(t) * sin(t));
    }
    glEnd();

    glFlush();                                            //促使所有之前的命令被执行
}

void main(int argc, char* *argv)
{
    glutInit(&argc, argv);                                //初始化,必须先调用

    glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);

    glutInitWindowSize(400, 300);

    glutInitWindowPosition(200, 100);

    glutCreateWindow("第一个OpenGL程序");                  //窗体的名字

    glClearColor(0.0, 0.0, 0.0, 0.0);

    gluOrtho2D(-4.0, 4.0, -3.0, 3.0);                     //截取矩阵大小为8 * 6

    glutDisplayFunc(&myDisplay);

    glutMainLoop();
}

运行结果如下:

 

opencv 易语言 易语言opengl_#include_02