3DS MAX在虚拟现实技术中的应用

时间:2022-10-30 10:39:43

3DS MAX在虚拟现实技术中的应用

摘要:本文介绍了利用3DSMAX结合VRML实现虚拟动态交互的快捷方法,着重说明了3DS MAX在虚拟现实技术中的应用。

关键词:VRML虚拟现实建模语言;3DS MAX模型;动态交互虚拟现实技术是当前计算机技术中的焦点课题,它是一个基于计算机的应用系统,在该系统中可以通过计算机硬件以及各种传感器的支持生成一个逼真的、三维的、具有一定感知能力的环境,让使用者在软硬设备支持下,以简捷自然的方式与由计算机生成的虚拟世界中的对象进行交互,使人产生身临其境的感觉。

目前实现虚拟动态交互的首选方法主要有两种:(1)用典型的程序语言(如OPENGL等)设计实现;(2)用虚拟现实三维立体网络程序语言VRML设计实现。后一种方法通常要结合脚本语言或Java语言来实现虚拟动态交互。本文主要介绍3DS MAX与VRML相结合实现的虚拟动态交互。

VRML是虚拟现实三维立体网络程序语言,它可以在网络上创建逼真的三维场景,使虚拟世界的真实性和交互性得到更充分体现。但VRML构造一个简单的三维场景需要录入较多规范的数据,不能高效快捷地建立复杂物体的三维模型。三维动画软件3DS MAX可以高效快捷地建立复杂物体的三维模型。

一、基于3DS MAX 与VRML的虚拟建模技术

在建模阶段利用3DS MAX建立三维模型,在控制阶段,通过VRML编程实现虚拟现实的动态交互,这样可以高效快捷地实现虚拟环境的动态交互。

以一个卡通街道的建立为例建立如下虚拟景观模型:楼群,道路,花草树木。

(1)楼群模型的生成。楼群是校园中的主体建筑,是整个场景中最重要的对象。通常楼体的建模可以采用3DS MAX来完成,利用其中的Box(立方体)、cone(圆锥)、cylinder(圆柱)、sphere(球体)等造型组合建模,或使用多边型建模,本例中结合运用了两种方法。

首先在AutoCAD中制作各建筑物的几何多边形底图,再导入到3DS MAX中将二维底图上的建筑物按一定比例拉伸成具有一定高度的实体模型。立体模型建立之后还需要进一步的修改对于简单的房屋,一般都是在Mesh edit(网格编辑)中对Vertex(顶点)进行编辑,调整房屋的形状,而对于复杂的建筑,比如几座楼体互联的情况处理起来就复杂了, 3DSMAX软件提供了布尔运算方法,即Union(并)、Intersection(交)、Subtraction(减)来处理。但是布尔运算不能过多地运用在建筑物造型中,因为经布尔运算完了的对象很难应用基本贴图方式来贴图,而且也会增加场景的复杂程度,在后期导入到VRML中做交互编辑时减慢网上执行速度。建立的模型如图1所示:

建立模型之后的工作就是给模型赋予材质和贴图。最基本的材质可以使用3种颜构成对象表面,即AmbientColor(环境光颜色),DiffuseC-olor(漫反色), SpecularColor(高光颜色),使用这3种颜色及对高光区的控制,可以创建出大部分基本反射材质,简单、有效、速度快。3DS MAX中的贴图方法有多种,这里可以采用最简单的Bitmap位图贴图,将经过photoshop处理的图片保存为jpg格式,在3DS MAX中调用出来,贴在建筑物上,再添加修改工具中的UVW贴图坐标进行修改。贴图后效果如图2:

图2(2)道路、植物、路灯及围栏的制作。道路的制作可以用3DS MAX完成。首先在顶视图中用line(线条)勾勒出道路轮廓,注意轮廓都应该是闭合的,否则不能挤出封闭的几何体。进入修改命令面板,对道路接合不准确的地方进行调整,最后用挤出命令将道路挤出一定高度。

