glfw+glad库和freeglut+glew glfw的区别

win10 64位专业版
vs2013、qt5.6.1(msvc2013)
cmake-3.6.1-win64
,本文使用Freeglut 3.0.0。
,本文使用glew 2.0.0。
编译freeglut
解压源码,将CMakeLists.txt拖入cmake,点击Configure,选择vs2013的编译器,然后修改下CMAKE_INSTALL_PREFIX(输出)的目录,在点击Generate。
用vs2013打开上一步构建出的sln文件,待项目加载就绪之后,点生成-批生成,勾选ALL_BUILD的Debug和Release,点击生成。待生成结束之后,将这两个勾取消掉,将INSTALL的Debug和Release勾选,点击生成,这样,编译好的所有文件就自动复制到上一步修改的输出目录。
用vs2013打开build-vc12-glew.sln。
点击生成-批生成,然后全选-生成。
vs2013引用库: 将GL文件夹搬至MSVC的包含目录,我的是“C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\GL”。将.lib库文件搬至MSVC的库目录,我的是“C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib”。将.dll文件搬至“C:\Windows\System32”和“C:\Windows\SysWOW64”。
或许不起作用,这时还是需要在项目属性中设置。(右键属性-&VC++目录-&包含目录/库目录
qt5.6.1(msvc2013)引用库:
TARGET = test
TEMPLATE = app
SOURCES += main.cpp
INCLUDEPATH += $$PWD/../freeglut/include
LIBS += -L$$PWD/../freeglut/lib
DESTDIR = $$PWD/../bin
win32:CONFIG(release, debug|release): {
LIBS += -lglut32 \
else:win32:CONFIG(debug, debug|release): {
LIBS += -lglut32d \
#include "stdafx.h"
#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("First GLUT Sample");
glutDisplayFunc(&myDisplay);
glutMainLoop();
OpenGL编程指南(原书第8版)中文高清晰版.pdf, 访问密码 226f
freeglut-3.0.0.tar.gz, 访问密码 8bd8
glew-2.0.0.zip, 访问密码 d66f
本文已收录于以下专栏:
相关文章推荐
环境:vs2015安装在C:\Program Files (x86)\Microsoft Visual Studio 14.0
  cmake:cmake version 3.8.2
目前使用环境:vs2017 rc+cmake3.8.0 rc+win10首先需要去github上把这个源码下载下来
/openglsuperbible/sb7co...
对比了蓝宝书,才知道红宝书的优点。
reflect函数的原理在红宝书中有说明,只有对比了红宝书,才知道红宝书的定位:高级工具书。
蓝宝书作为入门级书籍,以较快的速度让读者敲到代码去思考,总遗留了需要探...
OpenGL在VS2015上的配置(GLToolS,freeglut)—以蓝宝书第五版为例1、下载蓝宝书配套的完整源码。2、添加第一个实例代码,例如triangle。新建win32控制台程序空项目3、...
主要处理了纹理贴图和顶点映射的关系。根据法线先确认环绕方向。然后根据绘制的primitive_type完成纹理顶点直接的映射。哪里来,哪里回;根据法线来确认逆时针方向。strip的画法要熟悉,从其实的...
他的最新文章
讲师:汪剑
讲师:刘道宽
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)看了网上很多资料,讲的都不是很全,正好在学这一块,好好地总结一下吧
注:在windows中,对这些库的大小写是不作要求的
gl库是核心库,gl中包含了最基本的3D函数,可以再本地电脑中的: C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\gl 路径下找到gl.h头文件,打开后可以看到其中定义的上百个相关函数。
glu是实用库,包含有43个函数,函数名的前缀为glu。glu 为了减轻繁重的编程工作,glu对gl中的函数进行部分封装,glu函数通过调用核心库的函数,为开发者提供相对简单的用法,实现一些较为复杂的操作。如果算术好,在不使用glu库的情况下,使用gl库可以实现同样的效果。
gult:OpenGL工具库 OpenGL Utility Toolkit。 glut是基本的窗口界面,是独立于gl和glu的,如果不喜欢用glut可使用MFC和Win32窗口等代替。但是glut是跨平台的,这就保证了我们编出的程序具有跨平台性,而使用MFC或Win32只能在windows操作系统上使用。主要包括窗口操作函数,窗口初始化、窗口大小、窗口位置等函数;回调函数:响应刷新消息、键盘消息、鼠标消息等等。 这个头文件自动包含了gl.h和glu.h,编程时不必再次包含它们。
freeglut.h
各种教程和书里常见的是闭源的GLUT。但由于GLUT的作者已经很久没更新过了(最后更新于2000年!= =),所以其他人另外做了一个接口兼容GLUT的freeglut,开源而且一直在维护中。可以理解为glut的替代库。
GLUT或者FREEGLUT主要是1.0的基本函数功能;GLEW是使用OPENGL2.0之后的一个工具函数。不同的显卡公司,也会发布一些只有自家显卡才支 持的扩展函数,你要想用这数涵数,不得不去寻找最新的glext.h,有了GLEW扩展库,你就再也不用为找不到函数的接口而烦恼,因为GLEW能自动识别你的平台所支持的全部OpenGL高级扩展函数。也就是说,只要包含一个glew.h头文件,你就能使用gl,glu,glext,wgl,glx的全部函数。
GLFW无愧于其号称的lightweight的OpenGL框架,一个头文件,很少量的API,就完成了任务。GLFW的开发目的是用于替代glut的,从代码和功能上来看,我想它已经完全的完成了任务。它是一个轻量级的,开源的,跨平台的library。支持OpenGL及OpenGL ES,用来管理窗口,读取输入,处理事件等。因为OpenGL没有窗口管理的功能,所以很多热心的人写了工具来支持这些功能,比如早期的glut,现在的freeglut等。那么GLFW有何优势呢?glut太老了,最后一个版本还是90年代的。freeglut完全兼容glut,算是glut的代替品,功能齐全,但是bug太多。稳定性也不好(不是我说的啊),GLFW应运而生。并且glfw也是跨平台的~!
本文已收录于以下专栏:
相关文章推荐
openGL的两个库freeglut和glew的简单介绍
转自:/content/1297257.html
一、OpenGL
OpenGL函数库相关的API有核心库(gl),实用库(glu),辅助库(aux)、实用工...
促销价格 : 39.0
元 掌柜 : 易尔易服饰专营店 信用 :
30天累计售出 : 件
宝贝与描述相符 : 4.5低于2.27%
卖家的服务态度 : 4.6低于1.64%
卖家发货的速...
glew也是一个扩展库,包含了OpenGL中许多核心及扩展函数,现在的版本是1.7,支持OpenGL4.2,可以到这里下载:http://glew.sourceforge.net/
我的C/C++收集中心。
公司名称:常州福德自动化科技有限公司欧姆龙一级代理联 系 人:邹韬   商务合作:2 传真号码:1-88商 务 QQ:703188...
  在C/C++程序中使用OpenGL时,需要使用glew/glad这样的第三方库来加载OpenGL函数。不像一般的第三方lib,通过头文件,直接就能够找到函数的指针地...
GLEW是一个跨平台的C++扩展库,基于OpenGL图形接口。使用OpenGL的朋友都知道,window目前只支持OpenGL1.1的涵数,但 OpenGL现在都发展到2.0以上了,要使用这些Open...
他的最新文章
讲师:汪剑
讲师:刘道宽
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)【安装】OpenGL 安装
Reference:
首先弄清楚,自己电脑上的OpenGL的GL.h, GLU.h在什么位置,然后才方便存放后续相关的文件。因为电脑上可能有很多个版本的VS,且有多处安装相关的文件夹,要找到当前使用VS版本的GL.h的一个快捷方式就是,在VS内尝试输入 #include &GL/GL.h&,然后就能根据提示找到此VS默认的GL.h在哪里。本人使用的是VS2015,其GL.h就在&C:\Program
Files (x86)\Windows Kits\8.1\Include\um\gl 路径下。
【FreeGLUT 安装】
下载FreeGLUT,而后:
【1】头文件
将FreeGLUT\freeglut-MSVC-3.0.0-2.mp\freeglut\include\GL下的所有.h文件复制到&C:\Program Files (x86)\Windows Kits\8.1\Include\um\
【2】.lib文件
将FreeGLUT\freeglut-MSVC-3.0.0-2.mp\freeglut\lib\x64下的freeglut.lib文件复制到C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x64
【3】.dll文件
将FreeGLUT\freeglut-MSVC-3.0.0-2.mp\freeglut\bin\x64下的freeglut.dll文件复制C:\Windows\System32。
【4】VS配置
在工程的linker/input/附加依赖项中增加:&opengl32.freeglut.
【GLEW 安装】
下载GLEW,而后:
【1】头文件
将D:\Software\GLEW\glew-1.13.0-win32\glew-1.13.0\include\GL下的所有.h文件复制到&C:\Program Files (x86)\Windows Kits\8.1\Include\um\
【2】.lib文件
将D:\Software\GLEW\glew-1.13.0-win32\glew-1.13.0\lib\Release\x64下的glew32.lib文件复制到C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x64
【3】.dll文件
将D:\Software\GLEW\glew-1.13.0-win32\glew-1.13.0\bin\Release\x64下的glew32.dll文件复制C:\Windows\System32。
【4】VS配置
在工程的linker/input/附加依赖项中增加:&glew32.
【Notice】
在OpenGL程序中包含glut和glew时,要注意先后顺序,尤其要把glew放在前面。
#include &GL/glew.h&
#include &GL/glut.h&问题可参考:
本文已收录于以下专栏:
相关文章推荐
简要介绍使用VS2015编译FreeGLUT和GLEW。
OpenGL的环境配置了好几次都没有成功。
今天,终于试好了,于是分享出来,让其他人能少走弯路。
1.方法(下载各种库文件)
第二,glut库很便于openGL编程,去这里下载:点我下载glut库,解...
今天用 360
更新软件的时候,莫名把我C盘全部弄乱了 ,我要杀了360这个婊砸。 
突然我QQ掉线,微信掉线,直至点开快捷方式提示我该文件不存在,我就知道情况不好了。
QQ、微信、Teamvie...
今天在Windows8.1系统中新安装了VS2008,sp1补丁也一起安装了。
然后下载了一个开源项目,编译的时候居然提示:无法打开包括文件:windows.h,
经过检查,C盘中C:\Program...
按照教程:
找不到头文件&GL\glew.h&
FreeGLUT库和GLEW库的安装:
把FreeGLUT库的.h文件(有4个:freeglut.h、freeglut_ext.h、freeglut_...
今天花了几个小时倒腾了下OpenGL的环境配置,现在整理下,在这里记录下来,方便读者和自己,避免在安装环境配置出现一些不必要的麻烦
开发工具:
2.freeglut
大家可以直接在S...
首先编译库,这两个库都有32位和64位版本,并且都发布了静态库版本,使用静态库就不用再调用dll了
glew32s.lib
glew32mxs.lib(多窗口多线程版本)
freeglut_stat...
他的最新文章
讲师:汪剑
讲师:刘道宽
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)上篇文章介绍到Photon服务器部署本文在上一篇博文的基础上继续介绍使用Unity3d游戏客户端与Photon Server数据通信打开Unity3d2017,新建项目,在Asset目录下新建Plugins文件夹找到Photon SDK目录下的lib文件PhotonUnity3D.dll文件,将其拖动到Unity Plugins目录下新建一个脚本,这里我命名为GamContext,将其挂载到场景空...
游戏服务器端框架----PhotonServer开发工具:Unity3d2017、VS2017、PhotonServer SDK首先到官网下载其SDK,下载地址服务器部署将下载下来的SDK解压目录结构如下deploy:部署程序doc:文档lib:存放类库,在接下来的客户端(Unity3d)和服务器端开发需要引用到src-server:Demo源码接下来开始部署自己的游戏服务器打开VS,新建类库在项...
博客地址:.cn写在前面游戏中的各个武器一套攻击动作有固定的步骤,但是每个步骤根据武器对象的不同,而细节的实现不同此时使用模板方法定义一个操作中的方式/算法的骨架,意思就是说在父类里定义一个完成该事情的总步骤每个步骤的具体实现,由子类完成实现,不同子类的实现方式/算法不尽相同模板方法定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不...
博客地址:.cn写在前面在游戏中计算各个觉得的攻击值、防御值时,由于各个角色的职业不同,攻击值和防御值计算算法就会不一样通常使用if....else语句来抉择不同类型之间的算法将带来程序复杂和难以维持,当有新的算法或行为时违背开闭原则策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来。委托给不同的对象管理。模式角色环境类:对策略进行二次封装,目的是...
通过key值获取value值方法想必大家都知道private void GetDicValueByKey()
Dictionary dic = new Dictionary();
dic.Add(&1&, &1&);
dic.Add(&2&, &2&);
dic.Add(&3&,...
写在前面在游戏中的角色和武器,往往一个角色可以装换多种武器,武器也拥有诸多类型当角色需要配备不同武器时候,需要修改角色类,使其配备另外的武器对象这样造成对象与对象之间耦合性高,并且不容易扩展使用桥接模式,将抽象与实现分离,使它们都可以独立地变化案例分析在各个帮派角色中,可以使用倚天剑和屠龙刀,当角色需要切换不同武器时候,就要大量的修改角色类来调用另外的武器使用桥接模式,将抽象与实现分离代码编写角色...
本文实现一个在无需使用Command模式和Momento模式下实现撤销、重做功能源码下载地址:点击打开链接先展示下效果图使用栈方式,将各个操作的撤销/恢复操作存储下来当执行undo和redo操作时,执行栈里面的撤销/恢复操作Demo操作实现using UndoM
using UnityE
public class MyText : MonoBehaviour
上篇文章讲到外观模式,在外界管理各个子系统时,使用外观模式减少与内部多个子系统模块进行交互,从而降低应用程序的复杂度。
本文介绍另外一种设计模式--------中介者模式(又称调停者模式)
当我们的多个系统模块之间会有通信,如果系统之间杂乱无章的进行通信数据交互的话,耦合性很高,不容易维护。
中介者模式就是解决这种情况,定义一个中介对象来封装系列对象之间的交互。中介者使各个对象不...
在游戏中一个场景可能需要与多个系统进行信息交互,比如战斗系统,背包系统,经济系统等
在编写代码时候势必要将各个系统之间的通信和依赖降低到尽可能的小
这时候适合使用外观模式,将应用程序只能看到外观(facade)对象,不必理会内部的细节对象,从而降低应用程序的复杂度,提高应用程序的可维护性
外观模式整理后
这样让外部减少与子系统内多个模块的交互,松散耦...
这系列文章博主将介绍给大家游戏中常用的设计模式
文章并不是纯粹的讲一大堆理论抽象的内容,重点也不再这里。
其实设计模式如果大家编写阅读的代码量多的话,自然而然的自己有意思地使用到了。
只是没有这么那种系统的意识,所以这系列文章通过一个Unity3d游戏实例让大家感受什么设计模式,设计模式的作用。
本文介绍给大家的单例模式以及状态模式
在游戏角色的各个战斗状态(idle,att...
在上一篇文章中博主介绍了freeglut+glew的环境配置,本文介绍glfw+glad的环境配置
本系列教程将使用本文的opengl开发库
glfw源码:源码地址
CMake(将源码生成自己想要的IDE工程):下载地址
glad:点击打开链接
当然了,这些源码文件包括本文的工程代码我都将上次,方便大家学习
首先需要生成glfw 库文件
今天花了几个小时倒腾了下OpenGL的环境配置,现在整理下,在这里记录下来,方便读者和自己,避免在安装环境配置出现一些不必要的麻烦
开发工具:
2.freeglut
大家可以直接在SourceForge上下载源码进行编译出库文件,目前版本是3.0.0,编译教程点击打开链接
本文使用的是已经打包好的freeglut的文件,文件下载地址点击打开链接
接口隔离原则(Interface Segregation Principle,ISP)
使用多个专门接口来取代一个统一的接口,
一个接口不需要提供太多的行为,一个接口应该只提供一种对外的功能,不应该把所有的操作都封装到一个接口中。
接口隔离原则核心:不应该强迫客户端程序依赖他们 不需要的使用方法
接口隔离原则实例:
比如一个系统中有一个大的接口,这个接口包含了GameobjectA、Ga...
开闭原则(Open-Closed Principle,OCP)
开闭原则是这七大设计原则中最常见、最基本的
开闭原则定义:软件实体对扩展是开放的,但对修改是关闭的。意思就是说在不修改软件实体的基础上去扩展其他功能。
开闭原则实例:
比如实现一个绘制图线的功能
设计方案如下图所示
用户类中直接调用画直线类,但是如果有一个新需求,要求我们画斜线或者曲线的话,这时就需要修改画直线类中...
在有些情况下,有很多列表不能一次性显示完整,需要对其进行分页处理
我自己也写了一个分页系统,在这里记录下来,方便以后直接拿来使用
这篇文章Demo也将上传给大家下载参考:
先展示下效果图:
·效果图一
·效果图二
总的来说,要考虑到的逻辑情况还是有点的
工程目录结构如下图:
在每个UIPage下有一个Image框,用来编辑当前是那一页,默认activa...
最近的项目中,想做到一种能够吸引眼球的一种角色选择浏览效果
最后最终实现了下按如下图这么一种浏览效果:
·效果图一
·效果图二
可能要实现这么一种效果用动画插件会很快,但总感觉有点大材小用
这里我向大家分享一个极简方式来实现这么一种效果
目录结构如下
其中Items有4个Image子节点
在父节点Items下添加如下图横向布局组件...
最近在一个新项目中需要使用Robotlegs这套框架来重构代码
博主学习了下这套开源框架,还是很容易上手的
源码下载地址点击打开链接
博主学习了这套框架后也写了一个Demo
本文内容是围绕这个Demo来写的,大家可以下载参考Demo来学习点击打开链接
using System.C
using System.Collections.G
在Unity中有个Mask遮罩逐渐,使用这个组件也可以实现遮罩效果
但是我在使用Unity自带的圆形图片时候效果如下:
可能是由于遮罩图片的像素问题导致的,大家可以尝试更换一张像素大点的遮罩图片,在这里我就不试验了
本文博主在给大家介绍的的编写Shader达到这么一种效果
实现原理:
计算将圆形以外的顶点的Aphla透明图改为0
代码如下:
Shader &L...
实现原理:
按纹理映射方式先获取纹理坐标上的像素颜色值,由于颜色值范围在[0,1],法线值为[-1,1],可以使用UnpackNormal函数获取法线值
这里需要注意的是获取的法线值是在切线空间下的值,在使用漫反射公式时,直射光也需要统一转化为在切线坐标下
代码如下:
Shader &LJL/06-Normal&
Properties
使用Unity有一段时间了,越来越发现shader的重要性,之前也有一篇文章提了编写shader基本语法
最近重操旧业,准备继续深入学习shader
漫反射效果
漫反射几何计算公式:
Diffuse = 直射光颜色 * max(0,cos夹角(光和法线的夹角) )    Tip:cosθ = 光方向· 法线方向
代码如下:
Shader &LJL/02_DiffuseVer...
访问:98266次
积分:2029
积分:2029
排名:千里之外
原创:99篇
评论:29条
文章:55篇
阅读:75436
(2)(3)(7)(5)(8)(16)(9)(1)(7)(14)(10)(11)(5)原著:http://lemonc.me/opengl-win10-vs2015-setting.html
以下內容經修改及增加許多細節
如今科技界已經讓 &VR(虛擬實境)、AR(增強現實),3D列印等概念深入人心,其實這些火遍大江南北的概念背後,都與「電腦圖形學」這門學科的有著很大聯繫。但想要入門或學習電腦圖形學方面的程式設計,前期都需要花費一定的時間進行環境配置。圖形學程式設計環境的搭建,即使對於有程式設計經驗的人來說,雖然不難,但也會感到比較繁瑣,而且往往圖形學專案都會涉及到很多工具和庫。而電腦圖形學方面的程式設計,必不可少地會涉及到
OpenGL的全稱是&OpenGraphics Library&,以下是引用自&&的一段介紹:
OpenGL is the premier environment fordeveloping portable, interactive 2D and 3D graphics applications. Since itsintroduction in 1992, OpenGL
has become the industry's most widely used andsupported 2D and 3D graphics application programming interface (API), bringingthousands of applications to a wide variety of computer platforms.
簡單來說,OpenGL就是一個功能強大、支持多個平臺、用於二維和三維圖形的底層圖形庫。
所以,為了讓大家更簡單地接觸&OpenGL程式設計,這篇文章將從零開始介紹搭建一個
OpenGL程式設計環境的過程,並給出背後的一些相關概念。考慮到讓這篇文章能在未來也保持一定的普適性和時效性,便選擇了已逐漸成為主流的&&作業系統,以及&&+&&+&&的工具組合。
下面將會分別簡單介紹這幾個工具。
Visual Studio Community 2015
微軟為了促進 Windows 10的生態環境,決定將之前售價高昂的 Visual
Studio開發工具最大限度地 “免費”提供給單個開發人員、開源專案、科研、教育以及小型專業團隊!從
VS 2013開始便推出了一個全新的「社區版」,也就是 Community版本。Community版本與以前免費的
Express版本相比,相當於集成了多個針對不同平臺的&Express版本,而且具有更多的功能和特性。Community版本的用戶能使用各種優秀強大的外掛程式,但
Express版本的用戶卻無法享用,因此更建議使用 Community版本。
GLUT的全稱為 OpenGLUtility Tookit。最初
Mark Kilgard為了使 OpenGL應用程式結構能夠真正獨立於視窗系統而構思了 GLUT庫。但由於
GLUT庫很早就已經不再維護更新,便誕生了與 GLUT庫相容的開源實現版本 FreeGLUT。FreeGLUT庫主要用來創建視窗,初始化
OpenGL的環境,管理使用者滑鼠、鍵盤的輸入,以及讓 OpenGL程式變得簡單和提升可攜性。
GLEW的全稱為 The OpenGLExtension Wrangler Library,是一個基於
OpenGL、跨平臺、開源的 C++擴展庫。GLEW提供了有效的運行機制,以尋找和識別你的平臺所支援的全部
OpenGL高級擴展函數。也就是說,只要包含一個 glew.h標頭檔,你就能使用以 gl、glu、glext等開頭的全部函數。GLEW已被測試能支援目前流行的各種作業系統,包括
Windows、Linux、Mac OS X、FreeBSD、Irix和
值得一提的是,由於微軟希望推廣自己的 DirectX,在 Windows 中僅支持到最簡單的 OpenGL 1.1 版本。但最新的 OpenGL 現在都已發展到 4.0 以上了,若要用到一些 OpenGL 的高級特性,就必須更新 OpenGL。另外,不同的顯卡公司,也會發佈各自顯卡的擴展函數,為了調用這些函數,不得不去尋找最新的
glext.h。但有了 GLEW ,具有自動識別的封裝使得&OpenGL 中的高級函數可以被方便地調用。
GLM的全稱為OpenGL
Mathematics,是一個為OpenGL寫的數學運算庫,非常好用,將GLSL語言里好用的向量、矩陣等都在C語言下實现了。而且不依赖其他包,直接下载頭文件即可使用。
接下来将给出在&Windows 平台下,搭建最常用 OpenGL 编程环境的详细过程。
1.&VS Community 2015 下载
(1)打开网址&
(2)选择 Visual Studio 2015,勾选 ISO,点击下载。
2.&VS Community 2015 安装
(1)打开 _chs.iso。
(2)最好选择在默认的安装位置,并勾选自定义,点击下一步。
(3)这里需要勾选上编程语言中的“ Visual C++”,其余根据各自的需求勾选,并点击下一步,直到开始安装。
(4)安装完成。若安装过程中出现“Team Explorer for Visual Studio 2015”的错误,可能是由于多个版本&的&Visual C++ Redistributable 所致。但只需控制面板中对 Visual Stuidio Community
2015 点击“更&改”,并选择修复,即可继续安装直到完成。
3. FreeGLUT&库编译
(1)打开网址&
(2)选择 Freeglut 2.8.1 版本下载。
(3)解压后得到 freeglut-2.8.1 文件,进入 VisualStudio,选择版本 2012,打开解决方案 freeglut.sln。
(4)初次打开 Visual Studio 的话,开发设置选择 Visual C++。
(5)对所有由 Visual Studio&2012创 建的 FreeGLUT 项目,点击“确认”升级 VC++ 编译器和库,以支持 Visual&Studio 2015 的编译。
(6)选择 Release 版本,打开“生成”菜单,点击“生成解决方案”,分別對Win32 及 x64 進行編譯。
(7)编译成功后,返回到 freeglut-2.8.1 根目录,将 include 下的 GL 文件夹复制到自訂的文件夾下(例如:&D:\Program Files\opengl\build\include)。
(8)返回到 freeglut-2.8.1 目录,把 lib\x86 里面的 freeglut.lib 复制到自訂的文件夾下(例如:D:\Program&Files\opengl\build\x86\lib)。
(9)返回到
freeglut-2.8.1 目录,把 lib\x64 里面的 freeglut.lib 复制到自訂的文件夾下(例如:D:\Program&Files\opengl\build\x64\lib)。
(10)把 lib\x86 里面的 freeglut.dll 复制到自訂的文件夾下(例如:D:\Program
Files\opengl\build\x86\bin)。
lib\x64 里面的 freeglut.dll 复制到自訂的文件夾下(例如:D:\Program
Files\opengl\build\x64\bin)。
至此,FreeGLUT 库的配置就完成了!
其实添加这类第三方库文件一般有两种方式,一种便是上述提到的将与库相关的 include,lib 和 DLL 文件复制到 VS 的程序目录和系统目录或自訂程序目錄,这样通过默认的路径就能找到所需的文件。而另一种则是将库相关的文件放到项目自建的一个文件夹下,然后通过 VS 配置项目的附加目录,从而找到所需的库文件。这种方式的好处是,当前的项目会更具有可移植性,即使在没配置好第三方库的电脑,也可以直接运行项目程序。然而,从操作简便性的角度上看,第一种更适合当前的学习环境,配置了一次后,接下来新的
OpenGL 项目都无需再进行环境配置。
4. GLEW 库编译
(1)打开网址&
(2)选择 2.0.0 版本源代码 ZIP 格式压缩包,对库进行编译(若选择下方针对 Windows 平台已编译好的库文件,&则可以跳过编译阶段。但为了兼容稳定性,推荐下载源代码后再编译得到库文件)。
(3)解压后进入 glew-2.0.0 文件夹。在 build 文件夹中选择 vc10 (vc12作者無法開啟),打开 glew.sln 解决方案。
(4)下面与配置 FreeGLUT 的过程类似。会提示对由更低版本&VS&创建的 GLEW 项目进行升级,点击“确认”升级&VC++ 编译器和库,以支持&VS&2015 的编译。
(5)选择 Release 版本,打开“生成”菜单,点击“生成解决方案”,分別對Win32
及 x64 進行編譯。
(6)编译成功后,返回到 glew-2.0.0 根目录,将 include\GL下的標頭檔整个复制到自訂的文件夾下(例如:&D:\Program
Files\opengl\build\include\GL),與freeglut的標頭檔一同放在同一個資料夾下。
(7)返回 glew-2.0.0 目录,把 lib\Release\Win32中的glew32.lib 复制到自訂的文件夾下(例如:D:\Program&&Files\opengl\build\x86\lib),與freeglut的lib檔一同放在同一個資料夾下。
(8)返回 glew-2.0.0 目录,把 lib\Release\x64中的glew32.lib 复制到自訂的文件夾下(例如:D:\Program&&Files\opengl\build\x64\lib),與freeglut的lib檔一同放在同一個資料夾下。
glew-2.0.0 目录,把
bin\Release\Win32&中的&glew32.dll&复制到自訂的文件夾下(例如:&D:\Program&Files\opengl\build\x86\bin),與freeglut的dll檔一同放在同一個資料夾下。
(10)返回
glew-2.0.0 目录,把&bin\Release\x64&中的&glew32.dll&复制到自訂的文件夾下(例如:&D:\Program&Files\opengl\build\x64\bin),與freeglut的dll檔一同放在同一個資料夾下。
至此,GLEW 库的配置就完成了!
5. GLM 库配置
(1)打开网址&
(2)选择Download轉至github網頁,選擇最新版本的glm下載(0.9.8.4)。
(3)解压后进入 glm 文件夹,将 glm-0.9.8.4\glm下的glm資料夾整个复制到自訂的文件夾下(例如: D:\Program Files\opengl\build\include),與GL資料夾放在同一個資料夾下。
至此,GLM库的配置就完成了!
若以上步驟有誤,可考慮直接下載資源:
6. 修改環境變量
選擇電腦(計算機),右键属性>高级系统设置>环境变量>系统变量>Path>編輯>新增x86及x64bin分別所在的路徑,例如:D:\Program Files\opengl\build\x86\bin 及 D:\Program Files\opengl\build\x64\bin&。新增完即可按確認並退出,為了確保後續測試不會有問題,可先重新開機在進行後續配置。
7. 包含庫及庫目錄配置
開啟Visual Studio 2015
(1)新建项目,选择即空项目,为项目命名为 Test。
(2)在源文件中单击右键,选择添加新建项。
(3)添加命名为 test.cpp 的 cpp 文件。
(4)点击 视图&其他窗口&属性管理器
(5)接下來即會出現"属性管理器"的窗口,点开工程文件Test,下边会有一个Debug
| Win32的文件夹,点开來 &後下方會出現有名为"Microsoft.Cpp.Win32.user"的文件,點擊進入
(6)选择 通用属性>VC++目录>包含目录,添加自訂的include目錄路径:
&D:\Program Files\opengl\build\include
(7)选择 通用属性>VC++目录>庫目录,添加自訂的庫目錄路径:
&D:\Program Files\opengl\build\x86\lib
(8)选择 链接器&输入&附加依赖项,添加文件庫名稱(即庫目錄下的文件名稱):
freeglut.lib
glew32.lib
(9)配置完成後即可按確定,並依樣畫葫蘆地對Release | x64文件夹的"Microsoft.Cpp.x64.user"進行配置:
include目錄路径: D:\Program Files\opengl\build\include
庫目錄路径:D:\Program Files\opengl\build\x64\lib
文件庫名稱:freeglut.lib;glew32.lib
8.&编译第一个OpenGL 应用程序
最后,通过编译OpenGL 应用程序以测试环境配置是否成功。
(1)将以下代码添加入 test.cpp 文件中:
#include &GL/glew.h&
#include &GL/freeglut.h&
void displayFunction()
glClear(GL_COLOR_BUFFER_BIT);
glRectf(-0.5, -0.5, 0.5, 0.5);
glColor3f(0, 1, 0);
glFlush();
int main(int argc,char *argv[])
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowSize(600, 600);
glutCreateWindow(&The first OpenGL Application&);
glewExperimental =
glewInit();
printf(&OpenGL version: (%s)\n&,glGetString(GL_VERSION));
glutDisplayFunc(&displayFunction);
glutMainLoop();
(2)分別選擇&Debug Win32 及&Release x64,並点击“本地 Window 调试器”,生成并运行程序。
若能编译成功,并显示出带有绿色正方形的窗口和输出 OpenGL 版本号,则代表 OpenGL 环境配置完成!
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:722次
排名:千里之外
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'

我要回帖

更多关于 glfw为什么要用glad 的文章

 

随机推荐