ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:5.60MB ,
资源ID:5940354      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/5940354.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(基于Unity实现虚拟楼盘展示制作.docx)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

基于Unity实现虚拟楼盘展示制作.docx

1、 LUOYANG NORMAL UNIVERSITY 2015届 本科毕业论文 基于Unity实现虚拟楼盘展示制作 院(系)名称 专 业 名 称 学生姓名 学号 110424010 指导教师 完 成 时 间 2015.5 基于Unity实现虚拟楼盘展示制作 马天宇 数学科学学院 信息与计算科学 学号:110424010 指导教师:刘青青 摘要: Unity引擎推出后在全世界得到了大量的运用。本文通过运用Unity制作出来的是房地产虚拟展示的一个软件,

2、通过虚拟现实技术制作全方位三维展示以及逼真的动画和过场。 关键词:MentalRay烘培;材质;三维坐标;虚拟漫游;视频播放;手指触控 引言 虚拟现实(Virtual Reality,简称VR)是最近几年来新出现的高新技术,也称灵境技术或者人工环境,虚拟现实技术集成了计算机图形(CG)技术、计算机仿真技术、人工智能、传感技术、显示技术、网络并行处理等技术的最新发展成果的集合,是一种由计算机技术辅助生成的高技术模拟系统,虚拟现实技术的发展与应用离不开计算机技术的发展,两者是相辅相成的关系,如果要正确认识和剖析并把握虚拟现实技术的应用与发展,就必须深入研究计算机技术的变化与发展趋势,这样才能

3、有利于我们未来更好的掌握与应用虚拟现实技术。[1] 实时互动的应用程序可以让你漫步在还没有盖好的房子里,或是回到几世纪以前的废墟让你在里面可以行走,尽管现在的计算机辅助绘图技术(CAD)能建立3D 的模型,但仍不太容易真正的传达客户希望看到的视觉仿真效果。 "大多数的房地产公司仍然无法给予客户一个身历其境的体验的感觉,而交互式的3D可以让我们创造出一个完整的模拟环境,现在已经可以做到让客户在房子还没盖好之前就可以在未来的家里走来走去,甚至可以体验到当早晨的阳光从窗户透进来的感觉。"本篇论文与大家一起分享Unity在非游戏领域的应用实例,在房地产家居行业中,通过Unity开发的应用将

4、传统设计师的工作化繁为简并交予住户,让住户自己设计呈现喜好的家居环境在虚拟现实中来感受及评估。制作地产楼盘漫游,能够让顾客更好的了解整个楼盘的规划,效果,取代了以往图片平面化信息的不够直观的表达效果,信息传达不够直观全面的弊端。在楼盘尚未建成,也能让顾客身临其境的感受到整个楼盘的居住环境,建筑外观,配套设施,能够推动地产楼盘前期推广的效率,促进整体销售的提升,更能提升整体地产公司整体的品牌及企业形象。  1 研究主要内容 1.1 研究方法及手段 以Unity3D为开发平台开发的一个虚拟仿真楼盘展示系统,是一个逻辑完整的、程序运行流畅的三维软件.通过对相关资料的大量查询以及对手指触控的

5、一些研究,对Unity3D游戏引擎有了相关的了解.对Unity3D中需要使用的编辑语言C#进行学习,查阅C#相关资料,使自己的编程水平可以满足这个展示的基本需要.虚拟展示的制作过程以及软件实现后的整体过程大致分为以下几个步骤: 1) 了解3Dmax建模软件以及Mental Ray渲染器,掌握相关的基本操控,熟悉3Dmax的四角面建模以及Mental Ray烘培方法。

6、

7、 2) 熟悉Unity3D引擎,掌握unity基本的编辑器操作,熟悉Unity3D每个功能模块的作用和操作方法.熟练使用unityAPI的方法。 3)设计软

