赞
踩
前言
本系列博文翻译至微软Holograms的官方英文教程,其地址为: https://developer.microsoft.com/en-us/windows/holographic/academy
该系列文章由浅入深的讲解了如何一步步的使用Unity3D来开发Hololens的应用程序,教程中所使用到的项目文件可以作为后续的开发模板使用。此外,在翻译时,结合自己的理解和经验,我对其中的一些部分增加了额外的解释,希望能帮助大家更好的理解Hololens的开发。
开发工具和环境需求请参阅msp的昌伟哥哥 博文<HoloLens开发手记-配置开发环境 Install the tools>,对于没有Hololens真机设备的朋友,可以考虑利用模拟器进行常规的开发和调试。
基于我个人的经验,尽量使用CPU主频高一些的记笔记或者桌面电脑(有固态硬盘更好)以提高生产力,因为在大部分的情况下,在Unity中开发全息应用的一次调试和部署都会需要两次编译,第一次由Unity编译并导出相应的C# 项目及文件,第二次是则是需要使用Visual Studio打开导出的项目,然后编译并部署到Hololens模拟器或真机中进行调试。 关于使用模拟器遇到的常见问题,我会尝试在另外一篇文章中分享出来。
第一章 - 创建项目
在使用Unity构建一个应用程序之前,首选需要创建一个Unity项目。 一个Unity项目会包含所有用到的资源,比如来自3D Max,Maya的模型文件,动画,场景,Photoshop图片以及脚本文件和其他会使用到的素材等。值得注意的是,Unity是使用windows 或者 mac 的文件目录结构本身来管理项目资源,它并不依赖于一个中央管理文件(类似Visual Studio中的 解决方案*.sln或项目文件*.csproj)。
Unity 本身支持使用C# 或者Javascript来撰写相应的脚本代码,你可以使用任何你喜欢的编辑工具来创建和维护这些脚本。 Unity会自动发现项目文件目录下的所有脚本,除此之外,如果脚本在Visual Studio或者其他的编辑工具中被修改保存后,Unity也会自动重新加载这些更改后的脚本。
如果需要编译和部署一个UWP程序的话,可以使用Unity来导出整个源代码然后使用Visual Studio 来完成后续的编译和部署功能,接下来我们就来看看如何创建一个Unity 项目:
第二章 - 设置摄像机
我们需要对Unity中的主摄像机做一些设置上调整来确保它能在Holoens的应用程序中处理头部跟踪动然后正确的渲染影像。
首先,想要更好的放置你的全息应用程序,我们必须先知道用户的位置在哪,为了方便起见,我们会使用世界原点(X:0,Y:0,Z:0)作为用户的起始位置,也就是主摄像机的位置,你可以将主摄像机想象为用户的双眼,随着用户头部的移动,主摄像机的位置也会不断更新。以此主摄像机的起始位置为参照,我们便能方便的控制和调整全息图像和用户之前的距离。 (注意,在Unity中开发Hololens的应用,一个Unit单位就代表现实中的一米)
接下来,我们需要更改主摄像机的背景设置,因为在一个全息的应用程序中,摄像头渲染的全息图像应该使用真实世界的影像来作为背景,而非采用默认的Skybox质地作为渲染背景。
最后,为了避免渲染的全息影像太过靠近用户的双眼,需要在Inspector面板中将Camera组件的Near clicp(视距)设置为Hololens的推荐值:0.85米,即双眼离全息影像的距离至少为0.85米远
第三章 - 创建全息应用
在Unity中创建一个全息影像的应用和创建一个普通的Unity项目并没有什么不同,当项目创建完成后,你可以基于Unity自带的坐标系统,很方便的放置一个3D模型(即最终输出为全息影像)在你希望的位置。别忘了Unity中的坐标系统既代表了真实世界的投影,Unity中的1个单位就代表真实世界中的1米 (比如将一个方块Cube 的X值设置为1,则以为着以世界原点为基准,该物体往X方向移动1米)
第四章 - 从Unity中导出至Visual Studio
当你跟随着之前的章节完成你的第一个全息应用的创建后,接下来要做到事便是从Unity中将项目导出到 Visual Studio中进行编译以便最终将你的全息应用部署到Hololens 设备或者Hololens模拟器中。在导出之前,我们需要在Unity对项目做一些设置上的调整
Unity 中的性能设置
对于Hololens而言,维持一个高刷新率是至关重要的,它直接影响到全息影像在现实世界中呈现的效果以及用户的感受。因此,我们有必要稍微牺牲一些画面上的质量以换取一个较高的性能。具体细节可参阅官方关于Unity 性能的文档 Performance recommend for Unity (目前仅有英文版本)
在2D/3D图形相关的开发的市场中,选择Unity作为开发平台的人占比超过50%之多,其中最重要的一个原因既是Unity 能方便迅速的编译和导出针对不同运行平台的应用程序。常见的包括了Xbox,Mac,Windows Store等等。
在本文中,我们的目标平台是Hololens,一个运行Windows 10的设备。因此,我们需要在Unity中将编译的目标平台选择为Windows Store来生成Universal Windows Platform的应用程序 (UWP程序可以运行在所有的Windows 10 平台上)
针对Windows 全息应用的导出设置
为了使Unity导出的应用程序能正确的以全息图像视野而非普通2D图像视野来显示,我们需要在Unity中进行一些相应的设置即添加Hololens作为其虚拟现实设备。
导出到Visual Studio解决方案
到这一步为止,我们构建的Unity项目已经全部设置好了,接下来我们将从Unity中把项目编译然后导出相应的Visual Studio解决方案及项目文件
设置应用程序为Windows 全息应用
在默认情况下,从Unity中导出的Universa Windows Platform 应用程序将会在所有的Windows 10设备上运行。但是对于全息应用程序来说,有些功能上的优势是holoLens有且仅有的,因此如果你不打算在其他非Hololens的Windows10 设备上运行你的应用程序的话,那么最好将应用的目标设备设置为仅运行在Hololens设备上。
第五章 - 编译和部署全息应用程序
现在我们唯一剩下的工作就是从Visual Studio中编译然后部署我们的第一个全息应用程序了。首先,在Visual Studio顶部的编译选项工具栏里,将目标从Debug改为Release ,平台从ARM改为X86. 接下来的步骤,需要取决于你是在模拟器中或者Hololens真机上进行部署,具体请参阅如下
通过Wi-Fi将应用部署到Hololens真机
通过USB将应用部署到Hololens真机
在Visual Studio的编译选项栏里,将设备这一下拉框中选择 Device
选择Visual Studio 的菜单目录 Debug > Start without debugging.
通过USB将应用部署到Hololens模拟器
HoloLens Pin获取
你第一次从Visual Studio部署应用到HoloLens,你将需要验证PIN码。在HoloLens上,通过启动设置应用来生成一个PIN码,具体操作是前往Update > For Developers,然后点击配对。一个PIN将会显示在HoloLens上,然后在Visual Studio中输入此PIN码。配对结束后,点击完成(Done)按钮来隐藏此提示框。此时PC已与HoloLens配对,你将可以自动部署应用到HoloLens上。为每一台用于开发的不同PC重复此步骤。
为了解除HoloLens和PC直接的配对,可以启动设置应用,前往Update > For Developers,然后点击清除(Clear)。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。