欢迎进入山东省大学生软件设计大赛官网!
济南计算机学会
通知公告
新闻中心 您的位置:首页>>通知公告>>新闻中心
暑期训练营总结—虚拟漫游
2008-08-30 399 返回列表

虚拟漫游问题

1.在代码级别上能不能借用别人已经封装好的代码?

答:是可以的,题目要求中也说明了,允许代码级复用,比如可以利用一些已封装的类库,但是插件一类不行,如果要借鉴别人已实现的代码,要读懂别人的代码,通过理解、修改与自己的系统有机结合。当然如果自己来编写,会更锻炼自己。

2.漫游的时候要用第一视角还是第三视角进行漫游?

答:没有要求。

3.引擎是基于漫游还是基于渲染?

答:本题目要求自己开发一个3D引擎,不允许使用任何其它3D引擎。渲染引擎的目的是加速遍历和显示三维物体,根据你的场景复杂度决定是否需要提供高效的显示大型场景的能力。漫游肯定是要有的,根据自己的能力提供各种漫游手段。因此,漫游和渲染都是要考察的方面。

4.能不能只做室外漫游不做室内漫游?

答:题目要求是有室内漫游的,没有室内漫游一定会影响成绩。

5.本题目一、二、三等奖分别有几个名额?

答:看最后上交情况和完成情况,由大赛组委会确定名额比例,目前没有确定名额。

6.能不能大概的说一下设计的流程?

答:软件开发需求确认——软件开发概要设计——软件开发详细设计——软件开发编码——软件开发单元测试——软件开发集成测试——软件开发系统测试——软件开发维护

对应的文件如下:

    软件开发需求确认:需求规格说明书

    软件开发概要设计:系统用例图,用例场景

    软件开发详细设计:系统设计报告,数据库设计报告

    软件开发测试:测试用例报告。

7.能不能借用代码,就是在处理技术时例如碰撞检测之类的?

答:同1

8.如何确定由多个模型整合到一个三维场景中的每个模型大小把握问题?

答:如果问题是模型的逻辑大小,在建最初的模型库的时候设计好统一的逻辑尺寸,根据情况必要时可以进行图形变换处理。如果问题是模型存储量的大小把握,三维场景中一般尽量分割场景,本身由3d做出来的模型一般都很大,如果场景过于庞大,会在导入导出的过程中,程序运行变得异常的慢。所以按自己场景要求,合理分配大小,只要内存允许,应该就可以。这也是提供数据库功能的一个原因,显示大型场景根据视点确定模型调度。

9.如何减少在三维模型中的卡机次数,即流畅性问题?

答:这个问题很宽泛,很多方面都会影响到模型运行的流畅性。如数据结构的定义,内存的问题,双缓存的利用与否,等等都是,这个要具体问题具体分析。

10.            往届队伍中程序员的着手起点是什么?

答:通常应该从需求分析入手,首先对于题目进行分解,清楚知道自己将要做什么,最好细致到每个要做的细节。能做到如放电影般将你要做的每个关节在脑海中定型,将为你的开发起到很好的引导作用。好的设计能使开发事半功倍。

11.            一般写程序的大体格式或者模式是什么?如何应用C++一般代码?

答:每种语言大体格式都有规范,从教科书上就能看到。而现在的开发平台,通常都有自动调整格式的快捷键。

12.            一般在网上搜索代码的关键字是什么?

答:需要问什么问题,就将问题输入即可。

13.            如何处理VC平台导入和3D max 导出问题即格式问题?

答:如:http://kongjian.baidu.com/dasiy_d/blog/item/46d302c29107a731e5dd3b89.html

网上对这个问题的讲解有很多,可以多借鉴网络上的算法。

14.            OpenGL的使用易忽略的问题?

答:需要注意的问题太多了,我想一本好的OpenGL的参考书会带给你很好的解答,网上也有很多学习资料,NeHe就是其中之一,有人将其翻译成中文的NeHe置于自己的博客之中,要感谢他们,如http://www.owlei.com/DancingWind/,是很好的参考资料。就我自己而言,学习OpenGL首先应该弄懂OpenGL的各个空间,或说各个坐标系以及其之间的关系,才好进行下面的一系列的学习。

15.            在建模过程中有哪些地方可以进行修饰易产生创意?