8、件的UI主界面,对软件的整体功能进行架构,明确虚拟展示软件的主要功能以及软件的风格。 4) 设计软件的内容,策划软件的主题,并设定软件的相关场景。 5) 根据别人的需求和自己的理解,在Unity3D中制作下相关部分,包括交互 逻辑,加载逻辑,UI逻辑,漫游逻辑等,用到了Easy Touch插件和NGUI插件。 6) 初步测试,对系统的各项功能进行测试,及时发现问题,进行逐项解决。 7) 在PC上进行发布,并进行测试,完成在PC端触控上的正常操作。 8) 在IOS上进行发布,并进行测试,解决Ipad平板上的正常操作。 1.2 开发的环境 PS Photoshop经常用做于图

9、像处理,而不是图形创作。图像处理是对已有的位图图像进行编辑加工处理以及运用一些特殊效果,主要用做于在于对图像的处理加工;图形创作软件是按照自己的构思创意,使用矢量图形等来设计图形。 3DMax 3D Studio Max,(原名:3D Studio Max),常简称为3ds Max或MAX,是Autodesk传媒娱乐部开发的基于PC系统的全功能的三维计算机图形软件。 Maya Autodesk Maya是美国Autodesk公司出品的世界顶级的三维动画软件,运用领域是专业的影视广告,角色动画,电影特技等。Maya引擎的功能完善,工作灵活多变,易学易懂易用,制作效率很高,渲染真实感极

10、强,是电影级别的高端制作动画软件, Mental Ray渲染器 Mental ray是一个专业的3D渲染引擎,它可以生成十分逼真的高质量真实感很强的图象。现在你可以在3D Studio的高性能网络渲染中直接控制Mental ray 。它在电影领域得到了大量的应用和认可,被认为是市场上最高级的三维渲染解决方案之一。 Unity3D Unity3D是由UnityTechnologies开发的一个玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画的类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。 C# C#是C++衍生出来的面向对象的编程语言,是微软公

11、司发布的一种面向对象的于NETFramework之上的高级程序设计语言,并定于在微软职业开发者论坛(PDC)上登台亮相,C#是微软公司研究员AndersHejlsberg的最新成果,C#看起来与Java有着惊人的相似,它包括了诸如单一继承,界面,与Java几乎同样的语法,和编译成中间代码再运行的过程,C#是微软公司NETwindows网络框架的主角。 AE Adobe After Effects简称“AE”是Adobe公司推出的一款图形视频制作和处理软件,适用于从事视频设计和视频特效的机构,包括电视台、动画制作公司、个人后期制作工作室以及多媒体工作室。属于层类型后期制作类软件。 Xcod

12、e Xcode 是苹果公司开发的特有的编程软件,是开发人员建立OS X 和 iOS 应用程序的最快捷的方式。Xcode 具有统一的用户界面设计,编码、测试、调试都在一个简单的窗口内完成。 2 Unity3D简介 2.1 Unity3D总体概述 Unity3D是一个用于创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的综合型创作工具,由Unity Technologies开发,是一个全面整合的专业游戏引擎,Unity类似于Director,Blender,Virtools或Torque Game Builder等利用交互的图型化开发环境为首要方式的软件其编辑器运行在Wi

13、ndows 和Mac OS X下,可发布游戏至Windows、Mac、Wii、iPhone、Windows phone 8和Android平台,也可以利用Unity web player插件发布网页游戏,支持Mac 和Windows的网页浏览,它的网页播放器也被Mac widgets所支持,Unity分成Free与Pro版。[2] 2.2 Unity3D软件特色 综合编辑:通过Unity简单的用户界面,易上手进行界面编辑和编程工作。 导入资源:支持所有主要的文件格式,并能和大部分的相关应用程序协同工作。 一键部署:让玩家的作品在多平台呈现。 着色器:着色器系统整合了易用性、灵

14、活性和高性能。 天空盒:优化软件流畅度的一种很好的办法。 资源包:资源和逻辑从外部加载。 音频和视频:实时三维混合音频流、视频流。 光影:提供了具有柔和和阴影与烘焙的高度完善的光影渲染系统。 文档:为学习者提供逐步的指导、文档和实例方案。 2.3软件总体设计 1. 摄像机初始镜头,处于天空鸟瞰的感觉 (单手指左右滑动控制旋转,双手指打开合拢控制方缩小) (上图箭头只是做参考,主要操作还是基于触屏,这两个功能用的很多) 2.拉近后,单击可把视角转移到黄色单个中心点进行360度旋转拉近拉远观察 (单手指左右滑动控制旋转,双手指打开合拢控制方缩小) 3.1

