通过本节,我们来学习一下在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开发环境的搭建的更多相关文章

  1. 小白学习Python之路---开发环境的搭建

    本节内容 1.Python的介绍 2.发展史 3.安装Python 4.搭建开发环境 5.Hello World程序 一.Python的介绍 Python的创始人为荷兰人吉多·范罗苏姆(Guido v ...

  2. Java学习 1.3——Java开发环境的搭建:安装JDK,配置环境变量

    了解了基本的Java知识后,就需要开始搭建开发环境了. 一,安装JDK JDK1.8下载地址 接受协议,选择选择自己的系统,我的是Windows64位: 点进去后会让你登录Oracle账号,没有就创建 ...

  3. Linux学习心得之 Linux下命令行Android开发环境的搭建

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下命令行Android开发环境的搭建 1. 前言2. Jav ...

  4. qt学习教程1.qt开发环境搭建

    qt学习教程1.qt开发环境搭建 首先下载qt 下载地址:http://download.qt.io/archive/qt/ 此教程使用的版本为5.1.1 下载好后,打开安装包,然后点下一步 选择一个 ...

  5. Vue学习笔记(五)——配置开发环境及初建项目

    前言 在上一篇中,我们通过初步的认识,简单了解 Vue 生命周期的八个阶段,以及可以应用在之后的开发中,针对不同的阶段的钩子采取不同的操作,更好的实现我们的业务代码,处理更加复杂的业务逻辑. 而在这一 ...

  6. activiti学习1:开发环境的搭建

    activiti学习1:开发环境的搭建 本文中使用maven+eclipse搭建activiti-5.14的开发环境 一.创建maven工程 创建一个普通的java工程,pom文件的内容如下 < ...

  7. OpenCV2学习笔记01:Linux下OpenCV开发环境的搭建

    个人已经厌倦了Windows下的开发方式,于是决定转到Linux平台上来,当然我也知道这个转变会很艰辛,但是我还是要坚持.所以,后面的所有开发我都会基于Linux和Qt,先从开发环境的搭建开始做起,当 ...

  8. EJB3.0开发环境的搭建

    EJB Container的介绍SUN公司正式推出了EJB的规范之后,在众多的公司和开发者中引起了非常大的反响.标志着用Java开发企业级应用系统将变的非常easy.很多公司都已经推出了或正打算EJB ...

  9. android笔记1——开发环境的搭建

    Long Long ago...已经成为了历史,我还是要说出一个真相:早年前,那时候,android还不被大众所认知的时候,当然开发人员也没不像如今那样趋于饱和状态.一位大牛前辈,也是我的学长,那时候 ...

  10. Python GUI开发环境的搭建

    原文:Python GUI开发环境的搭建 最近对Python的开发又来了兴趣,对于Python的开发一直停留在一个表面层的认识,玩的部分比较大. Python的入手简单,语法让人爱不释手,在网络通信方 ...

随机推荐

  1. 2017-5-14 湘潭市赛 Similar Subsequence 分析+四维dp+一些简单优化

    Similar Subsequence Accepted : Submit : Time Limit : MS Memory Limit : KB Similar Subsequence For gi ...

  2. python 爬虫1 Urllib库的基本使用

    1.简单使用 import urllib2 response = urllib2.urlopen("http://www.baidu.com") print response.re ...

  3. hadoop2.2集群部署教程连接

    完全分布式部署:http://blog.csdn.net/licongcong_0224/article/details/12972889 伪分布式部署:http://www.kankanews.co ...

  4. matlab小数分数转换

    >> format short      %%%% MATLAB默认格式,小数显示 >> format rat    %%%%% 转成分数表示

  5. python3 - 使用__slots__限制实例属性

    为了限制实例的属性,可以在定义class的时候,定义一个特殊的__slots__变量,来限制class实例能添加的属性.比如,只允许对Persion实例添加name 和 age 属性 class Pe ...

  6. 获取当前AppDelegate 正在显示的UIViewController

    UIWindow+PazLabs.h (header file) #import <UIKit/UIKit.h> @interface UIWindow (PazLabs) - (UIVi ...

  7. 谈谈Android重打包--初语

    写在前面的话 仅以此系列献给喜欢我CSDN的小伙伴们 申明 此文禁止转载,谢谢合作 序言 在开头说这会是一个系列,那就说明我有非常多话要说.从最简单的介绍到问题的提出.解决方式的构思以及整个系统的架构 ...

  8. openssl 升级操作 -2

    首先我觉得没事就用绿盟扫漏洞的公司,就是闲的蛋疼,傻逼!不少服务器使用nginx,如果openssl 是静态编译的,直接将openssl 编译到nginx里面去了,这就意味着,单纯升级openssl ...

  9. css单行排版

    text-overflow: ellipsis; overflow: hidden; white-space: nowrap;

  10. COGS 693. [SDOI2005]Antiprime数 唯一分解定理逆用

    693. Antiprime数 ★★   输入文件:antip.in   输出文件:antip.out   简单对比 时间限制:1 s   内存限制:128 MB 如果一个自然数n(n>=1), ...