第3期2024年2月无线互联科技
Wireless Internet Science and Technology
No.3February,2024
作者简介:景忠(1986 ),男,工程师,学士;研究方向:信息系统,计算机网络㊂
基于Unity3D 的汽车虚拟展示系统设计与实现
景㊀忠
汽车展(国防大学政治学院,上海200433)
摘要:汽车的实体展示主要是依托汽车展厅来实现的,但通过展厅的方式在实际展示中存在空间㊁时间㊁地域的限制及成本高昂等问题㊂随着虚拟现实技术的快速发展,文章使用3DMax 来制作汽车模型,利用Unity3D 虚拟开发平台来完成各种元素的整合㊁材质光效的制作㊁运动动画的实现以及人车交互效果的达成,从而设计一款汽车虚拟展示系统㊂该系统可以弥补汽车展厅存在的各种不足,使用户获得更好的感观体验㊂
关键词:Unity3D ;汽车;虚拟展示系统中图分类号:TP311㊀㊀文献标志码:A
0㊀引言
㊀㊀随着科学技术的飞速发展,虚拟现实(Virtual Reality,VR)技术已经融入各行各业乃至人们衣食住行的方方面面,成为现代社会的一大热门技术㊂虚拟现实技术能够提供一种沉浸式的环境,让用户可以全方位㊁无干扰地体验展览内容,个性化的设置使得用户能够按照自己的节奏和兴趣浏览展品,呈现一种全新的㊁高度互动的体验方式㊂Unity3D 是Unity Technolgies 公司开发的3D 虚拟现实开发平台,能够实现桌面式虚拟现实系统㊂这种系统是以计算机屏幕为窗口,采用3D 图形技术,建立一个三维立体空间的交互场景,用户可以通过鼠标和键盘来操作和体验虚拟场景,达到交互的效果㊂因此,通过Unity3D 来设计开发汽车虚拟展示系统是不错的选择㊂
1㊀汽车展厅存在的不足
㊀㊀汽车展厅存在的不足主要表现在3个方面㊂1.1㊀空间限制
㊀㊀汽车展厅受限于实体空间的大小和布局,无法展示大量的实物,往往某种品牌的车辆只能摆下10台左右,无法涉及各种车型㊁颜㊁配置等内容,观众只能看到车辆的一小部分信息,很多感兴趣的内容无法通过展厅获取㊂
1.2㊀时间和地域限制
㊀㊀汽车展厅的开放时间和地点受到限制,观众需要在特定的时间和地点进行参观㊂比如汽车展厅通常在节假日开放展示,但很多观众因为旅游㊁探亲㊁工作等原因,没有办法抽出时间来现场参观㊂还有的观众居住地距离展厅较远,需要花费比较多的时间在往返的路上,因此有的参观者直接放弃观展的打算,影响了参观的客流量㊂
1.3㊀成本高昂
㊀㊀汽车展厅需要投入大量的资金用于展览策划㊁运输㊁存储和管理等方面的费用开销㊂一种品牌车辆花费在场地㊁宣传费用㊁展位搭建㊁展具物流㊁人员餐饮㊁发布会等各种支出,一次展览就可以达到几十万元㊂2㊀汽车虚拟展示系统设计
㊀㊀汽车虚拟展示系统不受空间限制,用户能够自主掌握体验时间,制作成本与汽车展厅相比有了极大的降低㊂用户只需要运行计算机上的虚拟展示系统应用程序,就可以灵活便捷地观看具体的展示效果㊂考虑到汽车需要进行静态展示,同时用户也需要看到汽车动态行驶的状态,所以本系统设计了汽车静态展示模块和汽车动态展示模块,由这2个模块共同实现了汽车虚拟展示系统的所有功能㊂3㊀汽车静态展示模块实现3.1㊀车体材质的选择
㊀㊀车体材质要实现在灯光下能够实时反射周围环境以及在不同颜之间进行柔和的过渡切换㊂本文选择Unity3D 着器Shader [2]中的车漆CarPaint,CarPaint 具有2组彩属性,分别是(Base Color 1,Tone
1,Tone 2)和(New Base Color,New Tone 1,New Tone 2)㊂通过设置这2组属性,可以将不同的车体颜存储在系统中㊂CarPaint 的Lerp 属性可以控制不同颜间进行渐变的快慢程度,而通过设置CubeMap 属性则可以实现车体在灯光下的反射效果㊂3.2㊀车体阴影效果实现
㊀㊀车体在聚光灯下逼真的阴影效果可以通过Unity3D 系统自带的聚光灯对象[1]来进行实时生成,但用这种方式生成的阴影需要依靠Unity3D 系统大量的实时计算,消耗了大量的运行资源,影响了其他功能的运作,最终影响整体的虚拟效果呈现,因此本
文提出一种通过手动制作阴影贴图来实现阴影效果的方法㊂虽然与Unity3D通过灯光来产生阴影相比,手动制作阴影贴图从制作角度来看的确步骤有所增加,但却解决了灯光阴影过高耗费系统运行资源的问题㊂阴影贴图效果实现步骤如下:
(1)在3DMax中,将视图切换到汽车模型的顶视图,通过渲染汽车模型,获得顶视图㊂
(2)在Photoshop中,通过调整阶的level参数,将汽车的顶视图全部转为黑,之后对图片进行高斯模糊和透明度修改,设定高斯模糊的半径为1.0像素,设定透明度为50%,按住shift键和鼠标左键生成一个正方形选框,将制作的阴影图片放入选框进行裁减,同时改变图片大小,长宽全部设为256像素,最后以.png的格式完成保存㊂
(3)在Unity3D中新建一个Plane对象,将该对象置于汽车模型下方㊂在资源面板中新建一个材质,将已经完成的阴影贴图设置在该材质的Texture属性上,之后将该材质通过鼠标拖放的方式,置于Plane 对象的Material属性上,同时将Shader属性设置为Transparent下的Diffuse,最后等比缩放Plane对象,贴合地放置在汽车的车底位置,阴影效果制作完成㊂3.3㊀车身灯光反射效果实现
㊀㊀汽车车身需要在聚光灯的照射下产生灯光反射效果,同时伴随车身在旋转展台上位置角度的变化,车身的反光效果也要实时地进行改变㊂要实现这种复杂的光感效果,就需要用到CubeMap贴图集,通过CubeMap来记录车身周围环境的实时信息㊂CubeMap贴图集制作步骤如下:
(1)首先,在3DMax中创建一个和Unity3D类似的展示环境,用VR-面光源替代Unity3D中的聚光灯对象,用一台摄像机来替代Unity3D中的汽车,同时设定V-Ray渲染器为3DMax的默认渲染器㊂其次,新建一个Reflect/Refract反光材质,将材质的贴图尺寸设定为512像素,并确定贴图来源为 从文件获取 以及设定贴图的存放位置㊂最后,选中摄像机,点击 Pick Object and Render Maps 按钮,就能通过渲染得到6张记录周围环境的贴图㊂
(2)在Unity3D的资源面板新建一个CubeMap贴图集,依次将6张环境贴图拖放到贴图集的Right㊁Left㊁Top㊁Bottom㊁Front㊁Back属性上,最后将完成的CubeMap贴图集通过鼠标拖放的方式,设置到车身使用的车漆材质CarPaint中的CubeMap属性上,车身灯光反射效果制作完成㊂
3.4㊀车身颜变化实现
㊀㊀汽车需要展示不同的颜效果,车身的颜变化需要柔和渐变,这里就需要对车身的CarPaint车漆材质进行相应的设置,同时用到Unity3D提供的动画剪辑功能,具体实现步骤如下:
(1)在Unity3D中,通过对CarPaint车漆材质的不同颜进行赋值,确定车身彩变化前后用到的颜㊂
(2)首先,在Unity3D的动画面板中新建动画剪辑changeColor㊂其次,在面板中到CarPaint车漆材质的Lerp属性,设定Lerp值为0,表示车身彩变化前的颜,设定Lerp值为1,表示车身彩变化后的颜㊂最后,由Lerp属性建立动画曲线,移动时间轴到2s的位置设定Lerp值为1,运行该动画,车身颜变化效果实现㊂
3.5㊀人车交互效果实现
㊀㊀汽车静态展示提供了一种人机交互效果,即用户通过使用鼠标能够自如地操控汽车,进而从任意角度观看欣赏汽车,具体实现步骤如下:
首先,在Unity3D的资源面板中导入脚本程序包Scripts[1]㊂其次,选择摄像机对象Main Camera,同时在场景视图中设定Main Camera的拍摄对象为汽车,并添加组件Mouse Orbit㊂最后,在场景对象面板中,将汽车对象用鼠标拖动的方式移动到Main Camera对象的target属性上,这样人车交互制作完成㊂
4 汽车动态展示模块实现
4.1㊀汽车车轮转动效果实现
㊀㊀汽车动态展示离不开车轮转动效果,具体制作步骤如下:首先,在Unity3D中选中汽车的车轮对象㊂其次,在Unity3D动画面板中新建动画剪辑chelun,预设车轮绕着坐标轴的X轴旋转,由Rotation.x属性建立动画曲线,移动时间轴到1.5s的位置,设定Rotation.x属性值在原有的基础上增加360㊂基于汽车车轮的循环滚动,在资源面板中选中chelun动画,在对象属性面板中将该动画的Wrap Mode属性设为Loop㊂最后,再次选中车轮对象,添加Animation组件,将chelun动画通过鼠标拖动到车轮属性面板Animation组件的Animation属性上,车轮转动效果制作完成㊂
4.2㊀车头灯光效制作
㊀㊀汽车在正常行驶中需要车头灯光效,Unity3D提供的Lens Flare[3]镜头光斑特效组件可以实现这一效果,实现步骤如下:首先,在Unity3D的资源面板中新建一个Lens Flare特效资源,同时命名该资源为light,通过鼠标将车灯效果贴图集laser.dds拖到light的属性FlareTexture上㊂其次,在Unity3D中新建一个对象并命名为chedeng,给chedeng对象添加一个Lens Flare组件,并将灯光特效资源light拖到chedeng的Lens Flare组件的属性Flare上,这样车头灯光效便制作完成,如图1所示㊂
4.3㊀汽车隧道行驶效果实现
㊀㊀汽车的行驶效果设定在隧道中进行,为了使汽车的运动和真实情况接近,本文通过让汽车所在的隧道向汽车行驶的反方向进行运动,最终产生汽车直线正向行驶的效果,具体实现步骤如下:
图1㊀车头灯光效
(1)在Unity3D场景对象面板中选中隧道对象,之后在动画面板中新建动画剪辑move,因为汽车前进方向是坐标Z轴的正方向,根据动画设计,隧道的运动方向就是坐标Z轴的负方向㊂
(2)在Unity3D动画面板中到Position.z属性,移动时间轴到1s,再将Position.z属性值设为-10㊂之后在资源面板中选中move动画剪辑,将move的Wrap Mode属性设为Loop㊂最后通过鼠标拖动该动画至隧道对象的Animation组件的Animation属性上㊂(3)在Unity3D中新建一个对象资源,将隧道对象通过鼠标拖动到新建的对象下,使其成为该对象的子物体,之后将该对象复制多份,并将它们拼接成一条供汽车行驶的完整隧道,汽车隧道行驶效果制作完成㊂5㊀系统测试与发布
㊀㊀在Unity3D中,点击File->Build&Run,在Platform 中选择PC.Mac&Linux Standalone选项,之后点击Switch Platform,就可以将此项目构建为PC端的展示平台㊂点击Build and Run,选择保存目录,就可以保存并运行㊂至此,汽车虚拟展示系统制作完成㊂
6㊀结语
㊀㊀Unity3D是一款功能强大的虚拟现实开发平台,可以将3D模型㊁动画和交互式元素进行整合,制作出逼真的虚拟展示效果,解决传统汽车展厅存在的各种不足㊂各种先进技术包括高清渲染管线(High Definition Render Pipeline,HDRP)㊁可以支持光线追踪的深度学习超级采样(Deep Learning Super Sampling,DLSS)算法等的不断出现,使虚拟展示系统能够获得3A级的画质效果㊂同时,Unity3D支持Mac OS㊁Windows等操作系统,使得系统能够在包括手机㊁PC㊁Web㊁XR等多种平台上流畅运行,最终让越来越多不同平台的用户可以享受到汽车虚拟展示系统带来的良好感观体验㊂
参考文献
[1]刘国柱.UNITY3D/2D游戏开发从0到1[M].北京:电子工业出版社,2018.
[2]熊新科.UNITY3D内建着器源码剖析[M].北京:人民邮电出版社,2019.
[3]周頔,孙辛欣,盛歆漪.UNITY3D PLAYMAKER游戏设计与实现[M].北京:电子工业出版社,2019.
(编辑㊀王雪芬)
Design and implementation of automobile virtual display system based on Unity3D
Jing Zhong
The Political College of the National Defense University Shanghai200433 China
Abstract The physical display of cars is mainly achieved through car showrooms but there are limitations in space time and geography as well as high costs in actual display through showrooms.With the rapid development of virtual reality technology this article uses3DMax to create car models and uses the Unity3D virtual development platform to integrate various elements create material lighting effects implement motion animations and achieve human vehicle interaction effects.Therefore a car virtual display system is designed.By using this system various shortcomings of car showrooms can be compensated for and users can obtain a better visual experience.
Key words Unity3D automobile virtual display system