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个文件
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 <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;
}
![](http://upload-images.jianshu.io/upload_images/2160020-1bd0f2c7ed9e90d3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
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 <gl/glut.h>
#include <gl/glew.h>
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 <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;
}
附: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
所需工具:
![](http://upload-images.jianshu.io/upload_images/2160020-5a946fc22fc7e42d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
下载请见文末下载链接。
搭建:
freeglut
打开 x:\x\freeglut-2.8.1\VisualStudio\2010\freeglut.sln 项目工程,
![](http://upload-images.jianshu.io/upload_images/2160020-2ad54b99c8354c91.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
分别已Debug模式和Release模式运行。(只生成一个也可)
会在 x:\x\freeglut-2.8.1\lib\x86 目录下看到生成的 .dll 和 .lib 文件,其中请把 Debug目录 中的 .dll 和 .lib 文件加上 _d 以便以后区分。如图:
![](http://upload-images.jianshu.io/upload_images/2160020-92d35b8998476b6e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
把 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项目工程,如图:
![](http://upload-images.jianshu.io/upload_images/2160020-f7a3daa25337cca6.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/2160020-13d05f5ead0d374c.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
先编译一下,
把 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 文件添加到项目。如图:
![](http://upload-images.jianshu.io/upload_images/2160020-c3ce2c77e99b130b.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
编译提示如下:
![](http://upload-images.jianshu.io/upload_images/2160020-7c9ec880523f254a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
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的项目工程:
![](http://upload-images.jianshu.io/upload_images/2160020-f43ef46b1bca9a0e.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/2160020-ea1afa0aed5f2cd4.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
我们扔上使用上面三角形的例子,复制 x:\x\SB5\Src\Chapter01\Block 中的文件到 x:\x\test\test 文件夹下。同样在源文件上右键 添加->现有项 把Triangle.cpp文件包含进来。
添加附加依赖项:
![](http://upload-images.jianshu.io/upload_images/2160020-2a6802c6fc8fcbae.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
效果如图如上
资源下载
360云盘下载地址:http://yunpan.cn/cAI56sdhc8iIF 提取码 8152
VS下glut freeglut GLtools glew等 配置教程相关推荐
- VS2010 与 glut freeglut GLtools glew等 配置教程
freeglut 与 glut的差别: [源自百度百科] freeglut是GLUT [注1]的一个完全开源替代库. GLUT最初是<OpenGL红皮书(第二版)>[注2]中的示例程序.自 ...
- Freeglut和Glew的配置
1.下载Freeglut Freeglut3.0版本: http://www.transmissionzero.co.uk/software/freeglut-devel/ http://downlo ...
- GLUT, freeGLUT, GLFW, GLEW, GLAD 关系与区别
GLUT:(来自百科)(OpenGL Utility Toolkit)是一个处理OpenGL程式的工具库,负责处理和底层操作系统的呼叫以及I/O. 是专为构建中小型OpenGL程序.虽然GLUT是适合 ...
- OpenGL 各类库的解析 gl/glu/glut/freeglut/glfw/glew
看了网上很多资料,讲的都不是很全,正好在学这一块,好好地总结一下吧 注:在windows中,对这些库的大小写是不作要求的 gl.h gl库是核心库,gl中包含了最基本的3D函数,可以再本地电脑中的: ...
- OpenGL 各类库的解析gl glu glut freeglut glfw glew
gl.h gl库是核心库,gl中包含了最基本的3D函数,可以再本地电脑中的: C:\Program Files (x86)\MicrosoftSDKs\Windows\v7.0A\Include\gl ...
- Linux下的GitHub安装与简单配置教程
1.GitHub简介 Git是一个分布式版本控制系统,与其相对的是CVS.SVN等集中式的版本控制系统. 2.Git的安装 1)安装Git a.查看与使用 在ubuntu下可以使用如下命令进行查看系统 ...
- Win10下Python3.x环境安装和配置教程
Window10下Python环境安装 1. 下载Python的安装包 打开浏览器访问https://www.python.org/downloads/windows/ . 此步骤完成,本地以下载好p ...
- win10环境下Android SDK下载安装及配置教程
最近在配置Android环境时,发现网上许多教程都是在win7版本下进行配置的且存在许多问题,按照流程无法正确配置环境,因此我在收集网上资料及亲自配置成功的情况下,写出此文章.如有无法配置成功的话,欢 ...
- win10环境下Android SDK下载安装及配置教程----Android SDK安装
接着上一篇文章,这个章节主要是安装Android SDK和配置Android SDK环境 1.下载并安装Android SDK 下载Android SDK Tools,可以选择去我的百度网盘上下载(链 ...
最新文章
- 如何使用OpenCV和Socket进行视频聊天?
- Nature子刊:利用转细菌基因植物修复土壤有毒污染物!
- 重大合同实为旧事 数据港信披被上交所问询
- 青龙羊毛——去趟转(搬运,非原创)
- Vim设置括号自动补全和快速跳出
- 【数字信号处理】相关函数 ( 功率信号 | 功率信号的互相关函数 | 功率信号的自相关函数 )
- 【zepto学习笔记01】核心方法$()
- java全局机制,java实现全局异常机制
- bash初识,shell的基础语法及基本特性
- 开始用Flutter做游戏吧
- Linux技术进阶示意图
- CSS:布局——左右两个DIV,左侧宽度固定,右侧占满剩余部分
- Scrapy爬取QQ音乐、评论、下载、歌曲、歌词
- WiFi 的认证方法
- 计算机表格两行互换步骤,表格excel数据互换位置-EXcel表格中,怎么把两行互换...
- Win2008 Server R2 服务器拒绝共享访问
- 我的2015—跌宕与破晓
- 黑马SQL入门到精通笔记 —— 进阶篇
- PowerDesigner创始人的个人成长经历
- Logistic回归-数学原理(1)机器学习实战
热门文章
- Java匿名内部类方法调用
- R语言使用table函数统计dataframe数据中的离散变量(分类变量、因子变量)数据列的每一种水平的统计计数
- usb_cam的ROS2甜点
- 计算机控制的节能路灯系统,LED路灯节能控制系统的设计与应用
- Centos7 安装 OpenStack 遇到过的错误
- 7、android 高级控件(1)(下拉列表)
- JavaScript中string与number
- “forEach” is not a function
- GO:切片Slice的概念,使用及线程安全性
- oracle数据库dbmon授权,Oracle数据库监控软件 MyDBMon 工具 下载 系统