15、 软件操作说明 3.1.1 场景操作说明 在开始场景中为楼盘的外围建筑的鸟瞰图。拖动鼠标或者手指拖动屏幕可对楼盘中心进行水平360以及上下0度到60度旋转,下方按钮功能,分别为 1)区域分布:为大楼的地理位置的一个视频 2)鸟瞰:为大楼的中心进行鸟瞰观察 3)街景漫游:设置了4个街景点,点击街景漫游,会响应的出现4个街景漫游 的按钮,4个按钮分别为不同的场景漫游地点, 4)车库: 点击车库会跳转场景,进入车库的场景 5)室内:设置了4个室内场景,两个办公室内,两个家居室内,三个室内为 没渲染的建模。一个室内为渲染的简模,点击跳转在室内场景后,有四个按钮一个是毛胚房按钮

16、一个是 简装,一个是漫游,一个是返回主程序 6)主楼:点击出楼会相应的出现6个按钮,分别为1,2,3,4,5,6 点击六个按钮,围绕的中心点这会变成相应的主楼, 7)退出按钮:点击按钮,退出程序。 3.2 软件建模流程介绍 3.2.1 建模和模型整理 在3DMAX建模中标准单位设置为毫米,导入CAD原图归到一个图层到坐标原点,根据CAD墙线制作墙体,根据设计方案硬装模型,根据设计方案软装模型,建好模型后把所有的单体的Gimao(中心点)整理到单体的中心,按程序不同的用处归到不同的层中,这样即使美术修改,跟程序也没什么大关系,顶视图在用线沿墙内勾出一个闭合的空间,原则是避开

17、家具不能穿插墙体,描绘出线转角要给一个圆角命令,用在程序中漫游时不越过这个闭合的空间,尽量把该合并的材质都合并,这样的话会节省内存开销,是软件流畅度得以提升。漫游路径模型例图和程序不渲染路径图: 3.2.2 贴图方法及贴图的制作 材质和贴图不能出现中文名称,纯色的物体贴图需弄32*32像素的纯色贴图,贴图的尺寸要按照2的N次方像素设置,这些设置也是为了软件运行时减少内存的开销,提高流畅度。例图: 3.2.3 材质赋予,模型减面及合并 指定Mental Ray渲染器,标准材质(Standard)换成Mental Ray嵌套的材 质,设置主要的几种材质参数,例如墙体,透明玻

18、璃,灯罩,黄铜金属类,相同材质物体必须是同一材质球,材质球命名不能是中文来写。模型减面要适当,不能破坏模型原有的造型。不规则的模型要用ProOptimizer(批处理)命令。看不到的面要删除,但离地面比较高的面不能删除,灯罩窗帘使用双面模型,如果平面物体表面有黑斑时,应该取消那几个面的光滑组,对曲面要统一曲面的光滑组,避免烘培的时候贴图出现黑色接缝。模型减面 后都应该用一下Reset XForm(重置变换)和Turn to Poly(转换为多边形); 对模型结构与贴图坐标不起作用的点和面要删除以减少数据量,提高FPS帧速率。在保证场景效果的前提下减少场景的总体面数,曲线挤压的时候要注意线的段数

19、必要时候可以使用折线形式来代替曲线,模型的网格分布要合理,模型中平直部分可以使用较少的分段数,曲线部分为了表现曲线的转折可以适当多分配一些,模型平面边缘轮廓点分布尽量做到均匀,否则容易使模型破面或者产生其他问题。按空间里同材质物体塌陷。不同材质的挂画可以塌陷在一起,后期不需要调节,对整个空间影响不是很大的物体也可以塌陷在一起(具体方法视户型而定)。剪完面后整体效果帧速率要大于60;最后的模型分别打为两组,一组是静态的程序调用不到的场景模型,一种是程序有调用用到的按钮,动画等等有用的模型 例图: 3.2.4 展UV及灯光测试 手动展UV的目的是要尽量使UV铺满整张贴图以节省内存消耗。

