OpenGL学习进程(2)OpenGL开发环境的搭建
通过本节,我们来学习一下在Win10 64、VS1013环境下搭建OpenGL的开发环境。
(1)选择一个编译环境:
现在在windows中OpenGL的主流编译工具有Visual Studio,Broland C++ Builder,Dev C++等,我们选择Visual Studio2013作为开发环境。
(2)用到的资源:
我们使用了GLEW,freeglut以及GLTools这三个库。下面是它们的简介:
1)GLEW:
The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source C/C++ extension loading library. GLEW provides efficient run-time mechanisms for determining which OpenGL extensions are supported on the target platform. OpenGL core and extension functionality is exposed in a single header file. GLEW has been tested on a variety of operating systems, including Windows, Linux, Mac OS X, FreeBSD, Irix, and Solaris.
GLEW是一个跨平台的OpenGL的扩展库,支持多个操作系统。
2)freeglut:
FreeGLUT is a free-software/open-source alternative to the OpenGL Utility Toolkit (GLUT) library。(FreeGLUT是一个免费软件/开源替代OpenGL实用工具包(GLUT)库。)
3)GLTools:
主要是为了获得这个项目编译后的gltools.lib文件。
(3)开发环境的配置:
1)下载文件:
| 文件名 | 我的文件 | 官网下载 |
| 1.GLEW | http://files.cnblogs.com/files/MenAngel/glew-1.7.0-win64.zip | http://glew.sourceforge.net/ |
| 2.freeglut需编译包(不用不行) | http://files.cnblogs.com/files/MenAngel/freeglut-3.0.0.tar.gz | http://freeglut.sourceforge.net/ |
| 3.GLTools需编译包(不用也行) | http://files.cnblogs.com/files/MenAngel/GLTools-master.zip | https://codeload.github.com/HazimGazov/GLTools/zip/master |
| 4.freeglut(只有freeglut.lib和.dll) | http://files.cnblogs.com/files/MenAngel/freeglut_2.8.0.zip | http://download.csdn.net/detail/wocaowogannimei/8082851 |
| 5.GL和GLTools.lib包 | http://files.cnblogs.com/files/MenAngel/GL%E5%92%8Cgltools.dll.lib.7z |
自定义包:GL可直接用,而且还包含GLTools.lib |
2)解压后将得到的文件分别进行配置:
处理glew:
include文件夹下是头文件,将位于include文件夹下的GL文件夹复制到"Visual Studio 2013安装目录\VC\include" 下;
lib文件夹下的文件复制到"Visual Studio 2013安装目录\VC\lib";
bin文件夹下的文件复制到C:\Windows\SysWOW64;(32位的系统放在System32)
处理GLTools
对于GLTools,主要是获得GLTools.lib文件, 然后将GLTools.lib复制到Visual Studio 12.0\VC\lib下。
我们可以通过编译GLTools项目来获得GLTools.lib,也可以直接用别人编译项目获得的GLTools:
1.下载地址:http://download.csdn.net/download/u010255642/6896993
2.编译方法:
参见文档:http://www.cnblogs.com/wangguchangqing/p/4425745.html
参见文档:http://www.ithao123.cn/content-967031.html
拷贝的结果:

至此,OpenGL开发环境配置完成。
(4)一个OpenGL的测试项目:
1)在VS2013项目中新建一个Visual C++类型的win32控制台程序,空项目:
2)创建空项目之后,而且选择不要预编译头部,在OpenGL测试项目上右击打开属性页:

3).在链接器的输入页面的附加依赖项中添加gltools.lib,glew32s.lib,freeglut.lib;在忽略特定默认库中添加LIBCMT和MSVCRT。


4)在源文件上选择右击,新建一个C++文件,命名为text1.c。(默认是.cpp文件)
5)拷贝下面的测试代码到text1.c中:
//#include"stdafx.h" 错误原因:VS2013/2012默认就包含了“stdafx.h”吧,所以不必再写一次。
#include <GL/glut.h>
void init(void)
{
glClearColor(0.0, 0.0, 0.0, 0.0);//设置背景颜色为黑色
glShadeModel(GL_SMOOTH);//设置为光滑明暗模式
}
void myDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT);// 将缓存清除为预先的设置值,即黑色
//glTranslatef(0.8, 0.0, 0.0);//平移函数,暂时可以不用
glBegin(GL_TRIANGLES);//开始画三角形
glColor3f(1.0, 0.0, 0.0);//设置第一个顶点为红色
glVertex2f(-1.0, -1.0);//设置第一个顶点的坐标
glColor3f(0.0, 1.0, 0.0);//设置第二个顶点为绿色
glVertex2f(0.0, -1.0);//设置第二个顶点的坐标
glColor3f(0.0, 0.0, 1.0);//设置第三个顶点为蓝色
glVertex2f(-0.5, 1.0);//设置第三个顶点的坐标
glEnd();//三角形结束
glFlush();//强制OpenGL函数在有限时间内运行
}
void myReshape(GLsizei w, GLsizei h)
{
glViewport(, , w, h);//设置视口
glMatrixMode(GL_PROJECTION);//指明当前矩阵为GL_PROJECTION
glLoadIdentity();//将当前矩阵置换为单位阵
if (w <= h)
gluOrtho2D(-1.0, 1.5, -1.5, 1.5*(GLfloat)h / (GLfloat)w);//定义二维正视投影矩阵
else
gluOrtho2D(-1.0, 1.5*(GLfloat)w / (GLfloat)h, -1.5, 1.5);
glMatrixMode(GL_MODELVIEW);//指明当前矩阵为GL_MODELVIEW
}
int main(int argc, char ** argv)
{
/*初始化*/
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);//单缓冲、RGB模式
glutInitWindowSize(, );
glutInitWindowPosition(, );
glutCreateWindow("三角形");//窗口标题
init();
/*绘制与显示*/
glutReshapeFunc(myReshape);//窗口大小发生改变时采取的行为
glutDisplayFunc(myDisplay);//显示绘制图形
glutMainLoop();//循环
return();
}
点击本地windows调试器运行的结果为:

