VS之glut freeglut GLtools glew等 配置教程

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个文件

《VS之glut freeglut GLtools glew等 配置教程》

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文件 

《VS之glut freeglut GLtools glew等 配置教程》

5、建立一个新的 OpenGL工程 这里以 VisualStudio2010为例。 选择 File->New->Project,然后选择Win32 Console Application ,名字TestOpenGL,然后按 OK。 在谈出的对话框左边点 Application Settings,找到 Empty project(空项目,不需要点击预编译头)并勾上,选择 Finish。 然后向该工程添加一个代码文件,选择cpp文件起一个名字确定即可。

第一个OpenGL程序 一个简单的 OpenGL程序如下:(注意,如果需要编译并运行,需要正确安装 GLUT,安装方法如上所述)

#include <gl/glut.h>

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;

}

《VS之glut freeglut GLtools glew等 配置教程》

2.vs2010与freeglut

1.首先下载freeglut 
http://nchc.dl.sourceforge.net/project/freeglut/freeglut/2.8.0/freeglut-2.8.0.tar.gz 
解压完后如图所示: 

《VS之glut freeglut GLtools glew等 配置教程》

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文件夹

《VS之glut freeglut GLtools glew等 配置教程》

退回到 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/ 
解压后如图所示: 

《VS之glut freeglut GLtools glew等 配置教程》

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 <gl/glut.h>

 #include <gl/glew.h>

4.vs2010与gltools

下载可上CSDN上搜索,也可以在评论区留下您的邮箱,我会尽快通过邮箱分享给您。

下载完成后解压文件,如图所示: 

《VS之glut freeglut GLtools glew等 配置教程》

配置方法与之前的方法一样 将.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 <GLTools.h>            // OpenGL toolkit
#include <GLShaderManager.h>    // Shader Manager Class

#ifdef __APPLE__
#include <glut/glut.h>          // OS X version of GLUT
#else
#define FREEGLUT_STATIC
#include <GL/glut.h>            // Windows FreeGlut equivalent
#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;
 }

《VS之glut freeglut GLtools glew等 配置教程》

附: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

所需工具:

《VS之glut freeglut GLtools glew等 配置教程》

下载请见文末下载链接

搭建:

freeglut

打开 x:\x\freeglut-2.8.1\VisualStudio\2010\freeglut.sln 项目工程,

《VS之glut freeglut GLtools glew等 配置教程》

分别已Debug模式和Release模式运行。(只生成一个也可)

会在 x:\x\freeglut-2.8.1\lib\x86 目录下看到生成的 .dll 和 .lib 文件,其中请把 Debug目录 中的 .dll 和 .lib 文件加上 _d 以便以后区分。如图:

《VS之glut freeglut GLtools glew等 配置教程》

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库

新建一个gltoolswin32项目工程,如图:

《VS之glut freeglut GLtools glew等 配置教程》

《VS之glut freeglut GLtools glew等 配置教程》

先编译一下,

把 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 文件添加到项目。如图:

《VS之glut freeglut GLtools glew等 配置教程》

编译提示如下:

《VS之glut freeglut GLtools glew等 配置教程》

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文件夹)。

到此gltoolsOK了。

测试

我们使用书中给的例子来测试一下环境。

建立test的项目工程:

《VS之glut freeglut GLtools glew等 配置教程》

《VS之glut freeglut GLtools glew等 配置教程》

我们扔上使用上面三角形的例子,复制 x:\x\SB5\Src\Chapter01\Block 中的文件到 x:\x\test\test 文件夹下。同样在源文件上右键 添加->现有项 把Triangle.cpp文件包含进来。

添加附加依赖项

《VS之glut freeglut GLtools glew等 配置教程》

效果如图如上

资源下载

360云盘下载地址:http://yunpan.cn/cAI56sdhc8iIF  提取码 8152

    原文作者:peAlonge
    原文地址: https://www.jianshu.com/p/b49fd7fe8b5c
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