20、模型没减面前展的都不符合规范,必须在减面后展。展完UV模型后面加上贴图像素的大小。 指定Mental Ray渲染器,检查Gamma值,选择曝光方式,窗户位置打射面灯模拟天光。灯槽位置用圆柱灯模拟灯带,台灯位置用球灯模拟,光域网模拟室内筒灯,调节灯光强度和颜色,尺寸,阴影方式和阴影细分。同一空间的灯应该关联复制,调节渲染器常用参数。做渲染处理时尽量模块化渲染,一般的计算机硬件对渲染处理都很慢。[3] 3.2.5 烘培以及烘培贴图在PS中的处理 按层给场景中要烘培的物体添加CompleteMap和LiaghtingMap,贴图格式存为.exr。设置好存储位置,贴图格式,贴图尺寸,烘培贴

21、图.exr格式的要在Photoshop中批处理一下Gamera值。 3.2.6 Unity3D中场景模型的后期处理 在模型导入unity后,还需要进一步的材质和灯光的处理。在这里我采用了一些输出的材质插件名称Marmoset着色器,在主场景中用到的着色器主要是有 一. 自定义的Simple reflection(简单反射shader):这个着色器主要是用于大楼的整体玻璃效果,仔细看的话,会看到玻璃反射过来的天空云朵和光线,简单反射着色器的简单原理为:在一个镜像摄像机内投影的矩阵中,在我们的操作软件时首先会将镜子这个对象的顶点转换为世界坐标,然后在使用镜像摄像机空间内的投影矩阵,最终顶

22、点在屏幕上的投影会被用来作为UV贴图坐标来采样镜像相机渲染出啊来的材质贴图中(RenderTexture)。[4] 这是普通着色器和简单反射着色器的区别: 二. 半透明凹凸高光着色器:此着色器主要用于家具玻璃的呈现方式。它的简单原理为: 光在半透明物体中沿着各个方向进行反射和折射,所以光的方向性就消失了,但光在物体内部的所能前进的深度和物体的密度,物体到光源的距离密切相关的,所以我们用shader提供的两个变量一个是控制物体到光源距离的偏差,一个是用来控制光在无题中的衰减速度,其实也就是对对象密度以及透明度的衰减控制。[4] 普通着色器和半透明高光漫反射着色器的区别如图:

23、 用到的着色器还有一些顶点着色,视差漫反射着色等等。 3.3 软件功能实现脚本介绍 3.3.1 全局通用脚本的逻辑 在本系统的开发过程中,一些声音的播放,对象的显示与隐藏,对一些通用路基进行了封装使用,在写通用方法开发中,遇到了一些问题。 遇到的问题和解决方法是:当鼠标悬浮物体时,写脚本使物体变红,移开恢复 原来的颜色,但是,我是一个开发者,不是使用者,我在操作时,就会按照我的 流程来,使用者不知道怎么操作就会乱点,最大的问题就是:如果鼠标悬停物体 变红,点击拖着不放再移动到不与物体碰撞的地方,再松开鼠标,这时物体依然 是红色的,并没有变回原来的颜色,我起初使用的是N

24、GUI插件的OnHover()悬 停方法,因为有Bug,就放弃了这个方法,使用unity OnMouseOver()方法和 OnMouseUp()方法。 当鼠标弹起方法,测试都是没有任何问题的。但是,如果 NGUI插件结合使用的话,如果我们使用NGUI来做一些UI按钮逻辑的话,就会在 摄像机上添加一个UICamera的组件,按钮的原理是用的射线原理:即从摄像机发 射出来一条射线,如果碰到碰撞盒,则会反馈回来一个消息事件,unity自带的这 两个方法竟然就失效了,后来网上查询资料和自己的理解,发现NGUI也封装好了 一个叫做OnPress()按下button响应的方法。在这个方法里

