该实例程序是山大计算机学院图形学课程实验的实验三。大三了,同学们都挺忙的,考研的考验,准备保研的争取保研,我呢,不思进取,闲人一个,就花些时间把这实验认真做了一遍,感觉还不错,交完实验就扔在那里了,今天看到了就发到网上,学弟学妹们,可以参考一下,盗版不究。代码还有些不完善的地方,原来想完善好了再发到网上的,不过这个实验牵扯到了一段伤心往事,不想再纠结在这上面了,所以就直接发上来了。不过发上来的代码是完全符合实验老师所要求的,有兴趣的童鞋可以完善一下。
想想以后可能接触不到图形学的编程了,即使接触了用到OpenGL编程的机会也不多了,认真研究一下,也是不错的。
好了,不多说了,下面是程序的简介:
功能介绍:实验要求的6个基本功能都达到了,扩展功能的3个也完成了。
运行之前:
(1)学校的机器有自动还原功能,而我们的实验要求每次都要复制若干文件到相应的目录,为了省却这些麻烦,写了一段批处理的代码,来完成复制过程。
首先将“复制”这个批处理文件和“参考资料”文件夹拖到桌面上来,双击运行“复制”这个批处理文件即可完成复制过程。
(2)将lab文件夹复制到D盘根目录,然后进入到D:\lab\test双击test.dsw即可,编译运行就会出现结果。
(3)TestMd2.cpp文件里的times表示差值的次数 ;取值可以调节,机房中设置100,自己的机器上设置10,机房里的机器可能配置太好了。
运行之中:
运行之后出现两个窗口一个是控制台,一个是图形界面窗口。控制台只是调试输出用的。
我们在图形界面窗口中操作:
快捷键:
(1)C :切换视角,一、三视角和俯视角的切换,可以体验一下在人物跑动中切换视角的感觉。
(2)空格:结束自动寻路,程序支持自动寻路,鼠标左键点击地图中的任何有效地点(非障碍物处),人物模型会自动走到目标地点处。空格就是用来,结束该自动寻路的过程的。(不支持小地图上的鼠标点击寻路,童鞋们可以增加此项功能,很简单的)。
(3)ctrl+鼠标左键:改变地形,障碍物和空地之间的转换。
(4)方向键:各个角度观察整个程序模型。
ps:
(1)人物跑动中,切换视角人物不受影响。
(2)人物跑动中,支持改变地形,此时,人物会重新计算路径,并按照新路径移动到目的地,如果改变地形导致无法到达目的地,则自动寻路结束。注意:不要在人物即将到达的的cell处增加障碍物,因为此时人物已经计算好,该cell处可达,就会前往该处,又因为增加了障碍物,碰撞检测不通过,所以人物跑动不休。(这里是不完善的地方之一,主要是因为glutTimerFunc的原因,有兴趣的童鞋可以改进一下)
(3)方向键改变程序模型角度之后,也可以ctrl+鼠标左键修改地形,这要归功于gluUnProject函数。
(4)在自动寻路过程中,要改变寻路地点只能是按下空格键,结束自动寻路,再点击地点,进行自动寻路,否则,两次鼠标事件响应重叠,对模型进行叠加的操作,不能产生预期效果。(和第二条一样这里也是glutTimerFunc函数的原因,有兴趣童鞋可以改进,主要是glutTimerFunc函数这里一旦注册定时器,不能取消,直到它执行结束)
(5)程序模型的纹理可以更改,纹理都在lab\data目录下,地图的纹理是Dota地图中提取的dota小地图的纹理,其余纹理是网上找到的图片然后Ps转换格式做的。
总结:实验不难,指导书上的介绍虽然很多,但是大多数都是介绍人物模型的,实验主要用到了很好用的函数,分别是glutTimerFunc和gluUnProject函数,理解了图形显示的过程加上这两个函数,这个实验就没什么了,剩下的就是数学问题了。
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
OPENGL-3Dmaze.rar (58个子文件)
迷宫
lab
ReadMe2.txt 2KB
复制.bat 556B
ReadMe.txt 3KB
test
test.opt 55KB
anorms.h 6KB
tga.cpp 9KB
tga.h 921B
TestMd2.cpp 16KB
Debug
test.log 4KB
vc140.pdb 388KB
test.ilk 2.95MB
vc140.idb 827KB
test.Build.CppClean.log 548B
tga.obj 420KB
TestMd2.obj 72KB
test.exe 1.4MB
Md2.obj 55KB
test.tlog
CL.read.1.tlog 55KB
test.lastbuildstate 212B
link.read.1.tlog 4KB
link.write.1.tlog 812B
CL.write.1.tlog 3KB
link.command.1.tlog 1KB
CL.command.1.tlog 3KB
test.pdb 8.75MB
maze.obj 39KB
Backup
test.VC.db 28.21MB
test.sln 935B
.vs
test
v14
.suo 42KB
test.plg 928B
Md2.h 3KB
test.dsw 514B
UpgradeLog.htm 33KB
test.dsp 5KB
maze.cpp 8KB
test.vcxproj.filters 2KB
test.vcxproj 6KB
Md2.cpp 24KB
test.ncb 105KB
TestMd2.h 2KB
maze.h 203B
data
001.tga 2KB
01.tga 977KB
GenericMech.tga 192KB
littlebrick.tga 4KB
war3mapmap.tga 256KB
tris.md2 255KB
WalkMech.md2 242KB
knight.md2 313KB
brick.tga 1.37MB
参考资料
GLUT官方英文手册及GLUT包
glut-3.7.6-bin.zip 117KB
glut-3.7.6-bin
glut-3.7.6-bin
glut.def 2KB
glut32.dll 232KB
README-win32.txt 26KB
glut.h 27KB
glut32.lib 28KB
glut-3.spec.pdf 402KB
老学长的版本.rar 3.67MB
共 58 条
- 1
资源评论
量化橙同学
- 粉丝: 7726
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功