基于虚拟现实技术的3D智慧校园设计与实现

时间:2024-11-13 11:38:02 来源:作文网 作者:管理员

摘 要: 以上海海洋大学为例,基于虚拟现实技术设计出与现实校园相近逼真的虚拟环境,用户通过计算机的操控与该虚拟环境进行交互,实现对智慧校园的控制。利用Auto Maya、Photoshop、Illustrator等建模、美化软件,进行校园建筑数据获取、3D模型的建立以及贴图纹理的映射等;利用Unity 3D引擎进行用户交互设计,建立起大学实际仿真景观的3D智慧校园。在此基础上,还实现了小地图的展示、界面多参数的调控、界面定位等个性化功能。

关键词: 3D智慧校园;虚拟现实技术;Auto Maya建模;Unity3D引擎

Design and Interaction of 3D Digital Campus based on Virtual Simulation Technology

2 College of Information Technology,Shanghai Ocean University, Shanghai 201306,China)

Abstract:Taking Shanghai Ocean University as a studying project, an intelligent 3D campus which is very close to the reality, is designed based on Virtual Reality Technology. Users can interact with this virtual environment by computer, and realize the control of this intelligent campus. Using some modeling, picture processing and engine software such as Maya, unity3D, Photoshop and the Illustrator, the functions of this intelligent 3D campus and the interaction between users and the environment are implemented through a series of steps including collecting datดa of the building , establishing the 3D model, texture mapping and the design of the interaction. In the meantime, the paper also achieves someฎ personalized functions, such as showing the map, controlling multiparameter of the interface, and locating.

Keywords:Intelligent 3D Campus; Virtual Reality Technology; Auto Maya Modeling; Unity3D Engine

0引 言

当今,虚拟现实技术已进入了成熟发展期,由此带动了信息数字化的强势推进。“数字校园”的概念也随之应运而生。而在此基础上衍变更新的“智慧校园”甫一面世,即已成为学界宠儿,获得了多方的瞩目及关注。“智慧校园”是通过对于校园的三维建模,在计算机中构建出校园的整体模型,而后通过一些交互手段来实现用户对于数字校园的操控,具有信息集中化、界面可视化、操作简便化等优势特征。目前大部分学校均已展开有关3D数字校园建设的研究,本文即在此背景下,推出一套设计方案,致力于为各所高校的校园数字化建设提供一种更加可靠高级的建模与交互方法。

传统的平面地图以及简单的用户操作体验已经逐渐难以满足用户日益增长的需求。本文即以上海海洋大学为案例,设计出的3D智慧校园不仅可以使校内的同学轻松在自己的电脑上模拟行走学校路况,熟悉地形以及各个建筑物的用途,有效利用学校各种资源。不仅如此,还可以将其作为一个对外宣传推广的平台,对外界更加真实立体地传播校园的实际情况,使人们有如身临其境,并获得有关学校的直接贴切的第一手珍贵观感。与此同时,本文也提供了一个效果良好的3D智慧校园实际案例,在建模、贴图、引擎以及用户操作方面,都具有一定的创新价值。

结合开发成本、✫开发周期、以及学校的一些特殊情况,本项目选择了真实感、操作感、沉浸感等方面更胜一筹的maya为基础先建立起模型,然后通过Photoshop以及Illustrator进行美工图片处理,最后利用Unity 3D作为整个数字校园的运行引擎来最终实现上海海洋大学的3D智慧校园。 1 软件功能与规划

1.1 软件实现流程

(1)需求分析与功能构想。该流程是整个项目的关键,不仅需要考虑项目最终达到的效果,即传递智慧校园在时下学生校园生活的应用便利,还需要多方面考虑完成项目所需的人力、物力、时间,由此制定完善的项目设计规划;

(2)采集校园建筑数据、平面图。通过google地图等工具,多角度采集校园平面数据图,该流程是随后建立模型的基础,模型的比例、模型的材质都与采集的素材密切相关;

(3)基于Auto Maya进行3D建模;

(4)利用Photoshop等软件制作模型与贴图。一方面为前期制作的3D模型选择材质、绘制纹理贴图,另一方面为Unity引擎设计的软件设计界面UI;

(5)基于Unity引擎搭载3D智慧校园虚拟环境。利用javascript或C#程序设计语言,以第三人称为视角搭载3D智慧校园软件;

(6)评价调试与功能拓展。Bug检测与功能改善。

整个软件主要分为两大模块,分别是建模与引擎搭建。前期主要以3D建模为主,后期主要是基于Unity3D平台程序设计,通过C#和javascript编程语言设计GUI界面,同时提供给用户交互功能体验。

校园模型构造大体分为三个阶段,如图1所示。

图1数字模型的设计步骤

Fig.1 Design steps of the digital model

