虚拟古村落漫游系统环境中的模型构建
发布时间:2015-07-13 09:46
摘 要 本文针对虚拟古村落漫游系统环境中的建模问题,提出结合MultiGenCreator和3DSMAX两种建模软件进行建模的方法,保证了模型的逼真度和漫游系统的运行效率。
关键词 虚拟漫游;MultiGen Creator;3DS MAX;建模
0 引言
虚拟现实(Virtual Reality)是近年来十分活跃的技术研究领域。它是一系列高新技术的汇集,包括计算机图形学、图像处理与模式识别、智能接口技术、人工智能、多传感器技术以及高度并行的实时计算技术。目前,其应用已广泛涉及军事、教育培训、工程设计、商业、医学、影视、艺术、娱乐等众多领域,并带来了巨大的经济效益。
虚拟现实系统中的建模是整个虚拟现实系统建立的基础。为了给用户创建一个能使他感受到身临其境、逼真的环境,就需要创建尽可能逼真的模型和虚拟场景。但是,如果模型和场景过于精细,数据量过于庞大,将给虚拟现实应用系统带来灾难,尤其是比较复杂的场景比如古村落建筑。在虚拟现实系统中的建模,应该在保证必须的模型质量情况下做到数据量尽量小,以保证虚拟现实应用系统的运行效率。作者在进行楠溪江古村落虚拟漫游系统的实现过程中,结合MultiGenCreator和3DSMAX两种建模软件,较好的解决了这个问题。建模的工作流程如图1所示。
图1 建模工程流程
1 前期处理
为了使MultiGenCreator和3DSMAX这两个软件的工作能够较好对接,建模工作能够顺利开展,必须要做一些前期的准备工作。
1.1 获取布局图
虽然虚拟漫游系统并不要求虚拟场景与真实场景完全一致,但是构建的模型和场景应该尽量真实反映实际的情况。首先应该获取正确的古村落布局图,最好是精确的AUTOCAD图纸。作者获取的是DWG格式的布局图,提取轮廓线后可以做为模型构建的底图。
1.2 纹理预处理
在虚拟现实系统中为了增加模型的逼真效果,通常把取自实际环境的数码照片做为纹理。另外,在MultiGenCreator中的模型格式OpenFlight(*.FLT)只接受RGB或RGBA格式的图形文件做为纹理。因此,为了使纹理能够更好在MultiGenCreator中工作,需要对数码照片进行处理。
⑴让常用的图像处理软件比如Photoshop能够处理RGB或RGBA格式的文件,可以通过下载rgbformat.8bi(针对Photoshop8.0)文件并拷贝到Photoshop安装目录中的File Formats文件夹实现。
⑵ 设定纹理图片的大小,要做为纹理的图片长度和宽度像素值均要设为2的整数次幂,如256*128,否则模型在实时漫游中纹理可能发生扭曲变形。
2 3DMAX建模
3DSMAX建模软件的使用非常广泛,具有可操作性强、功能强大、模型精细逼真、质感强等特点,缺点就是数据量大。利用3DS MAX构建模型主要工作有:
2.1 划分场景单元
在模型构建中,通常需要对真实场景进行划分,分成相对独立的几个单元。作者根据本文所涉及的古村落的真实场景,划分出了大宗祠、水亭、书院、将军府第等四个主要建筑物和其他次要建筑物,另外树木等小品也可以单独做考虑。
2.2 主要建筑物建模
四个主要建筑物作为场景的核心景点,模型质量要求较高,要有一定的逼真度。因此往往需要使用3DS MAX软件的Extrude、Mirror、Bevel、Loft、Edit Spline等等命令。比如在大宗祠的建模中,宗祠的横梁、柱基等等就较多的使用了Extrude、Edit Spline命令。另外,为了减少模型的面片和数据量,在保证模型一定精细度的情况下要尽量减少这些命令的Segment、Sides或Steps值,同时,尽可能的使用纹理映射提高模型逼真度。
2.3 次要建筑物建模
次要建筑物模型质量要求不高,可以使用简单几何体和纹理映射来完成。
2.4 注意事项
要想在3dmax中建立模型,并将3dmax模型转换为仿真驱动的OpenFlight模型并且能够使用,在Max中建模时我们必须注意以下几点:
⑴ 避免不兼容的情况
在本方法中,需要先使用3DSMAX建立模型再导入到MultiGenCreator中进行处理,但是3DSMAX做为一个功能强大的建模软件,有些指令在MultiGenCreator是无法得到识别和支持的,比如复杂的纹理合成、reference参数等等。为了保证前面建立模型在后面得到较好读取,应该避免使用这些指令,或者在模型导入到MultiGenCreator后使用类似的指令。
⑵ 尽量使用简单方式
建立的模型要尽量采用比较简易的Box、Shape等来表现,不要使用NURBS、polygon、patch建模方式建模。建议在3dmax中多采用Shape加其它命令的方式来建立模型。
⑶ 在保证模型质量的情况下尽量减少精细度
比如在使用Shape中的Line建立模型时要尽量将Interpolation选项中的Steps值设置到最小的程度,一般设到1~3即可满足要求,Steps值过高会极大的增加转换后的模型面片数。
图2 大宗祠的3DS MAX模型
在使用Loft命令时,必须注意Skin Parameter栏中的Shape和Path值,尽量控制到最小。在Extrude过的Shape模型或Box、Cylinder模型的Segment值应设置为最小,Cylinder模型的Sides也不要设置得过高,一般Cylinder的Sides设为10就可以满足模型的需求。
4 结束语
⑷ 尽量使用纹理贴图
在不使用附加多边形的情况下,可以使用纹理从视觉上丰富和提高细节模型,比如像门、窗户、墙面等等。
最后,把3DS MAX完成的模型以3DS格式导出。图2是3DS MAX建立的大宗祠模型。
3 简化模型及优化模型数据库
MultiGenCreator软件的最大优点就是建立基于场景图的层次模型数据库,可以使虚拟场景漫游系统得到很高的运行效率。因此,需要对前面利用3DS MAX建立的模型进行简化和优化工作。
3.1 三角面片合并
将3DS MAX建立的模型导入到MultiGenCreator时,MultiGenCreator会将模型中原有的非三角形面片转化成三角形面片,因而会增加多边形的数量。可以通过合并三角面片来有效的简化模型,降低多边形数量。方法很简单,选中要操作的对象或面,使用Edit菜单下的Combine Faces命令即可,MultiGenCreator会自动将处于同一平面的相邻三角形合并,减少的三角面片数达到50%以上。
3.2 删除多余多边形
对于虚拟漫游系统,在建立模型数据库的时候就删除模型背面、内部或被遮挡的多边形可以减少系统的绘制时间。比如次要建筑物只需要绘制出建筑物的外部,建筑物的底面、内墙面等不需要渲染出来,因此可以在模型中直接删除。
或者在需要的时候使用MultiGenCreator双面渲染功能来减少多边形。
3.3 使用LOD技术
LOD即多层次细节模型可以在漫游系统的多边形预算范围内有效增加系统的绘制效率和效果。当视点距离模型越近,使用细节程度越高的模型版本。当视点远离模型后,就使用低层次细节版本模型。对于本文所涉及漫游系统中,可以为主要建筑物建立多个细节程度的模型,在不同的LOD阶段相应使用适当细节程度的模型版本,以达到提高漫游系统运行效率的目的。
3.4 优化模型数据库
使用MultiGenCreator建立的OpenFlight(*.FLT)模型数据库,是按照一定层级组织各种节点的方式来描述及存储虚拟场景信息的,对于实时漫游系统的剔除(CULL)和绘制(DRAW)操作在性能上有极大的提高。而3DS MAX建立的模型导入到MultiGenCreator时自动生成的模型数据库是线性的,即所有物体都被放在同一层,既不利于数据的组织管理,又降低了漫游系统运行效率。可以通过MultiGenCreator的模型数据库管理工具对模型数据库进行优化重组,比如大宗祠这个建筑物做为一个组节点ZONGCI,有关大宗祠的所有物体都放到ZONGCI这个组节点下。当然也可以进行嵌套,比如在ZONGCI这个组节点下建立XITAI组节点,把有关于大宗祠中戏台部分的所有物体都放在XITAI组节点下。
最后,得到经过简化和优化后的MultiGen Creator模型。图3是经过MultiGen Creator简化和优化后的大宗祠模型。
图3 大宗祠的Creator模型
4 结束语
本文针对古村落虚拟漫游系统中的建模提出了结合MultiGenCreator和3DSMAX两种建模软件进行建模的方法,保证了模型的逼真度和漫游系统的运行效率,较好的解决的古村落虚拟漫游系统中模型质量和模型数据之间的矛盾问题,为虚拟漫游系统中的模型构建提供了一种较好的方法。
参考文献
1 刘晓波,张琴舜,张和林.一个基于MultiGen/Vega的虚拟场景漫游系统.计算机应用[J],2002,12:85-86
2 阎晓东,张永生.基于3DS MAX环境的三维场景重建工具.测绘学院学报[J],2002,19:109-112
3 郑亮.基于Creator和CAD的三维数字小区建模.四川测绘[J],2004,27(2):55-73
4 洪光,李洪儒,牟建国.基于Creator的三维模型的简化研究.计算机仿真[J].2004,21(1):57-115
上一篇:场景文本提取方法的应用