答:大到大场景的设计,小到一个家具的形状,都可以展开你的想象。包括模型建立了之后贴纹理都可以有所修饰。好的创意在于你的创造性,有美工基础的可能会好一些。

16.            请老师讲一下关于分布渲染的问题?

答:分布式渲染是一种能够把单帧图像的渲染分布到多台计算机(或多个CPU)上渲染的一种网络渲染技术。有许多方法可以实现这种技术,主要的思路是把单帧划分成不同的区域,由各个计算机或CPU各自单独计算。常用的方法是把静帧划分成许多小区域(Buckets),每台计算机都渲染一部分buckets,最后把这些buckets合并成一张大的图像。

17.            关于数据库怎么运用请指点一下。

答:数据库可以存放场景中物体的坐标信息等,特别是题目要求“用户可以根据提供的基本几何模型,用鼠标和键盘交互选择基本模型在三维空间进行任意变化、组合,组合成自己喜欢的现实中的事物”,这时候就必须用到数据库。想法将模型和引擎分离出来。

18.            3D渲染引擎是什么?Java 3D中包含了吗?

答:http://www.kuqin.com/baike/20080511/8340.html 这个网站中基本解释了什么是3D引擎,从介绍中我们知道,这样的商业引擎对于我们软件大赛来说是禁止使用的,因为这样的引擎已经替开发人员做了太多的事情,开发人员只需要很少的代码量就可以完成开发。所以,再次强调,大赛的目的是尽量的锻炼同学们的开发能力,建议底层开发。

Java3D是个函数库,封装了一些绘制,处理,变换的算法而已,而这些对于我们开发该类题目已经足够了。

19.场景图是作为一个文件导入的还是单个物体导入?室内物件摆放的坐标是相对于房间还是整个世界?

答:场景图如果也是用3Dmax做的,那么建议将其分解,因为这样的复杂模型经由3d做出来,其存储量不小。而室内物件摆放的坐标,需要按照你的整体设计来定义,首先你需要明白各种坐标系的概念,如局部坐标系,也就是物体所在的坐标系,物体相对于该坐标系的坐标是不变的。世界坐标系只有一个,全景处在这样一个坐标系下。OpenGL对于物体的变换操作,实际上是在世界坐标系中对局部坐标系来进行的操作,所以它的矩阵是左乘关系。照相机坐标系实际上是一个观察坐标系,还有屏幕坐标系是针对显示时的设备而言的物理坐标系。等等等等。如果你把室内场景作为一个整体,你的物件就可以依照房间进行摆放。你如果将房间作为整个世界的一个组成部分,那也可以将物件独立出来考虑。具体情况具体分析。

20.把桌子等物体通过编程在室内动态的加入场景会自动刷新重新渲染吗?

答:不会,所有的呈现在屏幕上的场景都是你编程实现的渲染。

21.用Java来做虚拟漫游都需要用到什么技术?有没有教材可以推荐?

答:目前用Java在单机上进行此种题目开发的较少,基本就是用到它的函数库java3Dsun公司的网站上就可以下到它的最新的安装文件。它类似于OpenGL,提供了很多类似于OpenGL里的函数的封装,如变换函数,光照等等,拿来直接用就可以了。目前java3D很少有参考书,网上参考资料反倒更多一些。可上网搜寻一下。

22.VC++与DirectX;VC++ 与OpenGL这两种开发模式哪一种更简单实用?请老师给点建议。

答:都可以,看你觉得哪个上手更快一些。DirectX只能在windows平台下用,OpenGL可以跨平台。

23.场景变化功能,如:下雪,可否用控件?

答:控件是不提倡的,下雪、下雨这些功能实现起来也不难,非核心技术,比如语音控制等外围辅助的功能可以使用。

24.我们打算场景尽量减小,但功能上尽量实现,这会不会影响我们的成绩?例如:我们不打算建楼群,只是想赢得一幢楼或一座房子。

答:软件大赛对大家来说,就是提供一个锻炼和交流的机会,正确制定计划,根据自己的能力,以及时间安排,来决定你的场景的复杂与否,这不会影响你的技术分,但在同等的技术水平上,其他组场景如果更大更漂亮,你们的作品会处于劣势。


二维码
济南计算机学会
电话:0531-88391234
地址:山东省济南市历城区舜华路1500号