OpenGL(一)——入门学习
概要
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库的C,C + +(同为C),FORTRAN,Ada编程绑定。过剩的源代码分布移植到几乎所有的OpenGL实现和平台
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(); }
运行结果如下: