opengl作为当前主流图形API之一,具有强大的可移植性,高性能的图形渲染,越来越广泛的应用。下面主要对opengl在vs2010中的配置做简要的介绍。
系统:windows
编译环境:visual studio 2010
安装glut工具包:
Windows环境下的GLUT下载地址:(大小约为150k)
http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
无法从以上地址下载的话请使用下面的连接:
http://upload.programfan.com/upfile/200607311626279.zip
windows环境下安装opengl的步骤为:
1、将下载的压缩文件解压,得到五个文件。
2、在“我的电脑”中搜索“gl.h”,并找到其所在文件夹
比如我的系统(Windows 8.1)安装了vs2010,目录是在C:\Program Files (x86)\Microsoft Visual Studio 10.0下,则在 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include下创建文件夹GL。
1. 将其中的glut.h复制到C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\GL下,若GL目录不存在,则新建。
2. 将glut.lib和glut32.lib复制到C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib 下。
3. 若系统是32位的,则将glut.dll和glut32.dll复制到C:\WINDOWS\system32下;若系统是64位的,则将glut.dll和glut32.dll复制到C:\WINDOWS\SysWOW64下。
到这一步,环境基本已经配置好了,可以编写一个简单的opengl程序,里测试一下。
一个简单的opengl程序:
将用到的例子是显示一个规则的六边形。
源码:
#include "StdAfx.h"
#include<GL/glut.h>
#include<math.h>
#include<stdlib.h>
const double TWO_PI = 6.2831853;
GLsizei winWidth = 400, winHeight = 400;
GLint regHex;
class screenPt
{
private:
GLint x, y;
public:
screenPt()
{
x = y = 0;
}
void setCoords(GLint xCoord, GLint yCoord)
{
x = xCoord;
y = yCoord;
}
GLint getx() const {
return x;
}
GLint gety() const {
return y;
}
};
static void init(void)
{
screenPt hexVertex, circCtr;
GLdouble theta;
GLint k;
circCtr.setCoords(winWidth / 2, winHeight / 2);
glClearColor(1.0,1.0,1.0,0.0);
regHex = glGenLists(1);
glNewList(regHex, GL_COMPILE);
glColor3f(1.0,0.0,0.0);
glBegin(GL_POLYGON);
for(k = 0; k < 6; k ++)
{
theta = TWO_PI * k / 6.0;
hexVertex.setCoords(circCtr.getx() + 150 * cos(theta), circCtr.gety() + 150 * sin(theta));
glVertex2i(hexVertex.getx(), hexVertex.gety());
}
glEnd();
glEndList();
}
void regHexagon(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glCallList(regHex);
glFlush();
}
void winReshapeFcn(int newWidth, int newHeight)
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0, (GLdouble) newWidth, 0.0, (GLdouble) newHeight);
glClear(GL_COLOR_BUFFER_BIT);
}
void main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE| GLUT_RGB);
glutInitWindowPosition(100,100);
glutInitWindowSize(winWidth, winHeight);
glutCreateWindow("Reshape - Fanction & Display - List Example");
init();
glutDisplayFunc(regHexagon);
glutReshapeFunc(winReshapeFcn);
glutMainLoop();
}
运行结果:
运行成功,你的opengl之路可以开始了。