HoloLens开发的需求与标准总结
相关资料
HoloLens SDK地址: https://github.com/Microsoft/MixedRealityToolkit-Unity
XR:https://docs.unity3d.com/Manual/VROverview.html
技术
HoloLens 的使用场景主要受限于现在还不成熟的CV技术,所以 HoloLens 只能在小型室内、中等光照、较简洁的空间里使用。HoloLens 的slam技术,官方叫 spatial mapping 。每秒钟会『拍』5帧画面,然后对周围的空间进行『学习』和『理解』。
功能
HoloLens的基本功能
凝视,语音,手势,空间定位
(a) 摄像头看到的图像,即当前场景的 color buffer。
(b) 当前场景的深度图,depth map 或 z buffer。
(c) SLAM 合成后的三维场景,这个场景所在的空间下文我们暂且称为 Holo Space,它可能是以乐高方块的形式表示,也可能是用三角形来表示。
(d) HoloLens 设备在 Holo Space 中的坐标 (x, y, z)、朝向 (tx, ty, tz)。
(e) 手势识别的结果,类似 HRESULT OnGestureDetected(DWORD dwHandId, DWORD dwEventId, LPVOID lpUserInfo) 的样子。
(f) 语音识别的结果,类似 HRESULT OnVoiceRecognized(std::string& strSentence, FLOAT confidence) 的样子。
HoloLens设置
打开硬件接口
- Settings;
- Update&Security;
- ForDevelopers中打开Deverlorper mode;
- 打开Device Portal;
安装安全证书
- 在网页上输入HoloLens的IP地址;
- Home页面右上角SECURITY;
- 选择Download this device’s certificate下载安全证书;
- 有些可以双击安装;
- 或者Microsoft Edge进入网页,使用IE打开;
- Internet选项;
- 选择内容 — 证书 — 受信任的根证书;
8.点击“导入…”按钮,弹出证书导入向导,点击下一步; - 选择证书路径,打开,下一步,下一步,导入完成;
HoloLens与电脑的连接方式
- 通过wifi连接;
- 通过USB线连接,地址:127.0.0.1:10080;
注:使用USB2.0的口;
开发环境的配置
- 系统要求Windows10;
- 安装VS2015及以上;
注:Windows个人版是不能使用HoloLens模拟器的;
电脑设置
- 打开Windows设置;
- 打开更新和安全;
- 找到针对开发人员;
- 打开开发人员模式;
安装VS的注意事项
- 使用自定义项目安装;
- 将“通用Windows应用开发工具”全部勾选;
- 然后再找到“通用工具”;
4.然后勾选“Visual Studio扩展工具Update 3”;
安装Unity的注意事项
- 必须安装“Windows Store .NET Scripting Backe”和“Windows Store IL2CPP Scripting Backe”
Unity中的设置
Microsoft Holographic平台的Unity项目与其他平台的Unity项目并没有太大的不同,除了一些明显的例外:
确保您打算跟踪HoloLens设备位置的相机在巡视窗口中被标记为主相机。场景中的默认相机应已被正确标记。
将主相机的背景属性设置为纯色,而不是默认的天空盒。将背景颜色设置为(0,0,0,0)。
在编辑 > 项目设置 > 质量中使用最快的质量设置。这最大限度地提高了性能并降低了功耗。尤其是软阴影和阴影级联在HoloLens上使用太昂贵,应该避免使用。
根据应用程序使用的子系统启用适当的发布标志。
资源需求
- 图片:建议PNG格式。
- 模型:FBX格式。
- 贴图:建议Tga格式。
- 音频:建议MP3格式。
- 视频:建议MP4格式。
图片
- Hololens应用的图标,固定大小465*465。
- Hololens启动面板的图片,固定大小930*450像素。
- Hololens应用启动画面,图片尺寸不固定(但是画面显示时会自动缩放为正方正形)。
- 程序中的UI。
- UI:进度条背景与进度条。
- 功能面板及凝视时的提示图片。
模型注意事项
1. 需要低面数模型
a. 实时光照同场景控制在10W面以内。
b. 不同实时光照同场景控制在20W面以内。
c. 面数是指三角面“Tris”。
2. 在建模阶段把缩放等内容处理好。
a. 建模阶段的单位尺寸和Unity保持一致使用米为单位。
b. 调整好模型的大小。
c. 坐标轴放在模型下方。
3. 贴图
a. Hololens中要使用光照贴图。
b. 贴图种类尽量少一些。
c. Shader最好使用微软Hololens官方实例中提供的Shader。
ProjectSetting
Company Name
ProductName:app的显示的名称
Icon
Tile—Short name:将应用添加到主菜单的时候的名称;
应用图标 (旧版本,适用于Windows version 17134.111.x86fre.rs4_release_svc_prod1.180605-2350)
Icon:是在Square 310*310
1. Scale 100% 310*310
2. Scale 125% 388*388
3. Scale 150% 465*465
4. Scale 125% 620*620 **
启动画面
Splash Image
Vitual Reality Splash Image:启用画面
启动面板
在Windows
Scale 150%(930*450pix)
性能
指标 | 目标 |
---|---|
帧速率 | 60fps |
功耗 | 一分钟内平均功耗处于HoloLens Device Portal性能工具图标中的橙色和绿色区域。如图9中Power部分 |
内存 | 总提交内存小于900M |
为HoloLen开发应用与开发传统桌面应用是完全不同的,因为用户会在物理世界中移动,所以为了使得全息图像能有逼真的体验,必须快速的刷新用户视图。用户每只眼睛看到的视图是不同的,所以我们必须在能模拟物理法则的情况下,以最低的延迟来刷新用户视野,避免全息图形相对真实世界发生漂移。全息场景的渲染管道和第一人称视角的3D游戏的渲染管道是相似的,60fps对HoloLens也是理想的指标,当应用的帧速率接近或达到60fps时,实时低延迟的渲染会让全息场景会达到最佳的视觉体验,看起来会更接近很真实物体。
在应用开发周期中,60fps的目标是我们应该最先努力达成,只有在满足帧速率后,才应当去考虑功耗的优化。而且当画面的帧速率远低于60fps时,此时测出的功耗会有较大的误差。
性能优化建议
全息应用和其他图形应用一样,视图的复杂度会严重影响渲染性能,因此为了尽可能达到60fps,我们首先关注的应该是对视图复杂度的优化。对于HoloLens而言,视图复杂度的优化应当关注以下方面:
模型面数
场景中的3D模型的面数越多,虽然在视觉效果上会越精细越动人,但也意味着会消耗更多的计算和存储资源,对设备的负担越大。当场景中模型的面数过多时,会导致帧速率大幅降低,用户会明显感到画面出现延迟、卡顿,这对于全息场景而言是致命的。在这种情况下,在保证观看效果的情况下,模型的面数越少越好。从我个人的实践经验来看,整个场景中,总渲染面数应当控制在10-20万以内。
着色器Shader
Shader对于图形渲染是至关重要的组件,在HoloLens上也是我们优化的重点。一般来讲,工具生成的通用shader一般太过复杂,很多内容对HoloLens无用,因此我们可以使用高阶着色器语言(HLSL)来自己编写shader,提高视图的渲染效率。Unity3D自带的shader不被推荐使用,取而代之的是推荐使用HoloToolkit-Unity项目中的经过精简优化的shader。
此外,切换shader渲染不同的全息图像对性能的代价非常大,推荐应当对Draw Call进行排序,使得能顺序渲染具有同一着色器的对象,减少切换shader的次数,提高渲染效率。
手势
IFocusable
for focus enter and exit. The focus can be triggered by the user’s gaze or any other gaze source.
凝视聚焦事件,当视线进入或离开物体的触发IHoldHandle
for the Windows hold gesture.
处理Hold手势事件IInputHandler
for source up and down. The source can be a hand that tapped, a clicker that was pressed, etc.
处理点击过程中的按下和松开事件IInputClickHandler
for source clicked.
The source can be a hand that tapped, a clicker that was pressed, etc.
处理点击事件IManipulationHandler
for the Windows manipulation gesture.
处理手势操纵事件,事件返回手势偏移量INavigationHandler
for the Windows navigation gesture.
处理手势导航事件,事件返回手势偏移量,值域[-1, 1]ISourceStateHandler
for the source detected and source lost events.
处理事件源的状态监测,比如:手势离开检测区域ISpeechHandler
for voice commands.
处理语音命令(5.5.1f1新增)IDictationHandler
for speech to text dictation.
IGamePadHandler
for generic gamepad events.
IXboxControllerHandler
for Xbox One Controller events.
语音输入
语音是HoloLens三种主要输入形式之一。它可以让你直接命令一个全息图,而不必使用手势。你只是注视全息图并说出你的命令。语音输入可以是一种自然的方式来传达你的意图。语音特别擅长遍历复杂的接口,因为它可以让用户用一个命令切换嵌套菜单。
语音输入由支持所有其他通用Windows应用程序中的语音的相同引擎驱动。
What can I say?
Go home | Go to Start - instead of bloom to get to Start Menu
Launch
Move here
Take a picture
Start recording
Stop recording
Increase the brightness
Decrease the brightness
Increase the volume
Decrease the volume
Mute | Unmute
Shut down the device
Restart the device
Go to sleep
What time is it?
How much battery do I have left?
Call (requires HoloSkype)
————————————————开发过程中查阅的资料和自己的一些总结;————————————————
HoloLens开发的需求与标准总结相关推荐
- Hololens开发系列目录
Hololens基础 Hololens开发系列目录 01混合现实概述 Hololens开发系列目录 02环境配置 Hololens开发系列目录 03MRTK导入和配置 Hololens开发系列目录 0 ...
- HoloLens 2开发:HoloLens开发VS安装与配置
前言 最近有新成员加入本团队,为了方便其开发HoloLens1 / HoloLens2,将不定时更新HoloLens相关开发相关内容. 软件需求: HoloLens 1:VS2017 + Unity2 ...
- HoloLens开发学习笔记(一):HoloLens简介
HoloLens开发学习笔记(一):HoloLens简介 一.HoloLens简介 Microsoft HoloLens是Windows Holographic的使用主要设备.HoloLens是一个W ...
- Hololens开发笔记
官网的开发配置:https://docs.microsoft.com/en-us/windows/mixed-reality/develop/install-the-tools?tabs=unity ...
- Hololens开发二维码扫描和场景重置
写这篇文章的目的主要是记录一下最近的工作成果,感觉有些东西还是比较有价值的. 1.二维码扫描.在Hololens上开发二维码扫描功能,其实已经有很多文章介绍过了,但大多是针对特殊版本,遇到其他版本或版 ...
- 视频监控软件开发的需求管理
视频监控软件开发的需求管理 摘要:项目需求管理的目的是确保各方对需求的一致理解,管理和控制需求的变更,从需求到最终产品的双向追踪.项目的需求管理可以在很大程度上影响项目的成败.本文以"××职 ...
- (翻译++)微软Hololens开发教程系列(1): Holograms 100-使用Unity构建第一个全息影像应用
前言 本系列博文翻译至微软Holograms的官方英文教程,其地址为: https://developer.microsoft.com/en-us/windows/holographic/academ ...
- (翻译++)微软Hololens开发教程系列(1): Holograms 100-使用Unity构建第一个全息影像应用...
Holograms 100-使用Unity构建第一个全息影像应用 前言 本系列博文翻译至微软Holograms的官方英文教程,其地址为: https://developer.microsoft.com ...
- HoloLens 开发总结
目前科技界最感兴趣的设备之一是微软HoloLens.HoloLens背后的技术十分迷人,但也十分复杂.简单来说,它可以被描述为真实世界和虚拟世界的融合,其中来自两个"现实"的对象可 ...
最新文章
- 四十七、SQL 语法总结
- C++程序设计方法3:强制类型转换
- ai保存web格式没有html,存储技巧,讲解AI存储为WEB所用格式的一些知识
- ZOJ 3735 Josephina and RPG
- 20 WM配置-策略-定义出库排序序列(拣配)
- 基于DCT系数的实时监控中运动目标检测
- linux php yii安装教程,Linux 安装php 5.4 – yii2 环境
- 语音识别基本原理介绍之gmm-hmm续
- 16年,平凡而又收获的一年
- 计算机如何把应用储存进u盘,怎样把word中的内容保存进u盘 怎样把word文档放到u盘里?...
- yigo项目中使用的函数
- 亚像素级精确度的角点
- 探索“哑巴英语”的缘由
- Facebook Move 语言 IR 编译器简介
- (模电笔记一 By Multisim)单管共射放大电路
- linux debian硬盘安装,硬盘安装Debian
- python新手爬虫练习(二)-编码
- 1.Keil5兼容C51以及Keil4项目
- 【Unity】Mesh网格编程(三)万能网格几何形体
- 支付宝对账查询+文件下载+解压+遍历文件+读文件
热门文章
- parse_depend_manifests Could not find dependent assembly LMicrosoft.Windows.Common-Controls
- 跨境电商人要知道的知识产权侵权防范小知识
- MDaemon功能篇之优先级邮件
- 考公 | 粉笔网课笔记——数量 刘凯
- 51单片机复习程序例举004--HD44780控制的1602LCD
- linux 汇编 `.eabi_attribute',交叉编译arm-none-eabi-gcc编译汇编文件(startup_stm32f10x_hd.S)遇到的有关问题(2)...
- [PPPOE]PPPD分析
- 【pytorch yolov5 模型优化和超参数自动调整】
- 由魅族16到Reno5新机的转变!绿厂凭这几点吸引了我
- 地铁发展黄金期 安防应用受考验