基于web的虚拟现实汽车展示系统

时间:2022-08-30 12:31:25

基于web的虚拟现实汽车展示系统

【摘要】虚拟现实技术的迅速发展,促使汽车等产品的虚拟展示具备动态交互和三维可视化等特点。本文采用3Ds MAX制作汽车及场景模型,通过Unity3D实现系统辅助模块和汽车核心展示模块,编译为web Player展示插件,实现网上360°的汽车展示。系统交互性强,用户可实时更换汽车颜色,局部放大或缩小,并可从任意角度观察汽车的内外部信息等,既从视觉上满足客户的需求,又给客户带来更多自主挑选的机会,节约购车时间。

【关键词】web;Unity3D;虚拟现实;汽车展示

1.引言

随着居民消费水平的不断提高,汽车销量逐年攀升,人们在购车前又比较注重汽车的车型、外观和各种性能等诸多信息,而亲自到各大车行进行实地考察,既费时又费力[1]。随着互联网技术的发展,各种虚拟汽车展示系统应运而生,但多数系统只局限于二维图片或flas的展示,无法详细展现汽车的内部特性。

虚拟现实技术的迅速发展,促使人们对具有动态交互、三维可视化效果的产品信息的需求日益强烈。web三维展示技术可直观、高效地构建具备良好交互性和沉浸性的虚拟展示系统,通过互联网缩短人们和产品之间的距离,全面展现产品的各项性能。通过该技术实现的汽车展示系统,不仅使用户提早看到汽车模型,又给厂商创造了一种新的营销方式,减少企业的销售成本,提高了企业竞争力[2]。本文建立了一个基于web的虚拟现实汽车展示系统,交互性强,用户可使用任意主流浏览器高速、便捷地浏览系统信息。其中,第一部分对全文进行了概述,第二部分介绍了系统的整体结构,第三部分重点阐述了系统研发过程中用到的关键技术,最后得出结论。

2.系统总体结构

web虚拟现实汽车展示系统结构可分为三个部分:模型制作、展示系统制作、web支撑环境。系统结构图如图1所示:

图1 系统结构图

模型制作:主要提供系统展示所需汽车及场景模型,通过3DS MAX制作导出fbx文件,并利用Unity3D将fbx文件转换成可动态加载的assetbundle格式;

展示系统制作:主要通过Unity3D制作系统展示界面、搭建三维场景等,并编辑系统核心算法及相应的交互功能,最后打包为一个能够实现动态加载3D模型的Web Player展示插件;

web支撑环境:主要由浏览器可以解释执行的HTML页面以及Unity3D 开发的Web Player展示插件组成,并由XML负责汽车展示信息的存储、组织和管理。

web汽车展示系统的研发流程图如图2所示。

3.关键技术分析

3.1 3Ds MAX模型制作

3D Studio Max,常简称为3Ds MAX,是一款基于PC系统的三维动画渲染和制作软件。广泛应用于影视、工业设计、建筑设计、三维动画、游戏、辅助教学以及工程可视化等领域。

根据要展示汽车及场景特点,本文采用3Ds MAX分别设计开发相应的三维模型,以达到理想的真实感效果。通过3Ds MAX制作模型并导出格式为fbx的文件,再通过Unity3D转换为可识别格式。模型中的动作是通过自动识别来播放模型文件中的指定动作,如打开车门等。通过3D模型的制作完成动作的设定,从而达到更优的交互效果。模型制作不是本文阐述的重点,在这里不再详述。

图2 web汽车展示系统研发流程图

3.2 Unity3D开发展示系统

Unity3D是一个多平台的游戏开发工具,是一个全面整合的专业游戏引擎,具有更优越的效果和更高的扩展空间。对DirectX和OpenGL 拥有高度优化的图形渲染管道。支持所有主要文件格式,并能和大部分相关应用程序协同工作。Unity内置的NVIDIA、PhysX物理引擎能够带来逼真的互动感觉,提供了具有柔和阴影与烘焙lightmaps的高度完善的光影渲染系统,非常适合产品三维虚拟展示在交互访问和逼真表现的要求。可场景至Windows、iPhone和Android等平台,也可以利用Unity web player插件网页应用。在网络方面,Unity3D提供了强大的可视化编辑器和语言层面的网络类,脚本采用Javascript、C#、Boo等语言,常用来快速制作三维视频游戏、信息可视化等互动内容[2]。

本文通过Unity3D进行3D模型格式转换、系统辅助模块和展示模块设计以及相关核心算法的编写,采用C#作为脚本语言。

3.2.1 3D模型格式转换

通过Unity3D将3Ds MAX导出的fbx模型文件转换成可动态加载的assetbundle格式。通过添加代码,在Untiy3D的菜单“Assets”中添加“Build AssetBundle From Selection - Track dependencies”和“Build AssetBundle From Selection - No dependency tracking”两个选项(如图3所示),可直接实现对选中模型的格式转换。

