【基于Unity的驾驶模拟器的设计与实现8200字(论文)】_第1页
【基于Unity的驾驶模拟器的设计与实现8200字(论文)】_第2页
【基于Unity的驾驶模拟器的设计与实现8200字(论文)】_第3页
【基于Unity的驾驶模拟器的设计与实现8200字(论文)】_第4页
【基于Unity的驾驶模拟器的设计与实现8200字(论文)】_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于Unity的驾驶模拟器的设计与实现目录TOC\o"1-3"\h\u第1章绪论 第1章绪论1.1研究背景随着信息科技与现代计算机的飞速发展,虚拟增强现实摄影技术已经是20世纪一项必不可缺的全新一代实用技术。虚拟人和现实的基本视觉实现技术方法也就是通过利用计算机技术模拟的各种虚拟人和现实视觉环境应用来实现给虚拟人世界带来沉浸式的一门视觉技术[1]。简单来说,就是把每个人们完全带到了一个计算机虚拟世界中,把手机虚拟和增强现实完美结合在一起来,让每个人们完全沉浸在其中。虚拟三维现实世界是通过产生一个虚拟三维空间的一种虚拟现实世界,利用虚拟电脑技术模拟了现实的三维世界。使用手机虚拟连接现实的同时人们都可以直接感受到人的视觉,听觉和手的触觉。让更多人真的能够身临其境,可以观察虚拟现实世界的事物[2]。近年来,随着汽车拥有人数的逐年上升,渐渐出现了驾驶员非职业化、交通臃肿混乱、交通事故频发等诸多问题。这些问题的解决办法可以从提高驾驶员的专业素质、加强驾驶员的驾驶培训等方面考虑。汽车驾驶模拟器作为驾驶培训的新手段,相比于传统驾校培训,能够提供更加安全、便利、高效以及节能的培训服务[4]。虚拟驾驶模拟器成功实现了对驾驶景观的自动虚拟化和自动数字化,可以有效帮助驾驶技术不佳的人深入了解驾驶环境,对于减少交通事故的发生具有一定的意义。1.2国内外现状得益于微软C#语言的简单易上手,Unity在入门领域内的发展非常顺利,尤其是相对于竞争对手Unreal引擎,虚幻引擎所采用的C++语言非常繁琐复杂,对于刚刚入门学习的开发人员来讲,学习难度过于陡峭,虚幻引擎的开发者EPIC这个公司对于PC端大型3A游戏的开发非常擅长,在2020年,他们曾经推出过一段实机演示,在演示中,为了渲染一个比较精致的游戏场景,他们同时渲染了万亿级的多边形,甚至在一个光照场景下,在没有专用硬件加速的情况下直接抛弃了传统的光栅化,实现了实时光线追踪[5]。Unity可以说是现在全世界比较靠前的几个专业游戏开发引擎之一,它可以实现可视化的2D和3D的影视和动画以及游戏,并且可以创造虚拟的三维二维空间。当前,手机游戏开发的速度崛起的非常之快,现在已经是一个单独的行业,手游和端游市场现在不想上下。Unity在国内发展起步的晚,虽然近些年不断的追赶中,还是和国外的技术有很大的差距[6]。但是由于国内近些年手游行业的发展,所以公司急需大量的Unity人才。在国内做3D手游的开发引擎大多用Unity。这点是毋庸置疑的,例如:王者荣耀,原神。在国外Unity的发展前景也是非常好的,现在全球都缺少Unity开发的人才。全球游戏开发的相当大的一部分都掌握在Unity开发中。所以Unity的发展前景非常好。Unity3D不仅可以作用于游戏,还可以作用于各领域如AR在设计,仿真,测试,维修和维护等领域,使用AR来支持制造及相关领域的应用有很多。虚拟现实交互:使用此类工具,声音交互设计师可以有效地模拟弹拨原型,并实现与虚拟仪器的多传感器交互,从而达到前所未有的目的,例如测试创新的弹拨界面或使用有关演奏动态的数据训练机器学习算法,这些信息可从以下位置立即访问机器[7]。Unity3d引擎作为一款功能强大的游戏引擎,在中国和国外游戏开发领域都有着重要作用。Unity3d引擎的开源,使得小的游戏公司,乃至个人开发游戏的难度大大的降低了。现有Unity3d引擎可以大幅节省引擎开发的时间和成本。团队也不需要为了一个工具从零开始[8]。也许未来有一天,可能我们只需要确定玩法和风格,就能靠引擎自动生成一个足够真实的游戏世界了。第2章相关理论和技术2.1游戏的设计方法与实现技术角色扮演类游戏,提供了一个虚拟的游戏世界,该世界提供了一个虚拟的角色供玩家选择操作,最终以让玩家实现现实世界所不能实现的事件为目的。自从RPG游戏问世以来,一直再发展进步到如今,迎来了以专业游戏引擎支持的时代[9]。2.2Unity3D技术Unity3D是由丹麦Unity技术公司开发的多平台集成游戏开发工具,是一款跨平台的3D引擎,用于制作3D游戏、实时三维动画等互动内容。同时,Unity注重教育产业发展,致力于先进工业技术与高校课程建设相结合,开展各种形式的校企合作[10]。Unity3D编辑页面主要由五个视图组成,包括Scene(场景视图)、Game(游戏视图)、Hierarchy(层级视图)、Project(工程视图)和Inspector(检测视图),其中Scene(场景视图)用于编辑整个游戏世界,以编辑和创建特效[11]。Game(游戏视图)是游戏发布后在屏幕上的最后一次显示。屏幕显示器的内容完全取决于相机照亮的部分。可以通过移动摄像机的位置和旋转Scene(场景视图)中的角度来调整Game(游戏视图)中显示的内容。Hierarchy包含当前场景中的所有游戏对象,包括直接实例或默认实例。还可以将对象拖动到层次结构视图中的另一个对象,以形成父子关系。Project存储所有项目资源文件,并显示资源、材料、模型、脚本等。Inspector显示当前对象附带的所有组件,如三维坐标、旋转量、比例值和添加的脚本,以便可以使用每个组件编辑场景中的对象。第3章驾驶模拟场景的设计3.1需求分析在驾驶模拟训练中的人在回路中就是训练驾驶人员在系统的回路中所需要进行的操作和仿真,这种仿真需要对实体的动态特性进行建模并在VR系统的模拟器上运行。此外还要求有模拟生成人的感觉环境的各种物理效应设备,包括视觉、听觉、触觉、动感等人能感觉的物理环境,由于有操作人员在回路中,人在回路仿真系统必须实时运行[12]。3.2模块设计将前期计划收集的场景数据进行整理之后,对整个驾驶场景里的数据模型按照一定的数据逻辑结构规则再来进行综合组织,采用层次结构的数据形式再来进行数据模型的综合组织,有利于场景模型的数据构建、场景的模型合并以及后期场景结构优化等等的维护和运营管理[13]。层次结构就是按照一个特殊物体的不同性质类别怎么可以对它进行一种层次上的划分,同一物体类别的一个物体可以分别作为一个不同物体中的集合,而在每一个不同物体中的集合里又可以再分别进行层次细分[14]。本系统场景以一个蓝色的大天空下的盒子建筑作为主要背景,可以由各种物体建筑物、道路、草地、其余车辆、行人、树木等各种物体集合组成,而这些物体建筑物又可以细分为各个商场、红绿灯、图书馆等,如本框中的下图所示。这样我们才能为你组织一个好的数据库,结构清楚、层次明确。虚拟驾驶场景虚拟驾驶场景建筑物地面天空人绿化商场医院图书馆……路人骑行者道路红绿灯树木图3.1系统的总体结构图3.3流程图虚拟驾驶系统的整体设计理念应该是力求真实,所以对虚拟驾驶的进行实地考察体验是很非常有必要的[15]。通过驾驶场景实地考察,分析有关驾驶所有建筑的主体构造,收集有关驾驶所有建筑的结构图片等等信息,确定建筑物的比例,做出建筑草图等以方便建筑模型的设计构建。处理从中收集获取到的网络信息,做出网络整体规划,构建三维立体模型,整合各个应用场景与模型,最终设计形成完整的虚拟驾驶服务系统。具体的软件实现工作流程主框图显示如下图所示。开始开始收集数据及图片等信息整理信息,做出草图构建部分场景与模型虚拟校园场景整体拼合完成虚拟校园漫游系统的建立结束3.2总体设计的流程图第4章驾驶模拟场景的实现4.1开发流程4.1.1系统实现的软硬件环境开发本系统的硬件环境为:处理器:AMDRyzen54500UwithRadeonGraphics内存:16GB双通道显卡:CPU集成显卡开发本系统的软件环境为:操作系统:Windows10家庭中文版,64-bit开发工具:UNITYHUB,Notepad++运行软件:3dmaxunity3d4.1.2信息的收集与处理本文分析使用的原始立体数据主要包括有道路、红绿灯、行人与商场亭子等各类建筑的立体平面图和获取的立体照片等基础信息。为了有效加强虚拟空间校园真实的准确数据性和有效进行虚拟空间的正确管理分析,以下几点是该虚拟驾驶系统用的数据分析:1.通过网上百度电子地图(简称百度电子地图)可以测量虚拟驾驶车辆内主要对象和与实体的地理距离,然后最终确定主要虚拟驾驶对象实体在整个虚拟现实校园环境中的地理位置。先把这个主体比如虚拟驾驶车辆与建筑物的大小等的数据进行测量整理出来,再通过地图拼接完成其他的,再根据对于各虚拟驾驶对象这个实体的在整个虚拟环境中的所在位置,先给它确定一个新的原点,如虚拟驾驶车辆的起始点,然后通过百度电子地图(也比如有的百度二维地图)上的原点测距定位功能,测量出各对象中的实体进入到这个原点的一定距离。2.对于部分大型建筑物的楼层高度,从总体的平面图和数据收集后得到的测量数据中不能看出获取的实际情况,自行计算测量可得出其中一层的建筑高度,然后根据每个楼层高度数据的计算可得出总的高度。此外你还可以直接利用一些虚拟化的测量软件(例如google和谷歌虚拟地球)等来进行各种辅助性的测量。3.对于这些纹理上的数据主要还是采用自己相机拍摄的处理方式。由于照片受风景拍摄时的气候天气及拍摄周围环境的因素影响,拍出的风景照片通常不能直接配合使用,需要在照片亮度、色调上都要做出相应调校。另一方面,拍照者在取景时,可能常常会遇到受照片拍摄角度上的限制、行人或路边树木照片掺杂等多种因素的直接影响,照片常常拍摄需要及时进行图像修复、剪裁等后期曝光处理。4.2场景搭建4.2.1道路及地形的设计地形模型在虚拟环境中应用分量很大,它对虚拟驾驶的状态真实性和虚拟系统正常运行的状态实时性都具有重要作用影响。地形立体对象是设计虚拟地物虚拟驾驶模型系统的理论基础,是设计布置虚拟地物地形对象虚拟驾驶的重要依据。地形动态对象三维动态模型的基础建立建设是设计虚拟驾驶必不可少的一个重要关键环节。对于一个平面上的地形,可以通过使用unity3d的plane节点,调节一个地形高度长宽高低的数据,并对其进行地形贴图。对于不同地形纹理的地形如例如绿地等可创建3dobject等先创建一个地形,再对其进行地形贴图,可将其叠加在整个大学校园内的地面上。像一些小的丘陵、山脉等都是起伏不平的自然地形,也可以创建地形。但我们大学基本都是平地,所以在此不需用地形突起。在这里,为了让地面看起来更生动形象,我选择了用到3dmax模型里面的仿真路面进行拼接。图4.1图4.2是地面设计层次图地面地面道路红绿灯图4.1地面设计层次结构图4.2地面效果图4.2.2天空的设计为了大大增加三维校园虚拟场景校园真实场景内部背景的视觉真实感,可以在三维校园虚拟场景内部增加具有蓝天白云梦幻效果的虚拟天空。根据不同用户所实际需要的真实使用程度,可以考虑采用以下多种设计方法组合来进行实现:1.导入Unity3D天空盒通过UNITY3D的Window窗口AssetStore里的资源包进行Unity3D天空盒的导入,点击商店通过Unity官方资源,找到天空盒资源包,在Unity里打开,导入资源包,再通过拖拽的方式进行天空盒的创建。2.制作天空效果可以通过我们运用一个矩形化的天空盒这种制作方法能帮你制作一个矩形化的天空,所谓矩形化的天空盒就是用一个个矩形的长条用方盒子包起来把它作为一种展示矩形天空的一种视觉远景或者天空贴图的一种视觉载体。首先用户需要直接生成一个盒子体积必须足够大的立体矩形模型立方体,通过在这个矩形立方体中的矩形模型盒子的5个不同面上分别直接贴上五个可以直接表现不同高空天气现象模拟图像效果的。不同的立体矩形盒子天空天气图像及其纹理可以直接达到逼真的高空天气模拟矩形天气图像效果。3.Background节点中,有两个域值控制天空的颜色,分别是skyColor和skyAngle。skyColor域指定立体空间背景天空的颜色,该域值由一系列红、绿、蓝颜色组合而成。skyAngle域指定空间背景上需要着色的位置的天空角。UNITY3D浏览器就是在这些空间角所指位置进行着色的。第一个天空颜色着色于天空背景的正上方,第二个天空颜色着色于第一个天空角所指定的位置,第三个天空颜色着色于第二个天空角所指定的位置,以此类推。这样使天空角之间的颜色慢慢过渡,这就形成了颜色梯度,使得天空看起来更为真实。图4.3天空效果图4.2.3建筑物的设计1.建筑物几何模型的建立建筑物是三维虚拟中和现实世界中的主要建筑景观,在众多虚拟驾驶系统中,三维虚拟建筑物的景观表示和立体建模设计是最为重要的设计内容。由于高层建筑物结构数目众多,为了较好地准确实现对高层楼群的搭建的构筑建模设计任务,可以根据实际设计情况重新确定其建筑设计基本原则:(1)根据校内现有建筑的整体外观与建筑结构对建筑模型进行设计分类,确定新的构造设计模型,对那些外观和建筑结构相同的建筑也应采用同一个构造设计模型。(2)对于较复杂的系统模型也可采用新方法拆分,使之更加简单化,然后再对其进行二次建模。目前对大型建筑物的整体建模一般都是采用一种整体建模法,即首先画一个圆形立方体或一个长方体,然后再对物体表面纹理进行各种纹理上的映射,构造一个建筑物整体模型。2.建筑物的纹理映射建筑物本身并非不是一个空白的大面积平面,一般的大型高层建筑物上几乎都会特别设一些玻璃窗户,贴有各式各样的彩色玻璃瓷砖。目前对于一个大型建筑物窗口及其内部窗户的各种整体窗口建模一般都主要是通过采用多种典型线段绘图方法应用来直接进行窗口构造,及描绘出窗口的大部分概念和结构框架,然后对其窗户进行整体背景图的渲染。由于虚拟驾驶环境中的立体模型建筑物特别多,如果你临时需要一一对其内部进行立体化的建模,会不仅需要我们花费大量的空间计算力和时间,而且严重的会影响了系统的正常工作运行以及处理速度。所以,在本整体设计处理系统中与其对应于整个房屋内部墙体及其表面的任何一个窗户和其他装饰物的花纹都应该可以直接采用类似整体纹理映射建模互相映射的整体设计处理方法对其整体进行类似纹理映射建模。其基本实现操作方法主要原理是:将场景内每个带有建筑各个主体结构和平面的建筑主体纹理抽象图像模型数据分别实时进行随机映射采集、加工、转换成一个建筑纹理图像数据库并映射到制图所符合要求的建筑纹理图像格式,之后在建筑主体画面纹理图像数据绘制的整个操作过程中,分别对每个建筑面分别随机进行一次建筑纹理图像数据随机映射。商场周围场景环境设计由立体场上场景设计和建筑布局立体图书馆以及周围环境场景设计环节组成,创建逼真的实景虚拟混合现实三维立体教学场景。采用了以模块化,组件化作为设计指导思想,层次清晰、结构合理的unity3d大型图书馆应用场景环境设计。主体建筑应用场景图的设计层次结构方式如图4.4、图4.5示。建筑场景设计建筑场景设计周边环境商场楼梯底座建筑主体楼体附件绿化草坪树木设计道路设计图4.4建筑设计层次结构4.5商场大型建筑效果图4.2.4树木的设计时刻保持二维纹理树林图像的法线矢量指向观察者,就可以形成非常真实的三维景观,从不同的角度观察均可获得树木的较为完整的图像。在UNITY3D中,Billboard节点提供了这一功能。通过设定Billboard中axisOfRotation域,可以规定树木的旋转轴。4.6树木效果图4.7树木效果图4.3系统导出要想在unity3d游戏引擎系统中实现虚拟驾驶的效果,需要定义一个人物视角,让摄像头跟在人物视角,用键盘鼠标控制它的行走跳跃与旋转,这便达到了漫游虚拟驾驶的效果。接下来是创建第一视角虚拟驾驶的过程。1.将其人物视角命名为第一人称驾驶,方便查看信息,在inspector面板上添加人物重力rigidbody组件,以及碰撞器Collider的组件(可以在脚本里添加属性)2.添加Newscript脚本将其命名为第一人称虚拟驾驶控制器英文版。3.编写脚本:添加组件[RequireComponent(typeof(Rigidbody))][RequireComponent(typeof(CapsuleCollider))]publicclassRigidbodyFirstPersonController:MonoBehaviour{publicclassMovementSettings{publicfloatForwardSpeed=8.0f;publicfloatBackwardSpeed=4.0f;publicfloatStrafeSpeed=4.0f;publicfloatRunMultiplier=2.0f; publicKeyCodeRunKey=KeyCode.LeftShift;publicfloatJumpForce=30f;publicAnimationCurveSlopeCurveModifier=newAnimationCurve(newKeyframe(-90.0f,1.0f),newKeyframe(0.0f,1.0f),newKeyframe(90.0f,0.0f));[HideInInspector]publicfloatCurrentTargetSpeed=8f;publicvoidUpdateDesiredTargetSpeed(Vector2input){ if(input==Vector2.zero)return; if(input.x>0||input.x<0) { CurrentTargetSpeed=StrafeSpeed; } if(input.y<0) { CurrentTargetSpeed=BackwardSpeed; } if(input.y>0) { CurrentTargetSpeed=ForwardSpeed; }#if!MOBILE_INPUT if(Input.GetKey(RunKey)) { CurrentTargetSpeed*=RunMultiplier; m_Running=true; } else { m_Running=false; }#endif}#if!MOBILE_INPUTpublicboolRunning{get{returnm_Running;}}#endif}publicCameracam;publicMovementSettingsmovementSettings=newMovementSettings();publicMouseLookmouseLook=newMouseLook();publicAdvancedSettingsadvancedSettings=newAdvancedSettings();privateRigidbodym_RigidBody;//刚体privateCapsuleColliderm_Capsule;//碰撞器privatefloatm_YRotation;privateVector3m_GroundContactNormal;privateboolm_Jump,m_PreviouslyGrounded,m_Jumping,m_IsGrounded;publicVector3Velocity{get{returnm_RigidBody.velocity;}}publicboolGrounded{get{returnm_IsGrounded;}}publicboolJumping{get{returnm_Jumping;}}publicboolRunning{get{ returnmovementSettings.Running; }}privatevoidStart(){m_RigidBody=GetComponent<Rigidbody>();m_Capsule=GetComponent<CapsuleCollider>();mouseLook.Init(transform,cam.transform);}privatevoidUpdate(){RotateView();if(CrossPlatformInputManager.GetButtonDown("Jump")&&!m_Jump){m_Jump=true;}}privatevoidFixedUpdate(){GroundCheck();Vector2input=GetInput();if((Mathf.Abs(input.x)>float.Epsilon||Mathf.Abs(input.y)>float.Epsilon)&&(advancedSettings.airControl||m_IsGrounded)){Vector3desiredMove=cam.transform.forward*input.y+cam.transform.right*input.x;desiredMove=Vector3.ProjectOnPlane(desiredMove,m_GroundContactNormal).normalized;desiredMove.x=desiredMove.x*movementSettings.CurrentTargetSpeed;desiredMove.z=desiredMove.z*movementSettings.CurrentTargetSpeed;desiredMove.y=desiredMove.y*movementSettings.CurrentTargetSpeed;if(m_RigidBody.velocity.sqrMagnitude<(movementSettings.CurrentTargetSpeed*movementSettings.CurrentTargetSpeed)){m_RigidBody.AddForce(desiredMove*SlopeMultiplier(),ForceMode.Impulse);}}if(m_IsGrounded){m_RigidBody.drag=5f;if(m_Jump){m_RigidBody.drag=0f;m_RigidBody.velocity=newVector3(m_RigidBody.velocity.x,0f,m_RigidBody.velocity.z);m_RigidBody.AddForce(newVector3(0f,movementSettings.JumpForce,0f),ForceMode.Impulse);m_Jumping=true;}if(!m_Jumping&&Mathf.Abs(input.x)<float.Epsilon&&Mathf.Abs(input.y)<float.Epsilon&&m_RigidBody.velocity.magnitude<1f){m_RigidBody.Sleep();}}else{m_RigidBody.drag=0f;if(m_PreviouslyGrounded&&!m_Jumping){StickToGroundHelper();}}m_Jump=false;}privatefloatSlopeMultiplier(){floatangle=Vector3.Angle(m_GroundContactNormal,Vector3.up);returnmovementSettings.SlopeCurveModifier.Evaluate(angle);}privatevoidStickToGroundHelper(){RaycastHithitInfo;if(Physics.SphereCast(transform.position,m_Capsule.radius*(1.0f-advancedSettings.shellOffset),Vector3.down,outhitInfo,((m_Capsule.height/2f)-m_Capsule.radius)+advancedSettings.stickToGroundHelperDistance,Physics.AllLayers,QueryTriggerInteraction.Ignore)){if(Mathf.Abs(Vector3.Angle(hitInfo.normal,Vector3.up))<85f){m_RigidBody.velocity=Vector3.ProjectOnPlane(m_RigidBody.velocity,hitInfo.normal);}}}privateVector2GetInput(){Vector2input=newVector2{x=CrossPlatformInputManager.GetAxis("Horizontal"),y=CrossPlatformInputManager.GetAxis("Vertical")}; movementSettings.UpdateDesiredTargetSpeed(input);returninput;}privatevoidRotateView(){//avoidsthemouselookingifthegameiseffectivelypausedif(Mathf.Abs(Time.timeScale)<float.Epsilon)return;//gettherotationbeforeit'schangedfloatoldYRotation=transform.eulerAngles.y;mouseLook.LookRotation(transform,cam.transform);if(m_IsGrounded||advancedSettings.airControl){//RotatetherigidbodyvelocitytomatchthenewdirectionthatthecharacterislookingQuaternionvelRotation=Quaternion.AngleAxis(transform.eulerAngles.y-oldYRotation,Vector3.up);m_RigidBody.velocity=velRotation*m_RigidBody.velocity;}}///spherecastdownjustbeyondthebottomofthecapsuletoseeifthecapsuleiscollidingroundthebottomprivatevoidGroundCheck(){m_PreviouslyGrounded=m_IsGrounded;RaycastHithitInfo;if(Physics.SphereCast(transform.position,m_Capsule.radius*(1.0f-advancedSettings.shellOffset),Vector3.down,outhitInfo,((m_Capsule.height/2f)-m_Capsule.radius)+advancedSettings.groundCheckDistance,Physics.AllLayers,QueryTriggerInteraction.Ignore)){m_IsGrounded=true;m_GroundContactNormal=hitInfo.normal;}else{m_IsGrounded=false;m_GroundContactNormal=Vector3.up;}if(!m_PreviouslyGrounded&&m_IsGrounded&&m_Jumping){m_Jumping=false;}}}4.4平台测试软件安全测试的最终目标,就是为了能够更快、更早地将一个软件开发产品或专业软件开发系统中所可能存在的各种安全问题彻底找出原因来,并通过促进软件开发各类技术人员尽快地有效解决各种问题,最终及时地向广大客户要求提供一个安全高质量的专业软件开发产品,使一个软件开发系统更好地能够满足用户的实际需求,同时也能满足一个软件开发组织自身的发展要求[16]。4.4.1系统测试环境为了能够让本次的系统测试能够在较普通的家用机器上顺利的正常运行,系统测试所要将选用的计算机配置为家庭版,具体的系统配置方法如下:处理器:AMDRyzen54500UwithRadeonGraphics内存:16GB硬盘空间:500GB显卡:CPU集成显卡网卡:集成10/100/1000以太网卡操作系统:Windows10家庭中文版网络协议:TCP/IP浏览器:InternetExplorer8.0以上插件:BScontact8.04.4.2测试结果与优化测试的主要评测内容为虚拟驾驶系统的发布之后的整体浏览效果。本系统正常运行的测试结果表明虚拟驾驶系统基本上都能正常且良好的正常运行,用户基本能以不同的听觉视点从不同的视觉角度快速进行操作浏览。表1优化前后结果对比所用到的方法测试结果DEF、USE设置visibilityLimit使用LOD初次加载速度(秒)流畅程度否否否12.2不流畅是否否10.3较不流畅否是否8.7一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论