在3D建模初具所成之后,便可以开启Unity3D引擎的搭载进程,其界面显示以2D与3D相结合的手法实现,用户导航等功能界面将以2D、GUI进行设计,而在3D虚拟环境中则以3D进行布局。在此过程中,可以将前期Maya中设计的模型导出为obj格式或者fbx格式,导入到Unity3D引擎中进行程序控制。整个程序功能模块如图2所示。

图2程序功能模块图

Fig.2 Functional modules of the program

1.3 功能实现

基于3D引擎的搭载主要实现以2D界面的形式宣传与介绍校园信息,以3D模式进行虚拟环境用户操控与体验,且重点以3D功能搭建为例进行介绍:实现以第三人称视角控制虚拟人物在数字校园环境中的游览;以基本符合现实的比例构建数字校园环境,力求自然、逼真;构建数字校园水环境,包括不同透明度和折射度的湖、喷泉、瀑布等;仿真多种物理效应,诸如从高空坠落的重力效应、刚体碰撞试验、对于楼梯还是墙壁的分析以判定其是否可以向上攀爬等机制;营造环境3D声效,增强现实感;大小地图切换、定位、导航等基于虚拟数字校园的功能模块;模拟一天24小时不同时间段的光线的环境氛围。

2 校园3D建模的设计

2.1数据资料的收集

在数据资料的收集中,上海海洋大学各个教学楼的设计图纸,实地照片,Google earth的俯视图,地形图,剖面图等,这些都可以作为后期建模的基本数据。学校各建筑的平面图则如图3所示。

图3学校各建筑的平面图

Fig.3 Plans of different buildings in school

2.2多边形建模实例

在Maya建模中,大量的运用布尔操作,而布尔操作具体来说可分为三种,分别是:Union, Difference, Intersection。在建模过程当中,楼梯的制作也是通过多边形建模的整合进行实现的,多个立方体的参数设置如表1所示。

表1长 ☻方体的参数设置

Tab.1 Parameter settings of the cuboid

长方体

Scale x

Scale y

Scale Z

Translate

A

4

6

10

B

6

3

3

(0.155,6.4,-0.5)

如果要做11阶台阶。Y方向每一次改变(6.4-0.8)/11=0.5,Z方向每一次改变[6.4-

(-0.5)]/11=0.6,于是就有11组数据,具体将代表11个长方体的位置。之后,多次使用Mesh->Booleans->Difference命令即可得到楼梯,如图4所示。

图4所得楼梯效果图

Fig.4 Design sketch of stairs

2.3 材质与纹理贴图

在对模型建模以后,便要对建模设定材质,选取贴图。材质是指定制物体对灯光所做出的自然折射状态。而贴图则表示物体表面的色彩,好的贴图会增加物体的真实性,逼真性。Maya中常用的材质如表2所示。

表2 Maya中主要的材质

Tab.2 Main materials in Maya

名称

特点

应用

Lambert

无光泽,无亮点

应用在纸,土壤等质感

Phong

光亮透明光滑

应用在塑料,玻璃或金属等材质上

Phong E

是对Phong的升级

应用和phong类似

Blinn

更为真实,渲染慢 在金属的应用上比phong更好

Anisotropic

适合表面有纹理的质感上

CD,毛发或丝绒等

贴图主要分为2D的和3D贴图,如表3所示。

表3 Maya中的主要贴图

Tab.3 Main body paint in Maya

种类

作用

Color(色彩)

显示材质的颜色效果

Transparency(透明度)

调节材质的透明度

Incandesence(白热光)

能让物体表面看起来相爱那个发光的效果

Bump(凹凸)

主要是利用贴图上的纹理来改变表面上的法线

Displacement(置换)

Displacement和 Bump最大的不同是Displacement Map 会实际改变物体的外形。

Diffuse(散射)

决定了表面吸收光及向四周散射光的数量

Translucence

产生半透明的效果,让材质可以由灯光产生穿透或是散射的能力

Specular

指的是镜面反射率

Reflectivity

制作金属反射出环境四周的效果

在Maya中的2D贴图主要分为3种方式:Normal,Projection和Stencil;这些不同的贴图方式,主要用来处理贴图和物体表面之间的关系。而本文获得贴图的主要步骤为:获取UV――>将UV导入到PS中->根据UV绘制贴图[3]。

3 基于Unity3D引擎的校园人机交互的搭建

3.1 主场景设计与实现

利用人物模型,模拟真实的场景效果。主界面右下角为场景中的应用菜单,具体如图5所示。

图5软件主界面效果图

Fig.5 Main interface design sketch of the program

3.1.1 小地图导航的设计与实现

在主界面的左下方是场景中的小地图模式,点击地图按钮后,小地图便将从最左边呈现出来如图6所示的效果。

图6小地图效果图

Fig.6 Design sketch of the map

图中圆点表示人物在校园中所在的位置,同时小地图右边的的“+”与“-”符号按钮,通过“-”符号按钮可以调节小地图的视野范围。