格式转换主要代码如下:

3.2.2 系统辅助模块的设计

通过Unity3D设计汽车展示系统界面,可同时实现不同场景和光照天气的搭配、汽车颜色的实时变换、汽车部分动作展示以及相关帮助信息。

汽车展示系统界面如图4所示。

展示区域底部为菜单面板,当鼠标离开菜单区域时,菜单面板自动隐藏。用户可以直观地浏览汽车,根据菜单提示实时地进行操作。下面对基本展示功能予以说明。

(1)鼠标操作:用户可通过鼠标的左、中、右三键来控制产品模型运动。点击并拖动鼠标的左键可以在360°视角内观察模型各个部位的细节;按住鼠标中键可移动模型在展示场景中的位置;按住鼠标右键进行拖动,可对模型进行拉近或拉远操作。

(2)选择场景:可在展示区内加载不同的场景,如草地、楼宇、展台等,以实现更加丰富的展示效果。

(3)光照天气:可随意变换不同的天气状态,使汽车模型在不同环境下进行展示,增强展示效果。

(4)颜色调配:滑动调色板相应按钮,可对产品模型的主体颜色进行实时调配,以满足客户的不同喜好。

(5)局部动作:若模型自带动作,系统将自动将动作信息添加到局部动作菜单中,单击菜单中对应的动作,如图5所示,即可播放模型里自带的动作动画。

图5 局部动作效果

3.2.3 系统核心算法

(1)模型居中显示

当模型动态地加载到展示界面时,最主要的问题就是让模型能够出现在界面的中心位置。因此模型居中显示是一个关键算法,通过scaleConst这个常量来约束模型的尺度,从而实现模型的居中置位。主要代码如下所示:

(2)调用模型中的动画信息

在3dsMax或unity3d软件中,可为3D模型设置动画。如果模型文件里附带动画信息,本系统可自动检测,并将其添加到“局部动作”菜单列表,以便用户进行操作。主要代码如下所示:

3.2.4 将展示系统编译打包

在Unity3D中研发的展示系统,要到web就必须将其打包为一个能够实现动态加载3D模型的Web Player展示插件,如图6所示,选择“Platform”中的“Web Player”,单击Build,进行编译打包。

图6 打包为Web Player展示插件

3.3 构建web支撑环境

web支撑环境主要由浏览器可以解释执行的HTML页面以及Unity3D开发的Web Player展示插件组成,并由XML负责汽车展示信息的存储、组织和管理。

web汽车展示系统支撑环境界面如图7所示。

图7 web支撑环境

3.3.1 web环境调用展示系统

在Unity3D中使用以下程序调用系统入口:

HTML页面中的getUrl函数为整个系统总入口,其中访问绝对路径使用php直接获取,代码如下所示:

在Unity3D中,获取文件名、主机名:

3.3.2 XML节点记录

XML是可扩展标记语言,标准通用标记语言的子集,一种用于标记电子文件使其具有结构性的标记语言。与其他数据库不同,它仅仅是存储数据。

在展示系统中展示的汽车模型基本信息通过XML节点进行记录, 一条汽车模型信息的典型XML节点格式如下所示:

这些属性分别记录了汽车的名称、上市年份、排量、价格、变速箱、百公里油耗、长宽高等信息, 这些信息添加到XML数据库并存储于网站服务器, 供展示系统在初始化时载入并进行解析。

4.结语

随着网络及3D展示技术的快速发展,产品在线三维展示、实时交互等功能已成为越来越重要的需求。

本文研究的基于Unity3D的虚拟现实web汽车展示系统能够利用Untiy3D技术建立产品的真三维模型的交互展示及跨平台运用,能够完成产品的外观展示及相关交互功能。通过web网络的展示,让用户不受时间、空间的限制,与产品进行一种动态交互,节约购车时间,给基于web的3D展示技术在汽车生产销售领域的发展带来新的前景。

参考文献

[1]石娟娟.基于WEB3D的汽车虚拟展示系统的研究[C].内蒙古:内蒙古大学出版社,2009:76-78.

[2]倪乐波,戚鹏等.Unity3d产品虚拟展示技术的研究与应用[J].数字技术与应用,2010(9):54-55.

[3]任国栋,陈林华等.基于Unity3D的虚拟博物馆信息可视化系统[J].计算机系统应用,2013,22(9):86-90.

作者简介:

辛献杰(1962-),男,大学本科,毕业于海军航空工程学院自动控制工程专业,现供职于烟台生产力促进中心,主要从事先进制造技术发展研究、科技体制改革、科技发展战略研究、管理信息系统与数据库研究等。

通讯作者:刘晓娜(1986-),女,山东烟台人,毕业于沈阳航空航天大学计算机应用技术专业,硕士研究生,现供职于烟台生产力促进中心,主要从事虚拟现实系统研发等。

上一篇:光电传感器在信息自动检测领域的应用探讨 下一篇:遥感影像图像拼接算法研究