25、添加一句使物体颜 色RGBA值变回原来的颜色,这样的话,就解决了问题,但是依然留下的问题就是 NGUI中封装好的UICamera脚本与unity系统自带的鼠标事件冲突的问题。 解决问题后的图例: 3.3.2 UI功能逻辑 在UI功能开发这个模块中,都是要考虑一些,点击那个出现,点击按钮实现什么功能,例如:点击室内按钮,会相应的出现室内的4个按钮,点击主楼按钮,会相应的会出现6个主楼的按钮,但是,不能同时出现,那么就得对这些做一个判断了,如果室内按钮没出现时,点击主楼,那么出现主楼按钮,如果室内按钮出现后,再次点击主楼按钮,那么室内按钮隐藏,主楼按钮出现,相应的其他一些类似的

26、按钮功能也相同。 在UI逻辑开发中遇到了一个问题就是和3D模型有关。当我点击6个楼时会有一些相应的反映,但是大楼的模型是一些组件拼起来的,并不是一个物体,而是很多个物体,但是按钮就一个,所以在这里就做了一个处理:建模的时候建两个模型,一个超简模,一个模型,超简模用作按钮使用,但是不做渲染,例图: 3.3.3 手指触控逻辑的深入研究 在开发过程中,手指触控逻辑是最主要的一个环节开发,也是本系统开发的一个最难得点。需求是手指触控可围绕中心点进行360度旋转和上下旋转。由于是拖拽进行旋转,所以就是用插值来改变相机的位置,在围绕中心旋转中,差值的使用方法用两种,一种是欧拉角,另外一种是四元

27、数,但是使用欧拉角旋转时,可能会碰到万向锁的Bug,所以就采用了四元数进行对围绕中心的旋转。 手指触控原理:在手指触控中获取手指触点屏幕坐标的点A(X,Y)这个点 是在手指只要触控屏幕就会实时检测更新的,再定义一个点B(X.Y).加一个判断 Bool初始为真,如果手指触控到屏幕就让B=A,然后B=A不执行,判断Bool为假, 直到手指脱离屏幕才能为真, 定义一个Vector3 C=(A.x-B.x,X.y-B.y,0) 然后再次让B=A。这里的大概意思就是:C就等于手指现在的坐标减去上一刻的坐 标,主要目的就是控制旋转的速度。 我们再定义两个值RX和RY RX=Math

28、f.Clamp(RX+ Mathf.Clamp(-x *调节速度, -45, 45), minY,maxY); RY=Mathf.Clamp(RY+ Mathf.Clamp(-x *调节速度, -45, 45), minX,maxX); Quaternion QA= EulerToQuaternion(RY,RX,0); 摄像机的角度= Quaternion.Slerp(摄像机现在的角度,QA,转动速度) 摄像机的位置=摄像机角度*new Vector3(0,水平高度,-离中心点距离) 离中心点距离=缩放滑动值(触摸缩放*缩放速度); 缩放滑动值=Mathf.Lerp(离中心点距

29、离,Mathf.Clamp(这一刻的距离+=缩放值*缩放速度,最小值 ,最大值), 速度)) 缩放值的判断原理:如果是两点触控并且第一个点和第二个点都移动才能执 行以下判断,获取两个点的屏幕坐标A(X,Y)和B(X,Y),过一瞬间,获取当前的屏 幕坐标C(X,Y)和D(X,Y)如果C-A的绝对值并且D-B的绝对值都大于0那么就进 行放大返回float缩放值。 否则就缩小,返回float缩小值。 手势判断关键性数学代码如下: Enlarge isEnlarge(Vector2 oP1, Vector2 oP2, Vector2 nP1, Vector2 nP2)

