freeglut 与 glut的差别:
[源自百度百科]
freeglut是GLUT [注1]的一个完全开源替代库。
GLUT最初是《OpenGL红皮书(第二版)》[注2]中的示例程序。自那以后,GLUT简单、跨平台的特点,使其在各种实际应用中广泛应用。
GLUT(以及freeglut)允许用户在众多的平台的创建和管理窗口中OpenGL容器,以及相关的鼠标、键盘和游戏杆功能。
freeglut 由X-联盟许可下发布的。
[注1] GLUT :OpenGL实用工具包
[注2] 《OpenGL红皮书(第二版)》,由Mark Kilgard开发
下面介绍VS2010与OPENGL的结合搭建
1.VS2010与glut
如果单纯的要配置glut的话 只需安装glut工具包。
GLUT不是 OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装。
Windows环境下的 GLUT下载地址:(大小约为 150k) http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
Windows 环境下安装GLUT的步骤:
1、将下载的压缩包解开,将得到 5个文件
2、在 “我的电脑 ”中找见你的VS2010安装路径下的VC目录。
我的是E:\software\vs10\VC
在vc目录下的include文件夹中新建gl文件夹
把解压得到的 glut.h放到这个文件夹中。
3、把解压得到的 glut.lib和 glut32.lib放到静态函数库所在文件夹
(如果是 VisualStudio2010,则应该是其安装目录下面的 “VC\lib”文件夹)。
4、把解压得到的 glut.dll和 glut32.dll放到操作系统目录下面的 system32文件夹内。(典型的位置为: C:\Windows\System32)
64为操作系统最好也在SysWOW64文件夹中拷入dll文件
5、建立一个新的 OpenGL工程 这里以 VisualStudio2010为例。 选择 File->New->Project,然后选择Win32 Console Application ,名字TestOpenGL,然后按 OK。 在谈出的对话框左边点 Application Settings,找到 Empty project(空项目,不需要点击预编译头)并勾上,选择 Finish。 然后向该工程添加一个代码文件,选择cpp文件起一个名字确定即可。
第一个OpenGL程序 一个简单的 OpenGL程序如下:(注意,如果需要编译并运行,需要正确安装 GLUT,安装方法如上所述)
#include
void myDisplay (void) {
glClear(GL_COLOR_BUFFER_BIT );
glRectf(-0.5f, -0.5f, 0.5f, 0.5f);
glFlush(); }
int main (int argc, char *argv[])
{
glutInit(&argc , argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(100, 100);
glutInitWindowSize(400, 400);
glutCreateWindow("第一个OpenGL程序" );
glutDisplayFunc(&myDisplay );
glutMainLoop();
return 0;
}
2.vs2010与freeglut
1.首先下载freeglut
http://nchc.dl.sourceforge.net/project/freeglut/freeglut/2.8.0/freeglut-2.8.0.tar.gz
解压完后如图所示:
2.打开E:\software\freeglut-2.8.0\VisualStudio 文件夹发现其中有2个文件夹
我们打开2010这个文件夹
运行freeglut.sln
将编译环境改为release 在解决方案资源管理器里,右键解决方案,build solution(生成解决方案)。
编译成功后退回到freeglut-2.8.0根目录,把include\GL里面所有的.h文件复制到E:\software\vs10\VC\include文件夹,如果没有gl文件夹的话,需要创建gl文件夹
退回到 freeglut-2.8.0根目录, 把lib\x86里面的freeglut.dll复制到C:\Windows\System32文件夹里,64为操作系统最好也在SysWOW64文件夹中拷入dll文件
把freeglut.lib复制到E:\software\vs10\VC\lib中
到此freeglut的配置就完成了。
测试程序还可以选择上面所列的程序
3.vs2010 与glew
GLEW是一个跨平台的C++扩展库,基于OpenGL图形接口。GLEW能自动识别你的平台所支持的全部OpenGL高级扩展涵数。也就是说,只要包含一个glew.h头文件,你就能使用gl,glu,glext,wgl,glx的全部函数。GLEW支持目前流行的各种操作系统(including Windows, Linux, Mac OS X, FreeBSD, Irix, and Solaris)使用OpenGL的朋友都知道,window目前只支持OpenGL1.1的涵数,但 OpenGL现在都发展到2.0以上了,要使用这些OpenGL的高级特性,就必须下载最新的扩展,另外,不同的显卡公司,也会发布一些只有自家显卡才支 持的扩展函数,你要想用这数涵数,不得不去寻找最新的glext.h,有了GLEW扩展库,你就再也不用为找不到函数的接口而烦恼,因为GLEW能自动识 别你的平台
所支持的全部OpenGL高级扩展h函数。也就是说,只要包含一个glew.h头文件,你就能使用gl,glu,glext,wgl,glx的全部函数。
glew的配置和freeglut完全一样,
1、下载glew:http://glew.sourceforge.net/
解压后如图所示:
2、配置:
配置和freeglut同理,将相应的文件拷贝到相应位置。
2-1 将bin文件夹里的glew32.dll 的文件复制到C:\Windows\System32文件夹里,64为操作系统最好也在SysWOW64文件夹中拷入dll文件
2-2 将lib文件夹下的glew32.lib 文件拷贝到E:\software\vs10\VC\lib
2-3 将include/GL/glew.h include/GL/wglew.h 等文件 拷贝到E:\software\vs10\VC\include\gl中
运行测试例子是在最顶部加上
#include
#include
4.vs2010与gltools
下载可上CSDN上搜索,也可以在评论区留下您的邮箱,我会尽快通过邮箱分享给您。
下载完成后解压文件,如图所示:
配置方法与之前的方法一样 将.h文件和.lib文件分别放入上面所写的对应的文件夹
运行测试工程Triangle(此工程是OPENGL超级宝典随书附录代码,有需要的请在评论区留下邮箱,也可在下面给的连接中下载随书源码)
新建一个win32控制台程序
进入项目>属性>链接器>输入>依赖项中添加gltools.lib,freeglut.lib,glew32s.lib
同时向忽略特定默认库中添加LIBCMT,MSVCRT
运行Triangle,成功如图所示:
源码:
// Triangle.cpp
// Our first OpenGL program that will just draw a triangle on the screen.
#include
#include
#ifdef __APPLE__
#include
#else
#define FREEGLUT_STATIC
#include
#endif
GLBatch triangleBatch;
GLShaderManager shaderManager;
///////////////////////////////////////////////////////////////////////////////
// Window has changed size, or has just been created. In either case, we need
// to use the window dimensions to set the viewport and the projection matrix.
void ChangeSize(int w, int h)
{
glViewport(0, 0, w, h);
}
///////////////////////////////////////////////////////////////////////////////
// This function does any needed initialization on the rendering context.
// This is the first opportunity to do any OpenGL related tasks.
void SetupRC()
{
// Blue background
glClearColor(0.0f, 0.0f, 1.0f, 1.0f );
shaderManager.InitializeStockShaders();
// Load up a triangle
GLfloat vVerts[] = { -0.5f, 0.0f, 0.0f,
0.5f, 0.0f, 0.0f,
0.0f, 0.5f, 0.0f };
triangleBatch.Begin(GL_TRIANGLES, 3);
triangleBatch.CopyVertexData3f(vVerts);
triangleBatch.End();
}
///////////////////////////////////////////////////////////////////////////////
// Called to draw scene
void RenderScene(void)
{
// Clear the window with current clearing color
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
GLfloat vRed[] = { 1.0f, 0.0f, 0.0f, 1.0f };
shaderManager.UseStockShader(GLT_SHADER_IDENTITY, vRed);
triangleBatch.Draw();
// Perform the buffer swap to display back buffer
glutSwapBuffers();
}
///////////////////////////////////////////////////////////////////////////////
// Main entry point for GLUT based programs
int main(int argc, char* argv[])
{
gltSetWorkingDirectory(argv[0]);
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH | GLUT_STENCIL);
glutInitWindowSize(800, 600);
glutCreateWindow("Triangle");
glutReshapeFunc(ChangeSize);
glutDisplayFunc(RenderScene);
GLenum err = glewInit();
if (GLEW_OK != err) {
fprintf(stderr, "GLEW Error: %s\n", glewGetErrorString(err));
return 1;
}
SetupRC();
glutMainLoop();
return 0;
}
附:OpenGL超级宝典 第5版 中英文完整版 pdf 下载:
http://download.csdn.net/download/niehanmin/9433803
随书源码下载:
http://www.malagis.com/opengl-super-bible-5th-edition-pdf-download-with-source-code.html
我的环境
Win10 x64
Visual Studio 2015
所需工具:
下载请见文末下载链接。
搭建:
freeglut
打开 x:\x\freeglut-2.8.1\VisualStudio\2010\freeglut.sln 项目工程,
分别已Debug模式和Release模式运行。(只生成一个也可)
会在 x:\x\freeglut-2.8.1\lib\x86 目录下看到生成的 .dll 和 .lib 文件,其中请把 Debug目录 中的 .dll 和 .lib 文件加上 _d 以便以后区分。如图:
把 x:\x\freeglut-2.8.1\include\GL 文件夹下的 .h文件 复制到 x:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\GL 目录下,没有GL文件夹的要自己建。
把 x:\x\freeglut-2.8.1\lib\x86 文件夹下(以及Debug文件夹)的 .dll 文件复制到 C:\Windows\SysWOW64 目录(x86 复制到 System32目录下)。
把 x:\x\freeglut-2.8.1\lib\x86 文件夹下(以及Debug文件夹)的 .lib文件复制到 x:\x\Microsoft Visual Studio 10.0\VC\lib。
至此,freeglut搞定!
Glew
把 x:\x\glew-1.11.0\include\GL 文件夹下的.h文件复制到 x:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\GL 目录下。
把 x:\x\glew-1.11.0\lib\Release\Win32 文件夹下的 .lib文件复制到 x:\x\Microsoft Visual Studio 10.0\VC\lib 目录下。
把 x:\x\glew-1.11.0\bin\Release\Win32 文件夹下的 .dll文件复制到 C:\Windows\SysWOW64 目录下。
Glut
把 x:\x\glutdlls37beta 文件夹下的 .h文件 复制到 x:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\GL 目录下。
把 x:\x\glutdlls37beta 文件夹下的 .lib文件 复制到 x:\x\Microsoft Visual Studio 10.0\VC\lib 目录下。
把 x:\x\glutdlls37beta 文件夹下的 .dll文件 复制到 C:\Windows\SysWOW64 目录下。
构建GLTools库
新建一个gltools的win32项目工程,如图:
先编译一下,
把 x:\x\SB5\Src\GLTools\src 目录下的 .h文件(不包括glew.h文件)复制到 x:\x\gltools\gltools。
把 x:\x\SB5\Src\GLTools\include 目录下的 .cpp文件(不包括GL文件夹)复制到 x:\x\gltools\gltools。
分别在头文件和源文件上右键 添加->现有项 把 .h 和 .cpp 文件添加到项目。如图:
编译提示如下:
gltools.lib 文件生成成功。可以在 x:\x\gltools\Debug 目录下查看。
把 .lib文件 复制到 x:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib 文件夹下。
把 .h文件 复制到 x:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include 文件夹下(注意这次不是GL文件夹)。
到此gltools也OK了。
测试
我们使用书中给的例子来测试一下环境。
建立test的项目工程:
我们扔上使用上面三角形的例子,复制 x:\x\SB5\Src\Chapter01\Block 中的文件到 x:\x\test\test 文件夹下。同样在源文件上右键 添加->现有项 把Triangle.cpp文件包含进来。
添加附加依赖项:
效果如图如上
资源下载
360云盘下载地址:http://yunpan.cn/cAI56sdhc8iIF 提取码 8152