通过本节,我们来学习一下在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. 设计模式中类的关系之组合关系(Composition)

    组合也是关联关系的一种特例,它体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合:它同样体现整体与部分间的关系,但此时整体与部分是不可分的,它们具有统一的生存期,整体的生命周期结 ...

  2. 2017-5-14 湘潭市赛 Strange Optimization

    Strange Optimization Accepted : Submit : Time Limit : MS Memory Limit : KB Strange Optimization Bobo ...

  3. ES6 学习笔记 (1)

    笔记来源:廖雪峰老师的javascript全栈教程 ES6:JavaScript的标准,ECMAScript在不断发展,最新版ECMAScript 6标准(简称ES6)已经在2015年6月正式发布了, ...

  4. stick footers布局

    需求: 将footer固定到底部.文章内容不足满屏时 footer在底部,超过满屏时footer在内容末尾. 方法一: <div id="wrap"> <div ...

  5. php zend studio 如何导入已经存在的项目

    点击 左上的   file->import ->General->在选择第二个[  Exissting ....]

  6. HTML5实现端访问时禁止放大和缩小网页

    <title>html5禁止和移动.缩放网页</title><meta name="viewport" content="width=dev ...

  7. tomcat本身的lib目录都有哪些jar包

    1.tomcat下的lib目录,自己带有的jar包有:servlet.jar,tomcat-jdbc.jar,tomncat-dbcp.jar,jsp.jar等 2.tomcat下的lib目录,自己带 ...

  8. android EditText 限定中文个数与英文个数的解决方式

    EditText 限定中文8个英文16个的解决方法. 在EditText上控件提供的属性中有限定最大最小长度的方法. 可是,对于输入时,限定中文8个英文16个时,怎么办?相当于一个中文的长度是两个英文 ...

  9. python多线程爬虫:亚马逊价格

    import re import requests import threading import time from time import ctime,sleep from queue impor ...

  10. 机器学习之猫狗大战,解决image RGB values must be in the 0..1 range.

    猫狗大战是比较经典的机器学习案例,前几天体验了一番,来记录一下 1.图片准备 首先是准备训练的图片 链接:https://pan.baidu.com/s/1ht1HIuw 密码:aw9s 2.开始训练 ...