30、 { //函数传入上一次触摸两点的位置与本次触摸两点的位置计算出用户的手势 var leng1 = Mathf.Sqrt((oP1.x - oP2.x) * (oP1.x - oP2.x) + (oP1.y - oP2.y) * (oP1.y - oP2.y)); var leng2 = Mathf.Sqrt((nP1.x - nP2.x) * (nP1.x - nP2.x) + (nP1.y - nP2.y) * (nP1.y - nP2.y)); if (Mathf.Abs(leng1 - leng2) < 10) ret

31、urn Enlarge.None; outx = leng1;outy = leng2; if (leng1 < leng2) return Enlarge.Small;// 缩小手势 else return Enlarge.Large; // 放大手势 } 根据欧拉角到四元数的转换的数学公式写出转换的方法。[5] // 欧拉角到四元数的转换的代码: public Quaternion EulerToQuaternion(float _x, float _y, float _z) { float

32、x = Mathf.Cos(_y / 2 * Mathf.Deg2Rad) * Mathf.Sin(_x / 2 * Mathf.Deg2Rad) * Mathf.Cos(_z / 2 * Mathf.Deg2Rad) + Mathf.Sin(_y / 2 * Mathf.Deg2Rad) * Mathf.Cos(_x / 2 * Mathf.Deg2Rad) * Mathf.Sin(_z / 2 * Mathf.Deg2Rad); float y = Mathf.Sin(_y / 2 * Mathf.Deg2Rad) * Mathf.Cos(_x / 2 * Mathf.D

33、eg2Rad) * Mathf.Cos(_z / 2 * Mathf.Deg2Rad) - Mathf.Cos(_y / 2 * Mathf.Deg2Rad) * Mathf.Sin(_x / 2 * Mathf.Deg2Rad) * Mathf.Sin(_z / 2 * Mathf.Deg2Rad); float z = Mathf.Cos(_y / 2 * Mathf.Deg2Rad) * Mathf.Cos(_x / 2 * Mathf.Deg2Rad) * Mathf.Sin(_z / 2 * Mathf.Deg2Rad) - Mathf.Sin(_y / 2 * M

34、athf.Deg2Rad) * Mathf.Sin(_x / 2 * Mathf.Deg2Rad) * Mathf.Cos(_z / 2 * Mathf.Deg2Rad); float w = Mathf.Cos(_y / 2 * Mathf.Deg2Rad) * Mathf.Cos(_x / 2 * Mathf.Deg2Rad) * Mathf.Cos(_z / 2 * Mathf.Deg2Rad) + Mathf.Sin(_y / 2 * Mathf.Deg2Rad) * Mathf.Sin(_x / 2 * Mathf.Deg2Rad) * Mathf.Sin(_z /

35、 2 * Mathf.Deg2Rad); return new Quaternion(x, y, z, w); } 3.3.4 播放视频的不同方法 在视频播放问题上。我遇到了一些难题,由于在IOS和Android移动端不支持unity自带的Movtexture播放模式,所以经过网上查询后,解决了这一办法, 先写一个宏定义,如果是电脑端,那么就执行电脑端播放视频的方法,如果是移动端,就执行移动端播放视频的方法。电脑端比较简单,这里主要做移动设备中播放视频的方法。,利用IOS和安卓的播放视频的控件来对视频进行播放。 这里用到的是Handheld.PlayFullScre

36、enMovie播放方法 具体的4种方法代码如下: //视频播放时触摸屏幕视频关闭 Handheld.PlayFullScreenMovie(“视频名称.格式”,背景颜色,FullScreenMovieControlMode.CancelOnInput); //视频播放时弹出IOS高级控件,可以控制视频暂停播放全屏等等 Handheld.PlayFullScreenMovie(“视频名称.格式”,背景颜色,FullScreenMovieControlMode.Full); //视频播放时无法停止,当播放万一此后自动关闭 Handheld.PlayFullScreenMovie(“视

37、频名称.格式”,背景颜色,FullScreenMovieControlMode.Hidden); //视频播放时弹出IOS高级控件,可以控制视频播放进度; Handheld.PlayFullScreenMovie(“视频名称.格式”,背景颜色,FullScreenMovieControlMode.Minimal); 关键注意点:一定要将播放的视频文件放在unity的Assets/SteeamingAssets/路径下,否则是无法播放的,而且这些在电脑端测试是没有任何效果的,只有在移动端测试才行。[6] 3.3.5 发布打包PC端以及PC触控端测试测试性能并修改参数 打包电脑端程序后