小地图的设计原理:采用在场景中另设一个摄像头的机制,将新设立的摄像机命名为camera0,而将原主场景中的摄像机设为main camera;Main Cameara负责主场景中景色的渲染;再将Camera0摄像机放在高空中,其镜头对向地面,小地图的成像实际就是高空摄像机对地面的投影;此后再将摄像机的X、Z坐标与场景角色的X、Z坐标完成绑定,由此就实现了小地图的设计[4]。

利用Unisky插件可以在场景中模拟不同的天气,不同的时间段场景中的景色,其视像可如图7所示。

图7不同时间段,不同天气情况下的效果图

Fig.7 Design sketch of different times and weathers

3.1.3 设置界面多参数的调控

设置界面中,有五个参数是可以调控的,分别是音效、音乐、行走速度、旋转速度以及时间轴。研究中采用滚动条的方式进行调控,如图8所示。

图8界面参数调控效果图

Fig.8 Design sketch of the interface parameters’s control

由图8可见,左下角的与时间同步滑动条是可以调控的,以决定进入场景时的时间景色是否与系统时间保持一致,由此看家在不同时间段进入各自场景中的呈现均是不同的。

3.2 角色操纵与调控

3.2.1角色移动控制程序。

首先判别控制的角色是否在地面,倘若处于地面,则可以通过按键控制角色移动,同时调用封装好的角色行走动画。实现代码如下:

if (controller.i♒sGrounded == true){

if (Input.GetKey (KeyCode.W)){

animation.CrossFade("01_Cool Walk");

Vector3 forward = transform.TransformDirection(Vector3.forward);

controller.Move(forward * movespeed *Time.deltaTime);

同时,也可以对人物失重后的预设场景,模拟重力加速度,代码如下:

movedirection.y -= gravity * Time.deltaTime;

controller.Move(movedirection * (Time.deltaTime * 2));

通过以上代码便实现了利用键盘W、A、S、D键对场景中任务的控制。此外,配合Unity引擎自带的Smothfollow脚本,将会使main camera总是跟随场景人物移动。

3.2.2 角色视角调控

滑轮调节远近视角、Q、E键调解视角的高低,代码如下:

varscrollkeyspeed = 5(定义滑轮速度) if(Input.GetAxis("Mouse ScrollWheel") != 0){

distance = distance + Input.GetAxis("Mouse ScrollWheel") * Time.deltaTime * scrollkeyspeed * 80;}

if (distance < 10){distance=10;}

if (distance > 40){distance=40;}

3.2.3刚体碰撞试验与重力效应模拟

刚体碰撞参数设置如图9所示。

图9刚体碰撞参数设置

Fig.9 Parameter settings of rigid body collision

在设置模型时勾选generate colliders,从而给模型添加刚体,这样当场景中的人物接触建筑时,便不会穿过建筑了。

利用下面的条件语句可判断人物是否落地:if (controller.isGrounded == true){}倘若人物没有落地,则movedirection.y -= gravity * Time.deltaTime;否则,人物即可判定为落下。

另外,也可以定义浮点型变量gravity作为重力系数,重力系数越大,人物落下去的速度越快。也就是,将以此来模拟人物的降落特效[5]。

4 结束语

文中基于Auto Maya 3D建模与Unity3D引擎搭载,提出了构建3D校园虚拟与现实人机交互的新思路。该平台对于各大高校建立数字校园具有很强的指导意义,功能拓展性强,可以将校园信息与3D数字校园进行有机结合,甚至可以与时下电子商务彼此结合。该项目对于高校实用性强,可提高学校的知名度与推广度。日后可以进一步深入挖掘U3D的功能与应用,其研究成果将具有良好的应用前景。本文研究给3D数字校园环境与用户间开拓了一种较为新颖的交互思路,为虚拟现实技术在校园中的实际应用提供了一种可用性较高的实现模式。

参考文献:

[3](美)米德,(美)阿瑞马.Maya 8完全学习手册[M].北京:清华大学出版社,2009.

[4] 亚峰,于复兴. Unity3D游戏开发技术详解与典型案例分析[M].北京:人民邮电出版社,2012.

[5] 宣雨松.Unity 3D游戏开发[M].北京:人民邮电出版社,2012.

基金项目:上海市大学生科创项目(B-5106-13-0005)。

黄盖先(1994-),男,河南濮阳人,本科生,主要研究方向:空间信息与数字技术;

通讯作者:艾 鸿(1970-),女, 四川新津人,硕士,讲师,主要研究方向:数据挖掘、数据安全、计算机教育研究。

1 基金项目:上海市大学生科创项目(B-5106-13-0005)。

黄盖先(1994-),男,河南濮阳人,本科生,主要研究方向:空间信息与数字技术;

艾 鸿(1970-),女, 四川新津人,硕士,讲师,主要研究方向:数据挖掘、数据安全、计算机教育研究。


热门排行: 教你如何写建议书