opengl 安装
opengl简介
OpenGL(全写Open Graphics Library)是个定义了一个跨编程语言、跨平台的编程接口的规格,它用于三维图象(二维的亦可)。OpenGL是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库。
OpenGL是个与硬件无关的软件接口,可以在不同的平台如Windows 95、Windows NT、Unix、Linux、MacOS、OS/2之间进行移植。因此,支持OpenGL的软件具有很好的移植性,可以获得非常广泛的应用。
开发基于OpenGL的应用程序,必须先了解OpenGL的库函数。它采用C语言风格,提供大量的函数来进行图形的处理和显示OpenGL图形库一共有100多个函数,它们分别属于 OpenGL的基本库、实用库、辅助库等不同的库。核心库,它们是最基本的函数,其前缀是gl;这部分函数用于常规的、核心的图形处理,由gl.dll来负责解释执行。实用库(OpenGL utility library,GLU),包含的函数功能更高一些,如绘制复杂的曲线曲面、高级坐标变换、多边形分割等,前缀为glu。Glu函数通过调用核心库的函数,为开发者提供相对简单的用法,实现一些较为复杂的操作。此类函数由glu.dll来负责解释执行。OpenGL辅助(OpenGL auxiliarylibrary,GLAUX),包括简单的窗口管理、输入事件处理、某些复杂三维物体绘制等函数,前缀为aux。此类函数由glaux.dll来负责解释执行。辅助库函数主要包括以下几类。OpenGL工具库(penGL Utility Toolkit)包含大约30多个函数,函数名前缀为glut,此函数由glut.dll来负责解释执行。
OpenGL数据类型
与C语言相对应,OpenGL中也有整数、字节、浮点数等数据类型,为了说明两者的对应关系,下表将OpenGL的数据类型与相应的C类型进行了对比:
前缀 数据类型 相应C语言类型 OpenGL类型
b 8-bit integer signed char GLbyte
s 16-bit integer short GLshort
i 32-bit integer long GLint,GLsizei
f 32-bit floating-point float GLfloat,GLclampf
d 64-bit floating-point double GLdouble,GLclampd
ub 8-bit unsigned integer unsigned char GLubyte,GLboolean
us 16-bit unsigned integer unsigned short GLushort
ui 32-bit unsigned integer unsigned long GLuint,GLenum,GLbitfield
了解了OpenGL的数据类型,让我们再回过头来看看OpenGL库函数的命名规律。所有OpenGL函数采用了以下格式:
<库前缀><根命令><可选的参数个数><可选的参数类型>
库前缀有gl、glu、aux、glut、wgl、glx等等,分别表示该函数属于OpenGL某开发库等,从函数名后面中还可以看出需要多少个参数以及参数的类型。I代表int型,f代表float型,d代表double型,u代表无符号整型。注意,有的函数参数类型后缀前带有数字2、3、4。2代表二维,3代表三维,4代表alpha值(以后介绍)。有些OpenGL函数最后带一个字母v,表示函数参数可用一个指针指向一个向量(或数组)来替代一系列单个参数值。下面两种格式都表示设置当前颜色为红色,二者等价。
glColor3f(1.0,0.0,0.0);等价于:
float color_array[]={1.0,0.0,0.0};
glColor3fv(color_array);
除了以上基本命名方式外,还有一种带”*”星号的表示方法,例如glColor*(),它表示可以用函数的各种方式来设置当前颜色。同理,glVertex*v()表示用一个指针指向所有类型的向量来定义一系列顶点坐标值。
环境的配置
Opengl中的GL.lib,GLU.lib,opengl32.lib等一些基本的库和它们的动态链接库在windows系统中已经存在,所以配置主要是包括一些常用库的配备:glut,glee,glew,wgl等一些常用库。下面先介绍GLUT库的配置:(1)先安装好你的运行环境vs2010(2)网上下载GLUT工具包,然后解压缩,得到包含文件,库文件,及动态链接库文件(3)例如你将vs2010安装在你的C:\Program Files\文件夹下,那么接下来你要做的就是把glut.h文件拉到C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\gl文件夹下,将glut.dll放到C:\WINDOWS\system32文件夹下,将glut32.dll 放到C:\Program Files\Microsoft Visual Studio 10.0\VC\bin文件夹下,将glut.lib,glut32.lib 放到C:\Program Files\Microsoft Visual Studio 10.0\VC\lib文件夹中即可。这样就完成了glut 库的环境配置。你可以用下面的函数来调试你的glut库是否安装成功:
1: #include
2: void display()
3: {
4: /*clear window */
5: glClear(GL_COLOR_BUFFER_BIT);
6: /*draw unit square polygon*/
7: glBegin(GL_POLYGON);
8: glVertex2f(-0.5, -0.5);
9: glVertex2f(-0.5, 0.5);
10: glVertex2f(0.5, 0.5);
11: glVertex2f(0.5, -0.5);
12: glEnd();
13: glFlush();
14: }
15: void init()
16: {
17: glClearColor(0.0, 0.0, 0.0, 0.0);
18: glColor3f(1.0, 1.0, 1.0);
19: glMatrixMode(GL_PROJECTION);
20: glLoadIdentity();
21: gluOrtho2D(-1.0, 1.0, -1.0, 1.0);
22: }
23: int main(int argc, char** argv)
24: {
25: /*initialize mode and open window inupper-left corner of
26: screen*/
27: /*window title is name of program (arg[0])*/
28: glutInit(&argc, argv);
29: glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
30: glutInitWindowSize(500, 500);
31: glutInitWindowPosition(0, 0);
32: glutCreateWindow("施妹妹是一个二逼");
33: glutDisplayFunc(display);
34: init();
35: glutMainLoop();
36: }
其它的库的配置也类似,将lib文件放到C:\Program Files\Microsoft Visual Studio 10.0\VC\lib,将.h文件放到C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\gl文件夹下就好,关于动态链接库的你可以试试安放在C:\WINDOWS\system32,及C:\Program Files\Microsoft Visual Studio 10.0\VC\bin中试试,这样环境调试就完成了。