38、普通的电脑并不是点触屏电脑,写了一些鼠标控制旋转缩放的一些代码来测试,但是,放在触控屏上测试,滑动的速度和缩放的速度太慢,估算了几次,调大了10倍才差不多。 3.3.6 Xcode发布IOS打包Ipad测试性能并修改参数 工程导进mac电脑里后,首先就是调整发布平台,点击Swtich platfrom按钮。此过程慢,然后点击Bulid。例图: 在发布ios的ipa文件时,经过网上查询资料,发布成功。主要的流程如下: 一, unity发布成成功后,打开发布文件夹,打开unity-iPhone.xcodeproject文件,这时候会默认Xcode打开, 二, 如果IO

39、S移动设备越狱了,连接移动端,点击运行,可以直接发布到移动端里,如果没有,那么需要用99美元苹果官网购买一个开发者账户然后在Team栏输入你的帐号密码,然后点击运行,这样你的移动设备上就直接有运行的软件了,但是要的是一个.ipa文件(类似于安卓的.apk)。 三, 点击Xcode编辑器上的Product按钮点击Archive。此过程需要几分钟,成功后会自动弹出一个Organizer-Archives的窗口。 四, 点击发布的文件点击右键,点击Show in Finder,会弹出一个有一个文件的窗口。点击文件右键,单击显示包内容,会弹出一个有三个文件夹的窗口。点击Products/A

40、pplications文件路径。里面发现了一个.app的文件,主要流程图如下: 五, 打开iTunes。把.app文件拖到iTunes里,然后把iTunes文件里生成的文件拖拽到桌面上就是想要的.ipa文件。[7] 3.4 软件BUG检查 在软件运行测试中,出现了以下BUG: 1) 在外部漫游时有时会穿墙。 1) 配置不好的机器很卡。 3) 不好看。 4) 漫游时碰到物体。松开按钮,会产生力的反作用。 5) 电脑端的很多效果移动端显示不出来,特别是阴影效果。 解决办法:1)把漫游移动速度调慢,就不会有穿墙的效果。 2)优化模型,未解决。 3

41、自己不是专业美工,没解决。 4)取消重力。 5)做Mental Ray渲染,把阴影什么渲染到贴图上解决一部分问题。 4 总结 本软件是利用了Unity3D引擎的多平台发布的便利。向各个平台展现出了一个可视化的虚拟楼盘。虚拟现实的最大优点就是充分调动客户的参与感,客户不仅是被动的观看,而是积极的互动,在售楼中心现场,结合实物沙盘,通过投影仪或等粒子显示器等大屏幕设备,通过电脑的操作和互动,吸引和聚集现场人气,客户通过沙盘、虚拟现实的展示、售楼小姐的讲解全面了解和掌握。[8] 致谢 回顾这半年来的毕业设计的研发,从一开始的功能不明确,到后来的模式确立,深感收获到跟多知识

42、虽然这是一个程序设计,最核心的开发难点还是一些3D数学的算法。这还要多谢大一的高等代数魏宗礼老师教导我学习矩阵的一些知识,多谢黄邵龙老师教导我学习的计算机图形学和设计模式的知识,另外特别感谢刘青青老师对UI图片设计的指导和对论文格式方面的指导,在此谨向各位老师致以诚挚的谢意和崇高的敬意。 参考文献 [1] 虚拟现实技术与计算机技术应用的共同发展. [2] 吴亚峰,于复兴.Unity3D 游戏开发技术详解与典型案例[M].北京:人民邮电 出版社,2012. [3] 虚拟现实精装流程.. [4] 郭浩瑜.Unity3D ShaderLab开发实战详解 [M].北京:人民邮电

43、出版社,2014. [5] wqj1212's blog.四元数与欧拉角之间的转换. [6] bssj001的专栏.Unity3D播放视频(包括在IOS和Android移动设备中播放 视频). [7] mryys的博客.使用Unity 3D开发iOS游戏入门教程. [8] 地宝网.虚拟现实房地产中的应用. Unity3D VR MA TianYu College of Mathematics Science No:110424010 Tutor:LIU Qing-qing Abstract:After the launch o

44、f Unity engine in the world has a lot of use. In this paper, by making use of Unity out of the real estate is a software virtual display, through the production of a full range of virtual reality and 3D display of realistic animation and motions. Keywords: MentalRay baking; material; three-dimensional coordinates; roaming; video playback; finger touch.

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服