您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 虚拟现实技术-Unity-3D部分
虚拟现实技术目录•1.Unity3D引擎简介•2.Unity3D引擎结构•3.在Unity3D中构建场景•4.Unity3D中的交互设计•5.Unity3D中的GUI设计•6.Unity3D中的粒子系统•7.Unity3D中的音乐音效•8.调试与优化•9.导出与发布•10.总结与展望1.UNITY3D引擎简介•Unity3D是由UnityTechnologies开发的一款用于跨平台(PC/手机)的游戏开发工具,是一个全面整合的专业游戏引擎。Unity3D类似于Director,Blendergameengine,Virtools或TorqueGameBuilder等利用交互的图型化开发环境为首要方式的软件,其编辑器运行在Windows和MacOS下,可发布游戏至Windows、Mac、Wii、iPhone和Android等平台,也可以利用Unitywebplayer插件发布网页游戏,支持Mac和Windows的网页浏览,它的网页播放器也被MacWidgets所支持。•随着网页游戏、手机应用和各色多媒体产品对3D领域的逐步深入,开发者对一种使用难度低、开发功能齐全、代码应用广泛的3D开发平台的需求越来越迫切。Unity3D从一开始就被设计成易于使用的产品,简单的用户界面、支持多脚本语言以及强大的游戏引擎等特点,让Unity3D成为深受市场欢迎的开发平台。作为一个完全集成的专业级应用,Unity3D还包含了价值数百万美元、功能强大的游戏引擎,可以较好的满足游戏开发、工业设计展示等各方需求,帮助开发者做到市场和收益最大化。•Unity3D作为最好用的跨平台开发工具之一,在三维游戏、二维游戏、3DWeb、建筑可视化、商品宣传、虚拟现实AR等多领域得到了广泛使用,更是EA、NCSoft等世界级游戏厂商争先使用的开发工具;目前,苹果APPStore中就有超过1500款以上的精品游戏利用Unity3D完成了开发。1.UNITY3D引擎简介•优势1:跨平台特性·Unity3D开发的产品可同时部署在MacOS与Windows两种操作系统之上,横跨的主流游戏平台高达9种。·通过Unity3D,使用者的一次开发即可针对Web、Android、iPhone、WindowsPhone等多个平台直接输出产品,无需进行反复移植,能够实现游戏在PC、PS3、XB360、IOS等平台上的无缝并存。•优势2:易于上手·Unity3D提供了简单易用的开发编辑界面和高度聚合的脚本编辑,支持JavaScript、C#、Boo等脚本编程语言,支持3Ds、FBX等格式模型的直接导入,在很大程度的减少了开发者的上手时间。1.UNITY3D引擎简介•行业状况:·2012年4月16日,Unity3D引擎全面支持360浏览器平台...·2012年8月23日,Windows8和WindowsPhone8操作系统将兼容Unity3D游戏引擎...·2012年11月15日,UnityTechnologies公司正式推出Unity4.0版本,新加入对于DriectX11的支持和Mecanim动画工具,以及为用户提供Linux及AdobeFlashPlayer的部署预览功能...·2013年1月25日,实时开源统计工具Countly发布更新,新增对Unity3D平台的支持...·2013年2月1日,云联宣布与美国Unity签署合作协议,云联的云游戏平台将支持基于Unity3D引擎开发的各类游戏...·2013年3月15日,《TOUCH》游戏实拍视频曝光,由完美世界自主研发,历时2年倾力打造的首款四维无界多平台游戏《TOUCH》即将在3月25日首次封测。在Unity3D引擎的保障下,游戏中加入众多的动态光影、法线贴图等3A大作上所应用的画面特效,且游戏的网页端与客户端的画质同样出众...·在移动平台上,Unity现在基本上是市场的领导者,55%的3D游戏都是用Unity3D开发的,比如著名的TempleRun2...2.UNITY3D引擎结构•创建和打开工程·启动Unity3D应用程序,弹出创建工程选项,包括工程位置和需要导入的定制资源包最后,通过“File”→“Export”,将模型导出为FBX格式,保存到“Models”文件夹中;在弹出的导出设置中,勾选“嵌入媒体”,将UP-Axis设置为Y轴,选择单位“米”。另外,模型动画、骨骼工具、灯光、摄影机等也可以一并导出,只要勾选相应选项即可。2.UNITY3D引擎结构•工作界面工作界面主要分为4部分:场景/游戏视窗,工程面板,层次面板和检视面板。·场景/游戏视窗:编辑场景或测试场景;·工程面板:包含工程中所有的资源,工程面板中的文件夹与电脑硬盘中的文件夹一一对应,方便管理;·层次面板:当前文件(游戏场景)中的所有资源,包括模型、灯光、摄影机、虚拟物体等;·检视面板:显示被选中物体的状态和属性。如果想要调整工作界面当前的布局,可以在右上角的Layout中进行重新设定。2.UNITY3D引擎结构•工作界面2.UNITY3D引擎结构•文件和资源管理·Unity3D在文件和资源管理方面非常人性化,检视面板中的文件夹一一对应电脑硬盘中的文件夹。·虚拟场景的设计和实现需要模型、材质、贴图、视频、脚本等大量的素材和源文件,倘若管理杂乱无章,则很容易导致文件的丢失、重复、重名等问题,造成设计与制作的混乱。·因此,在用Unity3D对博物馆实现交互控制之前,首先应建立清晰的文件管理系统。新建Project后,在系统自动生成的Assets文件夹中,需手动创建以下文件夹:Scenes(场景)、Models(模型)、Pictures(图片)、Textures(贴图)、Materials(材质)、Sounds(声音)、Videos(视频)、Scripts(脚本)、Prefabs(预制件)、Fonts(字体)等。在以后的制作过程中,所有的模型、贴图、材质等素材和源文件都必须以规范的命名方式放入相应文件夹。·不仅如此,项目管理人员还应罗列出清楚完整的层次结构图,并随时检查文件与资源的去向和使用。最后,通过“File”→“Export”,将模型导出为FBX格式,保存到“Models”文件夹中;在弹出的导出设置中,勾选“嵌入媒体”,将UP-Axis设置为Y轴,选择单位“米”。另外,模型动画、骨骼工具、灯光、摄影机等也可以一并导出,只要勾选相应选项即可。•文件和资源管理最后,通过“File”→“Export”,将模型导出为FBX格式,保存到“Models”文件夹中;在弹出的导出设置中,勾选“嵌入媒体”,将UP-Axis设置为Y轴,选择单位“米”。另外,模型动画、骨骼工具、灯光、摄影机等也可以一并导出,只要勾选相应选项即可。3.在UNITY3D中构建场景•地形系统·创建地形:在菜单栏中的“Terrain”→“CreateTerrain”中创建地形。在“SetResolution”中调整地形参数。·绘制地形:通常,需要由高度图为地形提供一个大体框架。在AdobePhotoshop等软件中绘制好高度图后,将其存为正方形、RAW格式的图像,通过菜单栏中“Terrain”→“ImportHeightmap-Raw”导入。在大致地貌的基础上,利用Inspector面板中的Terrain(Script)下设的工具进行细节绘制,交替使用Raise/LowerTerrain、PaintHeight和SmoothHeight三个工具,就可以有针对的绘制所需的地貌。·指定材质:在Terrain(Script)下设的“PaintTexture”中添加、编辑贴图,并为地形赋予贴图。如果需要进一步绘制细节,则可以选择不同的贴图,然后用笔刷进行详细绘制。3.1利用UNITY3D搭建初步地形·创建地形·绘制地形高度图绘制·绘制地形导入高度图·绘制地形笔刷绘制Raise/LowerTerrainPaintHeightSmoothHeight·绘制地形指定贴图PaintTexture•环境补充·创建天空:Unity3D提供了现成的天空盒。通过菜单栏中“Assets”→“ImportPackage”→“Skyboxes”导入Skybox资源包,在“Edit”→“RenderSettings”→“SkyMaterial”中为场景指定天空材质。·创建太阳:在Unity3D中可以通过平行光模拟太阳。通过菜单栏中“GameObject”→“CreateOther”→“DirectionalLight”创建一盏平行光,其位置对场景没有影响,朝向需与天空中的“太阳”吻合。如果模拟特定时间的阳光,则需要对入射角度、颜色、强度等参数进行综合调整。Unity3D4.0版本能够支持实时阴影渲染,调整入射光的“ShadowType”→“SoftShadow”选项,则场景中的模型、植被等就能投射柔和的阴影。由于Unity3D没有全局照明,因此,适当的补光仍十分关键,可以利用泛光灯照亮暗部。3.1利用UNITY3D搭建初步地形·创建天空·创建太阳•环境补充·创建水体:在Unity3D中还可以添加水体,4.0版本已经提供了效果很好的水的案例。通过菜单栏中“Assets”→“ImportPackage”→“Water”导入Water资源包,在“StandardAssets”→“Water”中将预制的水平面拖入场景,设置其Y轴,令其高于地面。·创建风域:通过菜单栏中“GameObject”→“CreateOther”→“WindZone”创建风域,在场景坐标原点处会有明显标识。在Inspector面板中调整风的模式、风力、影响范围、脉冲大小和脉冲频率等参数。其中,“Mode”包含了“Directional(定向风)”和“Spherical(球形风)”,前者风力的大小与风域位置无关,只和旋转角度有关,而后者则是一种球体区域,在球体范围内的物体才受风的影响,而风力大小与区域半径成反比。另外,外部导入的模型不会受到风的影响。·创建雾效:通过菜单栏→“Edit”→“RenderSettings”中可以添加雾效,勾选“Fog”后,调节雾的颜色、模式及浓度即可。3.1利用UNITY3D搭建初步地形·创建水体•植被系统·在Unity3D中添加植被是通过“PlaceTrees”和“PaintDetails”的下设功能实现的。·添加草坪通常利用“Alpha”通道的位图文件,选择“PaintDetails”→“EditDetails”→“AddGrassTexture”,将草坪贴图添加进来,分别设置贴图与笔刷的各项参数,然后即可在地形上随处“涂抹”草坪。·Unity3D中的地形引擎使用一种特殊的“Billboard(公告牌)”方式来放置树木,它将和摄像机很近的树木按照全3D的方式渲染,但当树木离摄像机较远时,这些树木会自动渐变为2DBillboard。这样一来,看似茂盛的场景仍不会受到全3D树木可能占用大量内存的影响。通过“PaintDetails”→“EditTrees”→“AddTree”导入树木,调节笔刷参数,刷入植被,若按“shift”则是擦除植被。如果想精确于某一点种树,需将“BrushSize”和“TreeDensity”均归1。3.1利用UNITY3D搭建初步地形•植被系统Unity3D中的进一步的环境创建需要借助第三方软件,将在Autodesk3dsMax或AutodeskMaya中制作的模型处理后导入Unity3D。•规范资源命名·需确保模型、材质和贴图等导入的资源命名规范。Unity3D对中文名称的支持不够完善,因此,在导出模型前,需对场景中的模型、材质和贴图进行重命名。以3dsMax为例,模型和材质在“材质资源管理器中”统一命名,而贴图命名后需要在材质编辑器中重新赋予。重命名时要尽量规范化,比如材质“XXX_05”对应的模型名称同样为“XXX_05”,其子材质则为“XXX_05_01”、“XXX_05_02”等,与元素ID号相匹配。另外,由于Unity3D中以米为单位,所以单位需要统一为米。3.2导入外部模型丰富场景•烘焙模型
本文标题:虚拟现实技术-Unity-3D部分
链接地址:https://www.777doc.com/doc-5018562 .html