相关资料

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设置

打开硬件接口

  1. Settings;
  2. Update&Security;
  3. ForDevelopers中打开Deverlorper mode;
  4. 打开Device Portal;

安装安全证书

  1. 在网页上输入HoloLens的IP地址;
  2. Home页面右上角SECURITY;
  3. 选择Download this device’s certificate下载安全证书;
  4. 有些可以双击安装;
  5. 或者Microsoft Edge进入网页,使用IE打开;
  6. Internet选项;
  7. 选择内容 — 证书 — 受信任的根证书;
    8.点击“导入…”按钮,弹出证书导入向导,点击下一步;
  8. 选择证书路径,打开,下一步,下一步,导入完成;

HoloLens与电脑的连接方式

  1. 通过wifi连接;
  2. 通过USB线连接,地址:127.0.0.1:10080;
    注:使用USB2.0的口;

开发环境的配置

  1. 系统要求Windows10;
  2. 安装VS2015及以上;
    注:Windows个人版是不能使用HoloLens模拟器的;

电脑设置

  1. 打开Windows设置;
  2. 打开更新和安全;
  3. 找到针对开发人员;
  4. 打开开发人员模式;

安装VS的注意事项

  1. 使用自定义项目安装;
  2. 将“通用Windows应用开发工具”全部勾选;
  3. 然后再找到“通用工具”;
    4.然后勾选“Visual Studio扩展工具Update 3”;

安装Unity的注意事项

  1. 必须安装“Windows Store .NET Scripting Backe”和“Windows Store IL2CPP Scripting Backe”

Unity中的设置

Microsoft Holographic平台的Unity项目与其他平台的Unity项目并没有太大的不同,除了一些明显的例外:
确保您打算跟踪HoloLens设备位置的相机在巡视窗口中被标记为主相机。场景中的默认相机应已被正确标记。
将主相机的背景属性设置为纯色,而不是默认的天空盒。将背景颜色设置为(0,0,0,0)。
在编辑 > 项目设置 > 质量中使用最快的质量设置。这最大限度地提高了性能并降低了功耗。尤其是软阴影和阴影级联在HoloLens上使用太昂贵,应该避免使用。
根据应用程序使用的子系统启用适当的发布标志。

资源需求

  1. 图片:建议PNG格式。
  2. 模型:FBX格式。
  3. 贴图:建议Tga格式。
  4. 音频:建议MP3格式。
  5. 视频:建议MP4格式。

图片

  1. Hololens应用的图标,固定大小465*465。
  2. Hololens启动面板的图片,固定大小930*450像素。
  3. Hololens应用启动画面,图片尺寸不固定(但是画面显示时会自动缩放为正方正形)。
  4. 程序中的UI。
  5. UI:进度条背景与进度条。
  6. 功能面板及凝视时的提示图片。

模型注意事项

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开发的需求与标准总结相关推荐

  1. Hololens开发系列目录

    Hololens基础 Hololens开发系列目录 01混合现实概述 Hololens开发系列目录 02环境配置 Hololens开发系列目录 03MRTK导入和配置 Hololens开发系列目录 0 ...

  2. HoloLens 2开发:HoloLens开发VS安装与配置

    前言 最近有新成员加入本团队,为了方便其开发HoloLens1 / HoloLens2,将不定时更新HoloLens相关开发相关内容. 软件需求: HoloLens 1:VS2017 + Unity2 ...

  3. HoloLens开发学习笔记(一):HoloLens简介

    HoloLens开发学习笔记(一):HoloLens简介 一.HoloLens简介 Microsoft HoloLens是Windows Holographic的使用主要设备.HoloLens是一个W ...

  4. Hololens开发笔记

    官网的开发配置:https://docs.microsoft.com/en-us/windows/mixed-reality/develop/install-the-tools?tabs=unity ...

  5. Hololens开发二维码扫描和场景重置

    写这篇文章的目的主要是记录一下最近的工作成果,感觉有些东西还是比较有价值的. 1.二维码扫描.在Hololens上开发二维码扫描功能,其实已经有很多文章介绍过了,但大多是针对特殊版本,遇到其他版本或版 ...

  6. 视频监控软件开发的需求管理

    视频监控软件开发的需求管理 摘要:项目需求管理的目的是确保各方对需求的一致理解,管理和控制需求的变更,从需求到最终产品的双向追踪.项目的需求管理可以在很大程度上影响项目的成败.本文以"××职 ...

  7. (翻译++)微软Hololens开发教程系列(1): Holograms 100-使用Unity构建第一个全息影像应用

    前言 本系列博文翻译至微软Holograms的官方英文教程,其地址为: https://developer.microsoft.com/en-us/windows/holographic/academ ...

  8. (翻译++)微软Hololens开发教程系列(1): Holograms 100-使用Unity构建第一个全息影像应用...

    Holograms 100-使用Unity构建第一个全息影像应用 前言 本系列博文翻译至微软Holograms的官方英文教程,其地址为: https://developer.microsoft.com ...

  9. HoloLens 开发总结

    目前科技界最感兴趣的设备之一是微软HoloLens.HoloLens背后的技术十分迷人,但也十分复杂.简单来说,它可以被描述为真实世界和虚拟世界的融合,其中来自两个"现实"的对象可 ...

最新文章

  1. 四十七、SQL 语法总结
  2. C++程序设计方法3:强制类型转换
  3. ai保存web格式没有html,存储技巧,讲解AI存储为WEB所用格式的一些知识
  4. ZOJ 3735 Josephina and RPG
  5. 20 WM配置-策略-定义出库排序序列(拣配)
  6. 基于DCT系数的实时监控中运动目标检测
  7. linux php yii安装教程,Linux 安装php 5.4 – yii2 环境
  8. 语音识别基本原理介绍之gmm-hmm续
  9. 16年,平凡而又收获的一年
  10. 计算机如何把应用储存进u盘,怎样把word中的内容保存进u盘 怎样把word文档放到u盘里?...
  11. yigo项目中使用的函数
  12. 亚像素级精确度的角点
  13. 探索“哑巴英语”的缘由
  14. Facebook Move 语言 IR 编译器简介
  15. (模电笔记一 By Multisim)单管共射放大电路
  16. linux debian硬盘安装,硬盘安装Debian
  17. python新手爬虫练习(二)-编码
  18. 1.Keil5兼容C51以及Keil4项目
  19. 【Unity】Mesh网格编程(三)万能网格几何形体
  20. 支付宝对账查询+文件下载+解压+遍历文件+读文件

热门文章

  1. parse_depend_manifests Could not find dependent assembly LMicrosoft.Windows.Common-Controls
  2. 跨境电商人要知道的知识产权侵权防范小知识
  3. MDaemon功能篇之优先级邮件
  4. 考公 | 粉笔网课笔记——数量 刘凯
  5. 51单片机复习程序例举004--HD44780控制的1602LCD
  6. linux 汇编 `.eabi_attribute',交叉编译arm-none-eabi-gcc编译汇编文件(startup_stm32f10x_hd.S)遇到的有关问题(2)...
  7. [PPPOE]PPPD分析
  8. 【pytorch yolov5 模型优化和超参数自动调整】
  9. 由魅族16到Reno5新机的转变!绿厂凭这几点吸引了我
  10. 地铁发展黄金期 安防应用受考验