VS2010下OPENGL的配置使用

本文主要介绍了在VS2010环境下配置和使用OpenGL的过程,包括下载必要的GLUT库,解决缺少GLAUX库头文件的问题,以及解决编译时外部符号无法解析的错误。通过添加OpenGL32.lib, GLu32.lib, GLaux.lib到附加依赖项,最终成功运行显示24位BMP图像的OpenGL程序。" 82887069,5830115,MNIST数据集解析与深度学习识别,"['MNIST', '神经网络', '图像识别', '深度学习模型', '数据预处理']
摘要由CSDN通过智能技术生成

工作后一直跟opencv打交道,各种版本各种配置也早就用烂了。忽然想到还有个专业的图形程序接口一直没用过,然后就在网上找了一个并down个程序简单看看效果。这里主要是写一下openGL下载、配置以及写程序时要注意的一些东西吧。

首先下载openGL的压缩文件http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip

里面5个文件 glut.h  glut.dll,glut32.dll glut.lib,glut32.lib,至于这些东西放哪就不多说了,随便百度一下就有。

但我down的那个程序中需要包含一个头文件#include "glaux.h",这是GLAUX库的头文件,这个文件在我电脑上毫无踪影,没办法只好有下了一个OpenGL的版本:

http://d.download.csdn.net/download/ssagnn23/2560229


然后把解压的.h、.dll、.lib文件又重新归置了一次,这下可以找到头文件了,然后编译时又遇到问题:“无法解析的外部符号 _auxDIBImageLoadA……”,查了一下是没有加入lib。打开“工程属性”-->"输入"-->"附加依赖项",把OpenGL32.lib  GLu32.lib  GLaux.lib加进去,编译运行OK,然后可以看到程序运行效果。(程序里加载的图像貌似只能是24位bmp图像,没有验证,jpg肯定不行)

#include <iostream>
#define GLUT_DISABLE_ATEXIT_HACK
#include "gl\glut.h"
#include "gl\GLAUX.H" 

using namespace std;
bool g_bBlend;//  是否混合?
bool g_bKeyB = false;// B 键按下了么?

bool    g_bLight	=false;//  光源的开/ 关
bool    g_bKeyL		=false;// L键按下了么?
bool    g_bKeyF		=false;// F键按下了么?
GLfloat g_fXrot		=5;	// X 旋转
GLfloat g_fYrot		=5;// Y 旋转
GLfloat g_fXSpeed	=0;// X 旋转速度
GLfloat g_fYSpeed	=0;// Y 旋转速度
GLfloat g_fZ		=-5.0f;//  深入屏幕的距
// 接着设置用来创建光源的数组。我们将使用两种不同的光。第一种称为环境光。环境光来自于四面
// 八方。所有场景中的对象都处于环境光的照射中。第二种类型的光源叫做漫射光。漫射光由特定的
// 光源产生,并在您的场景中的对象表面上产生反射。处于漫射光直接照射下的任何对象表面都变得
// 很亮,而几乎未被照射到的区域就显得要暗一些。这样在我们所创建的木板箱的棱边上就会产生的很不错的阴影效果。
// 创建光源的过程和颜色的创建完全一致。前三个参数分别是RGB三色分量,最后一个是alpha通道参数。
// 因此,下面的代码我们得到的是半亮(0.5f)的白色环境光。如果没有环境光,未被漫射光照到的地方会变得十分黑暗。
GLfloat LightAmbient[]= { 0.5f, 0.5f, 0.5f, 1.0f };//  环境光参数
//下一行代码我们生成最亮的漫射光。所有的参数值都取成最大值1.0f 。它将照在我们木板箱的前面,看起来挺好。
GLfloat LightDiffuse[]= { 1.0f, 1.0f, 1.0f, 1.0f };//  漫射光参数
// 最后我们保存光源的位置。前三个参数和glTranslate中的一样。依次分别是XYZ轴上的位移。由于
// 我们想要光线直接照射在木箱的正面,所以XY轴上的位移都是0.0f 。第三个值是Z 轴上的位移。为
// 了保证光线总在木箱的前面,所以我们将光源的位置朝着观察者( 就是您哪。) 挪出屏幕。我们通常
// 将屏幕也就是显示器的屏幕玻璃所处的位置称作Z 轴的0.0f 点。所以Z 轴上的位移最后定为2.0f 。假
// 如您能够看见光源的话,它就浮在您显示器的前方。当然,如果木箱不在显示器的屏幕玻璃后面的
// 话,您也无法看见箱子。
GLfloat LightPosition[]= { 0.0f, 0.0f, 2.0f, 1.0f };//  光源位置
// filter 变量跟踪显示时所采用的纹理类型。
//第一种纹理(texture[0])使用gl_nearest(不光滑) 滤波方式构建。
//第二种纹理 (texture[1])使用gl_linear(线性滤波)方式,离屏幕越近的图像看起来就越光滑。
//第三种纹理 (texture[2])使用mipmapped滤波方式,这将创建一个外观十分优秀的纹理。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值