现在的位置: 首页 > 综合 > 正文

基于Papervision3D 的在线产品展示技术研究

2013年09月01日 ⁄ 综合 ⁄ 共 3152字 ⁄ 字号 评论关闭

2009 8 襄樊学院学报 Aug.,2009 30 卷第8 Journal of Xiangfan University Vol.30 No.8

 基于Papervision3D 的在线产品展示技术研究

李学锋 (襄樊学院 数学与计算机科学学院,湖北 襄樊 441053)

摘要:

分析当前在线三维产品展示技术的特点,提出基于Papervision3D的在线产品展示方法,并对其关键技术——建模技术、在线渲染技术和实时交互技术等——进行分析与探讨. 最后,通过一个应用实例说明该技术的有效性.

关键词:Papervision3D;三维产品;在线展示;实时交互

中图分类号:TP391.41 文献标志码:A 文章编号:1009-2854(2009)08-0024-03

在互联网盛行的今天,电子商务已成为人们生活中的一部分. 产品的在线展示是电子商务中的一项重要内容,其效果往往是影响客户购买的决定性因素之一. 但是,当前大部分电子商务产品展示系统提供给用户的仅是产品的静态图片,展示的效果受到很大的局限性. 随着计算机技术与电子商务的发展,人们希望能在线地对产品按照自己的视角去多方位、自主地了解,更希望能体验产品的使用效果. 由此引发了在线的、可交互的实时三维产品展示技术的产生与发展.

 1 当前的在线三维产品展示技术 当前的在线 3D 技术主要有 Java3D 技术、 VRML/X3D技术、Flash3D技术. Java3DSUN公司在1998年年底正式推出. 它是一个用于实现3D显示的应用程序接口(API),用来书写带有三维图形的应用程序和Applet. Java3D建立在Java2(Java1.2)基础之上,实现了三维形体的生成、贴图、灯光等一系列三维显示所用到的功能 [1] . Java3D已于2003年停止了升级开发,同时其执行速率不高,微软终止其产品中对Java虚拟机的支持等,都在一定程度上限制了它的进一步应用.     

 VRML2.0(VRML97)199712月正式公布的国际标准,可以编写三维动画片、三维游戏、计算机三维辅助教学. 但这种简单的语言功能较弱,与 Java语言等其它高级语言的连接较难掌握 [2] . 2001 8月由Web3D联盟发布了X3DX3DVRML的扩展,并集成了XMLX3D相对于VRML97提出了许多新的特性 [3] . 但到目前为止,没有大公司在背后作强有力的技术推动,开发工具的集成度、便捷性,可用性方面有待完善. VRML/X3D需要安装专门的浏览器,这也是一个影响普及使用的大问题.
     Flash3D
技术是近年迅速发展起来的一种在线3D技术,Flash3D 技术与前二者相比,主要优势在于: 1)FlashPlayer 播放器已相当地普及,根据调查显示,约 98.7%以上的PC上都有安装 [4] 2)Flash技术背后有Adobe 公司的强力支撑,Adobe 提出的RIA技术架构已成为当今Web 发展与应用的一个热点. 目前Flash3D 的主要引擎有Papervision3DAway3DSandy3DAlternativa3D 等,其中Papervision3D 以其开源、支持AS3.0API 文档齐全、性能优越受到好评.

 本文将对基于 Papervision3D 的三维虚拟产品展示系统的关键技术进行分析研究.

 2 基于Papervision3D在线虚拟产品展示技术 在线虚拟产品展示系统的关键技术有:三维建模技术、三维模型在线渲染技术、在线交互技术等.

2.1 三维建模技术与模型的导入 三维建模是在线虚拟产品展示中的重要一环, Papervision3D支持三维模型格式有:ASE文件、 Collada格式、MD2格式、Max3DS格式、Sketchup 格式等,当前的Papervision3D支持的主流格式是 Collada格式. 可以使用3DS MAXMAYAGoogle Sketchup等三维建模软件来制作产品的三维模型,然后导出为Collada模型文件. 物体在三维建模中,首先,一定要事先确定物体的比例大小以及三维建模软件的长度单位,一般来讲,设置模型的尺寸比例,最好在建模时将模型整体缩小,加载时通过三维模型对象的scale参数对模型进行整体缩放到适当的尺寸;其次,建模时将模型放置在坐标原点处,可方便一些效果的实现;再者简化模型,建模后,对模型进行优化及三角形的简化处理,通过删除或修改模型中对视觉效果影响不大的部分网格面片信息(包括顶点、边和三角形面片等) 来减少三角形面片数量,以达到降低模型交互显示或实时传输的开销的目的. Collada模型文件可以单独文件形式加入,也可以 XML的节点对象的形式加入.

目前在Papervision3D 里有两种使用collada模型的方式,1)使用Collada类,简便但不支持骨骼等动画信息,适合导入静止的场景模型;2)使用Dae类,支持骨骼动画. 这二个类都在 org.papervision3d.objects.parsers. 由于不同三维软件的默认单位不同,制作模型时的大小和三维软件的不同,模型的比例尺scale值都是不一样的,在加载时一定要对模型的scale进行调整. 实践发现就是在加载三维模型时这二者也不相同. 对于同一模型,使用Collada类加载时,默认的大小与使用Dae类加载的scale=100的大小一样.

 2.2 三维模型的在线渲染技术 要做到逼真地展示产品,对模型进行纹理贴图与光照处理是必不可少的. 通过纹理贴图展示出产品的特色与细节,光影效果的处理会让渲染出来的场景看上去更加真实. Papervision3D BitmapAssetsMaterialBitmapColorMaterialBitmap FileMaterialBitmapMaterialBitmapViewport MaterialBitmapWireframeMaterialColorMaterial MovieAssetMaterialMovieMaterialVideoStream MaterialWireframeMaterial 等,其中使用最多最方便的是BitmapFileMaterial,它直接将位图文件导入作为模型贴图;另外,通过 MovieAssetMaterial MovieMaterialVideoStreamMaterial 等,可以使用视频、movieclip 来作贴图. 任何 movieclip 能完成的效果,如半透明、模糊、辉光、动画等等都可以作为贴图. 不同的光照效果,需要不同材质配合,光必须照在特定的材质上才能看到相应的效果,不同材质表现出的效果是不一样的. 当前,Papervision3D 支持点光源,同时提供了多种材质. 在使用阴影的时候,需要指定相应的阴影材质,比如GouraudMaterial PhongMaterial 材质等. 虽然 Papervision3D 引擎提供了一些阴影材质,但都是基于纯色的阴影效果而不是位图的的阴影效果. 但是,三维模型上一般使用位图贴图,如何才能将位图和阴影效果叠加到一起. 一般是通过制作一个Shader 和一个BitmapMaterial,再用ShadedMaterial 将它们混合到一起.

2.3 在线实时交互技术 在线实时交互是在线产品展示中用户体验产品特性的关键所在. 比如在展示手机时,可以通过旋转手机让用户从各个角度观看手机的外形、选择手机的颜色;可以将手机的开机显示作成视频,点击开机按钮时,在手机的屏幕上播放;可以让用户在线进行手机电池的拆卸与安装. 通过这些交互让用户充分体验产品的特性,增加用户对产品的了解. 在线三维交互中的关键技术有:事件的监听与执行机制、3D场景中鼠标的定位、三维物体的平滑缓动等

抱歉!评论已关闭.