加上这句话会出现上图所示错误:

错误原因:VS2013/2012默认就包含了“stdafx.h”吧,所以不必再写一次。
OpenGL学习进程(2)OpenGL开发环境的搭建的更多相关文章
- 小白学习Python之路---开发环境的搭建
本节内容 1.Python的介绍 2.发展史 3.安装Python 4.搭建开发环境 5.Hello World程序 一.Python的介绍 Python的创始人为荷兰人吉多·范罗苏姆(Guido v ...
- Java学习 1.3——Java开发环境的搭建:安装JDK,配置环境变量
了解了基本的Java知识后,就需要开始搭建开发环境了. 一,安装JDK JDK1.8下载地址 接受协议,选择选择自己的系统,我的是Windows64位: 点进去后会让你登录Oracle账号,没有就创建 ...
- Linux学习心得之 Linux下命令行Android开发环境的搭建
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下命令行Android开发环境的搭建 1. 前言2. Jav ...
- qt学习教程1.qt开发环境搭建
qt学习教程1.qt开发环境搭建 首先下载qt 下载地址:http://download.qt.io/archive/qt/ 此教程使用的版本为5.1.1 下载好后,打开安装包,然后点下一步 选择一个 ...
- Vue学习笔记(五)——配置开发环境及初建项目
前言 在上一篇中,我们通过初步的认识,简单了解 Vue 生命周期的八个阶段,以及可以应用在之后的开发中,针对不同的阶段的钩子采取不同的操作,更好的实现我们的业务代码,处理更加复杂的业务逻辑. 而在这一 ...
- activiti学习1:开发环境的搭建
activiti学习1:开发环境的搭建 本文中使用maven+eclipse搭建activiti-5.14的开发环境 一.创建maven工程 创建一个普通的java工程,pom文件的内容如下 < ...
- OpenCV2学习笔记01:Linux下OpenCV开发环境的搭建
个人已经厌倦了Windows下的开发方式,于是决定转到Linux平台上来,当然我也知道这个转变会很艰辛,但是我还是要坚持.所以,后面的所有开发我都会基于Linux和Qt,先从开发环境的搭建开始做起,当 ...
- EJB3.0开发环境的搭建
EJB Container的介绍SUN公司正式推出了EJB的规范之后,在众多的公司和开发者中引起了非常大的反响.标志着用Java开发企业级应用系统将变的非常easy.很多公司都已经推出了或正打算EJB ...
- android笔记1——开发环境的搭建
Long Long ago...已经成为了历史,我还是要说出一个真相:早年前,那时候,android还不被大众所认知的时候,当然开发人员也没不像如今那样趋于饱和状态.一位大牛前辈,也是我的学长,那时候 ...
- Python GUI开发环境的搭建
原文:Python GUI开发环境的搭建 最近对Python的开发又来了兴趣,对于Python的开发一直停留在一个表面层的认识,玩的部分比较大. Python的入手简单,语法让人爱不释手,在网络通信方 ...
随机推荐
- Android中makfile的随记
什么是makefile?也许非常多Winodws的程序员都不知道这个东西,由于那些Windows的IDE都为你做了这个工作,但我认为要作一个好的Android底层程序员. makefile还是要懂. ...
- gradle配置flavors上传nexus服务器
分拆代码的过程中需要把核心代码编译成一个库上传到内部maven服务器上,所以研究了一下上传私库的方法. 首先拆分的是工具类库,这个库和java的库类似,没有配置flavors,所以按照网上通用的方法引 ...
- chrono
时间段的表示 tmplate<class Rep,class Period=ratio<1>> class duration; duration类被用来表示时间段的计量器,Re ...
- Java Web -- Servlet(1) 必备知识
学习Java WEB开发必备的基本概念: 1.WEB 本意是蜘蛛网和网的意思.在网页设计中我们称为网页的意思. 现广泛译作网络.互联网等技术领域.表现为三种形式,即超文本(hypertext).超媒体 ...
- Python 之 ImportError: No module named ***
假设想使用非当前模块中的代码,须要使用Import.这个大家都知道. 假设你要使用的模块(py文件)和当前模块在同一文件夹.仅仅要import对应的文件名称就好,比方在a.py中使用b.py: imp ...
- 认识oracle的update更新
这两天给新同事安排了一个工作,即做一个update 的级联更新,在实际操作中发现了一个问题.就是对于Oracle的更新的语法,大部分人尤其是学过SqlServer的人在使用oracle的时候对于ora ...
- UIAlertController custom font, size, color
本文转载至 http://stackoverflow.com/questions/26460706/uialertcontroller-custom-font-size-color up vote2d ...
- UIAlertView及UIActionSheet 在ios8极其以下版本的兼容问题解决方案
本文转载至 http://www.aichengxu.com/view/35326 UIAlertView及UIActionSheet在ios8中被放弃,其功能将完全由UIAlertControlle ...
- UTI iPhone支持依文件后缀名打开应用
本文转载至 http://blog.csdn.net/zaitianaoxiang/article/details/6658492 iphoneapplicationprocessingfileurl ...
- python学习【第三篇】基本数据类型
Number(数字) int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位系统上,整数的位数为64位,取 ...