植物、路灯及围栏的制作可分为多种情况。地面植被可以简单的为地面赋上绿色的贴图,再给它加上边沿使其更加逼真即可。而比较立体的树木、路灯及围栏等可以采用VRML中的植物建模方式Double board。Double board采用两个同样大小并且相互垂直的平面作为植物建模基础,然后在这两块薄面片上贴上相同的具有alpha通道的植物贴图。这种方法的好处在于不需要根据视点的位置变化,不断的调整植物模型的角度,而且模型的复杂度不会明显增加,远视的情况下植物仍能保持良好的视觉效果。

以树为例VRML编写程序为:

DEF tree Transform{

Translation 100 -13 80

Children[

DEF treel Shape{

Appearance Appearance{

materialMaterial{ diffuse Color 0.5 0.5 0.5

ambientlntensity1.0 specularColor 0 0 0 shininess 0.1

transparency 1.0}

Texture Image Texture{url”shu.gif”}}

Geometry Box{size 8 18 0.001}}

Transform{ Rotation 0 1 0 1.57 Children USE treel}]}

用3DS MAX的树插件制作,以.wrl格式输出的树如果有80K大小的话,用以上方法仅仅占用600多个字节。围栏、路灯等的建模和树的建模类似,但是比树的建模要更简单,只需将一个带有alpha通道的透明贴图纹理映射到薄平面来构建。

(3)模型的优化。由于场景较大,对象众多,所以在建模环节的优化目标是控制场景模型的复杂程度并适当减小输出的*.wrl文件大小。①在3DS MAX中保持平面原形的情况下,将几何体的分段数尽可能的减少,对于根本看不到的面,可以删除或者隐藏。②对于复制的对象,尽量采用关联(Instance)方式,避免因修改造成的开关大小不一。③在VRML文件中,可以使用DEF节点给物体命名,以后仅需通过名字用use节点引用该物体即可。④3DS MAX导出为*.wrl文件时是文本方式的,其中有许多不必要的回车符、空格符和TAB符等,可以使用专门的gzip工具对VRML文件进行压缩,VRML浏览器会自动识别和解压gzip格式的压缩文件。

(4)文件导出。在3DS MAX中选择file/export(文件/导出)菜单,出现一个对话框,点击“保存类型”下拉选单框,选择“VRML97(*.wrl)”文件类型,取一个相应的名称,单击“保存”,会出现一个“VRML97”导出器的对话框,取其默认值,单击OK(确定)即可生成需要的wrl文件。

・教学教法・13DS MAX在虚拟现实技术中的应用 二、对模型进行动态交互的编程控制

对模型进行动态交互编程控制,需要将3DS MAX生成的wrl文件导入VRML开发工具(如VrmlPad)中。VRML把虚拟世界看作是一个“场景”,场景中的一切都看作是节点,VRML提供了54个结点来构建场景,一般要构造一个交互性的虚拟场景主要用到以下三类节点:造型节点,用来构造虚拟场景的外观;探测器节点,用来感知用户的操作;Script节点,主要用来加入程序脚本语言(如Java,JavaScript)。通过对这些节点进行编程控制实现动态交互。

比如对用户动作的探察,VRML传感器所能感受到的用户的动作包括用户在场景中的鼠标的操作,以及通过浏览器的视点控制在场景中的漫游。可以通过给出中心和尺寸指定一个由ProximitySensor节点感知的空间区域。用户进入这个区域,传感器就使用enterTime事件输出当前的绝对时间。用户离开这个区域,传感器使用exitTime事件输出时间。用户在感知区域改变位置和方向后,ProximitySensor节点使用Position_changed和Orientation域来输出新的位置和方向。

三、结语

3DS MAX在虚拟现实技术当中的应用,大大丰富和简化了虚拟现实的场景构造,提高了场景的真实性,使虚拟现实更加人性化、智能化,让三维虚拟现实的实现变得更加简单轻松,必然有着非常广阔的发展前景。

(作者单位:广东省电子职业技术学校)

上一篇:信息技术支撑下物流课程教学改革创新的探究与... 下一篇:项目教学法在计算机组网技术教学中的应用