1.OpenGL安装与2010配置
1.1、OpenGL库的安装
1)将下载下来的OpenGL库解压到文件夹,拷贝文件夹中的.h文件到Visual C++ 6.0/Microsoft Visual Studio 10.0\VC的\Include\GL目录中(此处自己建立文件夹GL);
2)将.lib文件拷贝到Visual C++ 6.0/Microsoft Visual Studio 10.0\VC的\lib目录中去;
3)将.dll文件拷贝到操作系统的C:\Windows\system32目录中,如果是windows7 64位操作系统需要拷贝到C:\Windows\SysWOW64目录中去。
1.2、VS2010配置
1)使用VS2010创建一个32位控制台程序;
2)“项目——项目属性——配置属性——C/C++— —预处理器——预处理器定义”,添加“GLUT_BUILDING_LIB”;
3)“项目——项目属性——配置属性——链接器——输入——附加依赖项”,添加“glut32.lib Opengl32.lib Glu32.lib glew32.lib”(由于没有glew32.lib文件,此处可以不添加);
1.3、OpenGL的测试
#include <stdio.h>
#include <GL\glut.h>
void RenderScene(void)
{
//OpenGL中设置了多个缓冲区,其中放置了各种内容,
//比如顶点的信息,色彩的信息,命令的信息。
//他们并不会直接生效,要想他们生效就必须清空这些缓冲区,
//glClear就是清空缓冲区的函数,
//在参数里加上GL_COLOR_BUFFER_BIT,就是清空颜色缓冲区,
//比如之前用glClearColor设置了背景色,但是不会立即生效,
//背景色信息会被放入颜色的缓冲区,也就是GL_COLOR_BUFFER_BIT
//这里清空了颜色缓冲区也就是使里面的背景色生效,也就是用背景色填充了屏幕。
glClear(GL_COLOR_BUFFER_BIT);
//gl表示函数属于OpenGL函数库中的哪个工具箱,还有glu、glut。
//Color是一个标记,说明这个函数肯定跟颜色有关。
//3f说明这函数的参数表中应该有三个变量,为GLfloat型
glColor3f(1.0f,0.0f,0.0f);
// 绘制矩形
glRectf(100.0f,150.0f,150.0f,100.0f);
//OpenGL中的绘图命令在被调用时并不会立即生效,而是会被放入一个命令队列
//glFlush的功能就是将命令队列中的命令都生效并清空队列。
//当设置了双缓冲时,glFlush就不在需要了
glFlush();
}
// 当窗口大小改变时,得到的新的宽度和高度
void ChangeSize(GLsizei w,GLsizei h)
{
if(h == 0)
{
h = 1;
}
//1.修剪区(也叫裁剪区)为OpenGL的三维工作空间,
//是右手笛卡尔坐标系空间中被划分出来作为工作空间的区域,注意它是三维的。
//2.视区(也叫视口)就是修剪区在二维平面上的投影区域,
//由于显示屏是二维的平面,因此修剪区没法直接被显示,
//需要被投影在一个二维的平面区域上,也就是视区,
//OpenGL显示的就是视区的内容。
//3.窗口就是在程序中用来放视区的地方,
//视区占窗口的大小是可以设置的,通常设为跟窗口一样大。
// 定义视区,x,y指定窗口内视区的左下角,通常为0
// width和height参数以像素为单位指定宽度和高度
glViewport(0,0,w,h);
// 选择投影矩阵
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if(w <= h)
{
// 定义修剪区,left和right指定x轴上显示的最小和最大坐标值
// bottom和top用于y轴
// near和far用于z轴,通常是远离观察者的负值
glOrtho(0.0f,250.0f,0.0f,250.0f * h/w,1.0f,-1.0f);
}
else
{
glOrtho(0.0f,250.0f * w/h,0.0f,250.0f,1.0f,-1.0f);
}
//投影矩阵负责为我们的场景增加透视
//选择模型观察矩阵
glMatrixMode(GL_MODELVIEW);
//近似于重置。它将所选的矩阵状态恢复成其原始状态
glLoadIdentity();
}
void SetupRC(void)
{
// 设定窗口内的背景色。
// 前三个参数为红绿蓝,最后一个参数为alpha成分,用于混合的特殊效果
glClearColor(1.0f,1.0f,1.0f,1.0f);
}
void main(void)
{
// 设置单缓冲窗口并使用RGB颜色模式
// GLUT_DOUBLE 设置双缓冲窗口
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
// 设置窗口的位置
glutInitWindowPosition(100,100);
// 设置窗口的大小
glutInitWindowSize(1024,768);
// 创建并设置窗口的标题
glutCreateWindow("GLRect");
// 设置当前窗口的显示回调函数,相当于绘图函数
glutDisplayFunc(RenderScene);
// 窗口的再整形回调函数,
// 窗口被人为改变大小时,图形的位置进行再调整
glutReshapeFunc(ChangeSize);
// 进行OpenGL的初始化
SetupRC();
// 该函数让GLUT框架开始运行,所有设置的回调函数开始工作,
// 直至用户终止程序
glutMainLoop();
}
1.4运行情况
2.ARToolkit在VS2010下的安装与配置
2.1文件的配置
1、解压ARToolKit-2.72.1-bin-win32.zip到目标文件夹(自己定义),直接解压到当前文件夹即可,如D:\Program Files,此时文件夹为{ARToolKit};
2、把第一个DSVL-0.0.8b.zip解压放在刚才解压的ARToolKit文件夹下,将DSVL\bin文件夹下的DSVL.dll和 DSVLd.dll放到ARToolKit\bin下
3、将OpenVRML解压后文件夹剪切至ARToolKit文件夹中,将ARToolKit\OpenVRML\bin\js32.dll复制,放进{ARToolKit}\bin里面去
4、复制 msvcp71d.dll、msvcr71d.dll到文件夹ARToolKit\bin
5、双击鼠标左键执行 ARToolKit\Configure.win32.bat 文件。
6、ARToolkit文件夹下的include和lib文件夹中的内容分别拷至Microsoft Visual Studio 10.0\VC下对应的文件夹
(如我的路径为:C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC)
7、把ARToolKit\bin下的DSVL.dll, DSVLd.dll,libARvideo.dll,libARvideod.dll复制放在C:\Windows\SysWOW64下,(如果此路径下没有msvcp71d.dll和msvpr71.dll那么需要下载一个然后放入该路径),如果是32位系统则目标文件夹为C:\Windows\System32。
8、双击{ARToolKit}目录下的ARToolKit.sln,转换版本;
9、点击生成-批生成,然后在{ARToolKit}\lib文件夹下面会生成一些lib文件,这一步必须先执行。否则直接运行包含ARToolkit的项目会出现无法解析外部符号的错误。
10、运行测试程序D:\Program Files\ARToolKit\bin\graphicsTest.exe,出现旋转茶壶如下图2所示:
前面这些步骤都可以参考:
这些步骤完成之后在VS2010中运行代码仍然会报错,还需要进行以下步骤
2.2.我遇到的问题及解决方法(这是我一步步的调试过程,以及可能遇到的错误)
1.单独打开一个例子运行,我的路径如下:D:\programing\AR\ARToolKit\examples\simple
2.运行程序,可能会产生如下错误
3.接下来要修改输出路径
初始路径为:
修改为:
4.再运行程序可能会产生如下错误
这是由于在D:\programing\AR\ARToolKit\examples\simple\Debug目录下缺少一些必要的dll文件,如图:
将这些文件复制到D:\programing\AR\ARToolKit\examples\simple\Debug下,再继续运行程序,仍然无法成功。可能会出现闪退的问题
5.接下来将Data文件复制到D:\programing\AR\ARToolKit\examples\simple,再运行即可成功
6.运行结果
必要的安装包:
链接:https://pan.baidu.com/s/1jH5HBpW 密码:krzw**