概要
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包含五个文件
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();
}
运行结果如下: