APP下载

三维场景模型构建研究与实现

2017-09-05王瑜

软件导刊 2017年7期
关键词:三维建模

王瑜

摘 要:虚拟漫游系统是计算机仿真与虚拟现实技术的综合应用,创建具有真实感的三维场景是实现虚拟漫游系统的基础,场景构建离不开三维建模,模型质量好坏将直接影响到用户体验。在设计开发基于Virtools的虚拟小区漫游系统时,采用3DS MAX对场景中各物品进行建模,在探讨模型构建及优化的基础上,具体介绍三维场景中物品建模的实现方法,并对模型的导入与整合进行说明。

关键词:virtools;虚拟场景;三维建模

DOIDOI:10.11907/rjdk.171243

中图分类号:TP317.4

文献标识码:A 文章编号:1672-7800(2017)007-0199-03

0 引言

虚拟漫游系统是计算机仿真与虚拟技术的综合应用,创建具有真实感的三维场景是实现虚拟漫游系统的基础,场景构建离不开三维建模,模型质量好坏将直接影响虚拟场景的真实与否,而虚拟场景的真实性又是虚拟漫游系统的显著特点,漫游能否真实靠的就是建模技术。

以一般居住型小区为例,构建虚拟场景时建模方法很多,可以使用DirectX或OpenGL的图形函数库由底层建立,但更实用的办法是用专业的建模工具根据实际情况自行设计。以一般居住型小区为例,采用3DS MAX配合AutoCAD进行建模,将小区内所有建筑、环境甚至相关室内场景、人物角色等仿制出来,再将其导入Virtools中加以呈现,用户使用过程中与其中的特定场景发生交互,打破以往的傳播手段和宣传方式,不仅生动活泼、形式新颖,而且制作出来的成品还可以进行网上浏览或直接下载,以全新的视角带领用户参观整个场景。

1 三维模型构建的总体思路

一般居住型小区的虚拟三维场景建模包括小区的地形地貌、小区内的楼群建筑和水系植物等,是整个虚拟现实的基础,在使用3DS MAX进行建模时,应充分考虑到硬件的限制和虚拟系统实时性的要求,在保证视觉效果不失真的前提下,尽量采用最简单的方式。对于小区地形地貌建模,道路广场等相对平坦地形可通过一个平面简单拉伸、挤压获得,山峰台阶等具有起伏变化的地形,可采用层叠法、灰度图法、整体生成法等方式得到;对于楼群建筑建模则要根据系统展示的侧重点,可不必将每面墙体全部显示出来,采用精细建模、次精细建模和粗略建模等方式完成[1],模型数量要尽量简化;对于水系建模主要表现水面的波纹、涟漪和倒影,通常的办法是整体贴图,动态水体要尽量少用,以减少系统负荷;对于植物建模因其场景范围较大,考虑到实时漫游的需求,尽量避免构建真正的实体模型,植物的种类不宜过多,控制Mesh的数量,如在3D Spriters中完成一棵树后,只需复制若干数量的3D Spriters,然后对其进行树木纹理绑定,就可以在增加物体数量的同时极大地降低场景的复杂度。

通常情况下,初步建立出来的模型可能存在数据量大、比例不协调、实时显示效能低等问题,这就要求在建模时注意各个物体的比例协调,贴图尺寸要尽量小且保持为2的幂次方,多用纹理贴图,少用几何贴图,模型建好导入到Virtools软件中注意观察,根据实际情况删除场景中不可见的面,还可用其它软件对模型进行调整和优化,确保系统运行的速度和流畅性。

2 场景模型创建方法

2.1 楼房建模

楼房建模一般利用小区原有的AutoCAD平面图进行构建。在取得原始平面图以后,因小区内同式建筑较多,所以首先要通过对场景和现场需求的分析,确定建模区块结构,即将所有楼房划分成精细建模楼群、次精细建模楼群和粗略建模楼群,这样有利于对模型进行组织与管理。接下来,为了尽可能准确、直观地进行室内建模,需要对房屋进行实际丈量,根据采集来的数据对真实面积的大小进行一定比例的缩放,如有必要还需要获取相应楼房或房间的照片及影像资料,照片一般分辨率较高,可对精细建模楼群细节部分建模,并作为纹理贴图的主要来源,影像资料分辨率相对较差,可用以显示楼群的大致轮廓及楼群与楼群之间的位置关系。当大小位置确定以后,即可将CAD文件导入3DS MAX之中,根据对层次结构的分析,采用先简后繁、由下及上的原则,通过挤压的方式先搭建粗略的楼层框架,再根据不同楼房的不同特色,如单元门的朝向、窗户的朝向、楼房顶层的结构、户型等,逐层逐块利用3DS MAX进行建模。

在建模时,一方面要区别不同类别模型,对精细建模楼群采用精确几何体构建,而对次精细、粗略建模楼群尽量使用面数较少的几何体构建即可;另一方面,还要注意模型面的数量,即无论什么类型楼群,在构建时面的数量要有所控制,数量如果太大,会产生漫游速度过慢、场景不真实的问题,严重时还会在虚拟漫游中出现“穿越”或“眨眼”现象,在成品渲染时也会因面数过多而导致渲染速度过慢以及渲染后文件体积过大的问题,所以在建模时要注意删除冗余的多边形。对楼房建模情况如图1所示。

2.2 房间建模

楼房建模完毕以后,需要对每款不同样式的房间进行建模,因为最终需要漫游的是具体房间,而不是楼房,所以对室内建模属于精细建模,也是漫游系统的重点。房间测量需要进行实地勘察,在弄清楚基本样式以后,可先将其草图大致描绘出来,主要是为了分清墙壁及窗户、门、过道等分布情况,然后在软件中按实际尺寸缩小比例,采用多种建模方式建出房屋模型效果,在表现出必要细节的前提下尽量减少场景繁杂度。模型建立完毕后,将各模型按要求进行合并,对其进行材质贴图和灯光照射,材质用来表现物体表面属性,灯光用来表现物体表面的颜色、光亮程度和不透明度,两者紧密相联,不单独调节另一种,在灯光运用较繁杂的情况下,模型渲染前可能需要调节光能传递[2],将各参数调至最佳,保证渲染质量和渲染时间,最终效果如图2所示。

2.3 室内家电建模

房间建模完成以后需要再依次完成屋内家具、吸顶灯、电视机、电视柜、沙发等建模,这些物品建模仍需按标准尺寸完成,但需要注意的是建模过程中必须对所有对象事先进行分析,也就是说,要对所建模对象进行位置、大小、是否需要交互等情况进行预判,对某些又近又大的对象来说,建模时要求的精度要高一些;而对某些又远又小的对象来说,建模精度要求就低一些。另外建立的对象是否需要进行交互也是值得关注的问题,比如电视机是否能打开、沙发是否进行碰撞侦测、吸顶灯能否点亮等,如果需要交互,建模时就必须将这些物品的明显标志以独立面的形式建立。一般来说,鉴于室内设计属于比较繁杂的场景,所有需要交互的物品在建模时最好不要超过800个面[3]。endprint

虽然,建模时不同的模型可采用不同的建模方式,但由于Virtools只支持Polygon(多边形)建模方式,所以无论初始建模用何种方式,完成后都要转换成多边形后再输出。多边形建模时还要注意其它细节部分,如要控制角度以免视角发生偏移,建模时控制模型面数以免容量过大,要尽可能减小计算量,需要交互的对象每个部分必须单独呈现,不能群组,否则将给交互带来影响,建模房间内物品效果如图3、图4所示。

2.4 其它设施建模

小区内路灯仅在位置、方向、大小上有所差异,如果将所有路灯全部建模完成,势必会造成计算机内存增加、渲染时间过长,对于小区内数量较多、款式相近的路灯,可先只建立一个范例,再采用拷贝的方式,运用实例化技术通过缩放、旋转得到其它所需模型,从而大大节省内存空间。小区内的树木也是建模场景中的重要组成部分,树木的真实度将直接影响场景质量的高低,作为场景中数量最多的模型,用一般的建模方法显然行不通,树木建模可采用Billboard多邊形面的方法进行模拟[4],Billboard 多边形面主要是利用旋转轴和法线对齐的方法来完成,无论用户视点如何改变,只要保证所构建树木图像的法线能绕着轴进行旋转,在用户眼里相关多边形面就始终对准视点,从而造成郁郁葱葱的表象,这种方法简单,占用内存空间小。路灯和树木建模效果如图5所示。

3 模型导入与整合

在3DS MAX中制作好三维模型后,将模型导入到Virtools中。Virtools默认用于存储角色、场景以及物体等信息的文件格式是.nmo,但在3DS MAX中不能直接将文件导出为此格式,需要安装3DS MAX Exporter.exe插件,这种插件版本要与使用的3DS MAX版本保持一致,并要安装在同一个文件夹下,安装完毕后点选3DS MAX中File/Export菜单命令,文件类型选择Virtools Export(*.Nmo,*.Vmo),自定义文件名后即可确定输出保存。需要注意的是,在输出文件时一定要将文件名设置为英文,否则在Virtools中会出现命名错误,模型导出时对话框如图6所示。

最上方导出类型选择输出为虚拟角色(Export as a Character),在虚拟角色名称(Chatacter Name)中输入“Microwave”,在下面的控制器输出(Controller Output)中将样本采帧率(Frame per sample)设置为1,动画物体(Animated objects)也为1,最后点击确认即可完成操作。

保存的.nmo文件需要导入到Virtools中才可使用,启用Virtools点选Resources/Import File菜单命令,找出并导入刚刚保存的.nmo文件,就可以看到整个三维场景,调整和排列模型的位置比例,设置一些必要的属性和参数,最后再添加实行交互的模块脚本,在项目保存成可编辑的工程文件以后,就可以在Virtools自带的程序开发包SDK下进行.exe文件开发。

4 结语

虚拟现实技术在各个领域中的应用越来越广泛,构建沉浸感强、交互速度快的三维场景离不开成熟稳定的建模技术。后续将着重研究贴图、渲染,尝试多种几何建模方法相结合,适当引入新的算法,更好地保证三维场景中各物体建模的质量和实际运行效果。

参考文献:

[1] 张志强,袁野.精细化城市三维建模技术在数字城市中的应用[J].测绘,2014(4):158-160,177.

[2] 张婷.景观设计中3Dmax的运用[J].曲靖师范学院学报,2016,35(4):112-115.

[3] 李尚林,李琳,曹明伟,刘晓平.面向真实构建的徽州建筑快速建模方法[J].软件学报,2016,27(10):2542-2556

[4] 仲于姗.基于Unity的3D虚拟校园漫游系统的开发[D].昆明:云南大学,2015.

[5] 吴桐桐,周国辉.基于虚拟现实的三维建模技术的研究[J].智能计算机与应用,2016(4):113-115.

[6] 姬洪强,吕敬敏.虚拟校园漫游开发中的关键技术研究[J].电脑知识与技术,2013(8):1799-1800.endprint

猜你喜欢

三维建模
maya教学中存在的问题及解决对策
3D虚拟仿真技术在体育馆购票系统开发中的应用研究
农用风力发电机叶片设计
数控仿真系统三维建模技术研究