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的入手简单,语法让人爱不释手,在网络通信方 ...
随机推荐
- Extjs中获取getEl获取undefined的问题
一定注意: getEl()方法只有在panel.show()之后才会有值.在hide()的时候没有该对象. 也就是说如果要操作Ext.dom.Element对象必须让对象先显示出来.
- golang解析json
解析json,在很多语言都是很常用的,go提供了相应的包"encoding/json"来处理.直接上代码,如下: package main import ( "encod ...
- springmvc 环境配置图
- 嵌入式开发之davinci--- 8148/8168/8127 中swms、Mosaic’s、display 显示pal 模式
(1) (2) (3) (4) -------------------------author:pkf ------------------------------time:2-3 --------- ...
- azure绑定ssl,godaddy的ssl证书
域名是godaddy 申请的,证书也是godaddy 购买的,DV证书. godaddy购买证书后,申请ssl,需要输入,csr.网上找的csr生成工具,我使用 https://myssl.com/ ...
- scrapy初体验 - 安装遇到的坑及第一个范例
scrapy,python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.scrapy用途广泛,可以用于数据挖掘.监测和自动化测试.scrapy的安装稍 ...
- Windows中安装Scrapy
在linux中安装Scrapy只需要导入一些非python的支持包,在windows中安装Scrapy则是一波三折. 总之来说,主要分为以下几个步骤,可能由于系统问题(国内个人机子,甚至是小企业的机子 ...
- node.js的安装与第一个hello world、node.js的初始化
1.下载node.js文件 2.windows下点击安装 重复下一步即可 3.编辑工具 EditPlus编辑器 4.新建保存目录的文件夹,并新建一个文本文档 5.打开EditPlus编辑器 打开 ...
- ofstream和ifstream详细用法
ASCII和二进制文件的输入输出 First:包含头文件#include <fstream> ASCII输入: 首先要创建一个in-stream对象:ifstream fin(" ...
- 巨蟒python全栈开发数据库前端9:bootstrap
1.bootstrap的主网站: http://www.bootcss.com/ (1)bootstrap的CSS样式 (2)bootstrap组件 (3)JavaScript插件 (4)阿里图标库的 ...


