HoloLens 开发笔记(5)——Gaze
在前面我们粗略了解了 HoloLens,包括 Hello World、MRTK、Windows Device Portal、坐标系统。
下面开始 HoloLens 基础部分的学习,包括 Gaze、Gesure、Voice、Audio Souce 等。本篇文章来学习 HoloLens 的基础开发之凝视操作。
创建一个新的 Unity 项目 GazeDemo,导入 MRTK 工具包,并将项目应用为 MR 项目。
删除掉默认的相机,添加 MRTK 的 HoloLensCamera 到 Hierarchy 中。添加 MRTK 中的 CursorWithFeedback 到 Hierarchy 中。
一、凝视操作
从 MRTK 中拖拽 InputManager 到 Hierarchy 中。这是一个十分重要的 Manager,它将管理我们的凝视等输入事件。
设置 InputManager 的 SimpleSinglePointerSelector 脚本的 Cursor 属性为添加的 CursorWithFeedback。
随后添加一个 Cube 到 Hierarchy 中,来实现凝视 ...
HoloLens 开发笔记(4)——Coordinate Systems
混合现实应用的核心就是如何在现实世界中放置看起来真实的全息影像,这涉及到全息图的精确定位,无论是在现实世界还是在虚拟世界中,HoloLens 为我们提供了空间坐标系统(spatial coordinate systems)来方便几何图形的定位。
一、空间坐标系统
所有的三维应用程序都是使用笛卡尔坐标系来描述物体的位置和方向,沿着坐标系建立 X,Y,Z轴。空间坐标系以米为单位表示其坐标值,因此可以十分方便的渲染对象和环境。
HoloLens 采用右手笛卡尔坐标系,也就是说 X 轴正方向指向右边,Y轴正方向与重力平行且指向上方,Z轴正方向朝向你。
笛卡尔坐标系的左手和右手的区别就是 Z 轴的方向是朝向你还是远离你。将左手和右手平放均指向右方,将手指弯曲指向上方,此时大拇指的朝向就是 Z 轴的朝向。
二、坐标参考框架
在全息渲染中,有些影像需要跟随用户头部的移动而移动,有些影像在用户头部移动时需要始终保持在固定的位置上。
HoloLens 为我们提供了两种参考框架,分别是静止参考框架(Stationary frame of reference) 和附加参考框架(Attached fra ...
HoloLens 开发笔记(3)——Windows Device Portal
Windows设备控制台允许你通过 Wi-Fi 或 USB 来远程控制你的 HoloLens 设备。设备控制台是 HoloLens 上的一个 Web Server,你可以通过PC的浏览器来连接到它。设备控制台包含了很多帮助你管理、调试和优化 HoloLens 设备的工具。
一、设置 HoloLens 以使用 Windows Device Portal
打开 HoloLens,并穿戴上
使用绽开手势打开开始菜单
选中设置应用,在你放置它以后会自动启动
选中更新选项
选中开发者选项
打开开发者模式
滑动页面,打开设备控制台选项
二、通过 Wi-Fi 连接
将 HoloLens 连上Wi-Fi
找到你的 IP 地址
在PC浏览器上前往 https://<你设备的IP>
浏览器会显示以下信息,“浏览器的证书存在问题”。这是因为Windows设备控制台的证书是测试证书,你现在可以忽略这个证书错误。
三、通过 USB 连接
安装好开发工具,确保PC上已有 Visual Studio 2015 Update 1及更新版本和 Windows 10 开发者工具。这保证 ...
SpectatorView For HoloLens
戴上 HoloLens 时,我们通常会忘记这样一件事:没有戴上它的人无法体验到我们所能体验到的神奇感受。 SpectatorView(三方视角,旁观视图)允许其他人通过2D屏幕看到 HoloLens 用户在其世界里看到的东西。有了旁观视图,就可以通过快速且经济的方式在移动设备中录制高清全息影像。 有了它,还可以通过摄像机对全息影像进行专业质量的录制。
下表显示了不同的旁观视图功能。 请选择最符合你的视频录制需求的选项:
移动版
摄像机
高清质量
全高清
专业质量摄影(取决于摄像机)
相机移动轻松
✔
✔
第三人称视图
✔
✔
可以流式传输到屏幕
✔
✔
可移植
✔
无线
✔
其他必需硬件
Android 手机、iPhone
HoloLens + 支架 + 三脚架 + 摄像机 + 电脑 + Unity
硬件投资
低
高
跨平台
Android、iOS
同步的内容
✔
✔
运行时设置持续时间
即时
慢
重要资源:
GitHub 上的旁观视图
旁观视图文档
旁观视图示例
一、第三人称视角(Preview)
1.1 ...
HoloLens 开发笔记(2)——MRTK
一、什么是 MRTK?
MRTK(Mixed Reality Toolkit) 是微软为我们提供的混合现实开发工具包,旨在帮助我们加速开发混合现实应用程序。
基于 Unity 的 MRTK(MixedRealityToolkit-Unity) 提供了许多 API 来加速混合现实项目的开发,包括 HoloLens 和 IHMD。
二、如何使用MRTK?
在我写这篇文章时(2018-11-21)时,最新的 Relaese 版本为 Mixed Reality Toolkit 2018.9.0 (vNext Beta) ,仍然为 Beta 版,在配合 Unity 2018 2.x 使用的时候仍然会出现 BUG,因此我使用了HoloToolkit 2017.4.2.0 版本。
请下载 HoloToolkit-Unity 和 HoloToolkit-Unity-Examples 这两个 unitypackage 文件。
使用的先提条件和具体流程参考官方文档 GettingStarted,下面我简单叙述下:
创建一个新的 3D Unity项目,然后点击 Assets -> Impo ...
HoloLens 开发笔记(1)——HelloWorld
HoloLens是微软在2015年推出的一款混合现实(MR)眼镜,官方网站点击这里。这个眼镜具体能干啥,文字表述总是太过乏力,下面给出一些相关视频,帮助大家感受下。
Microsoft HoloLens: Build 2016 Keynote
TED - A futuristic vision of the age of holograms
科技美学 - 微软 HoloLens 开发者体验 混合现实
没玩过微软的这个产品还敢说你了解高科技?——微软HoloLens
一、环境搭建
名称
环境
操作系统
Win10 专业版 1703【请确保至少保证为Win10,推荐1703+】
Visual Studio
Visual Studio Community 2017
Unity
Unity 2018.2
首先请熟悉HoloLens的基本操作,可以参考说明书,或者文章开头的三方体验视频,或者自己百度啊啥的,然后在PC上搭建VS + Unity的开发环境。
二、Mixed Reality Unity 项目
本章将演示一个简单的使用Unity实现的混合现实应用,基 ...
解决 MySQL 报错The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents ....
问题描述
今天在使用SpringBoot 2.1 + MyBatis时,报了一个很奇怪的错误,如下所示:
12345678910111213141516172018-11-15 15:22:42.424 ERROR 14132 --- [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization.java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value ...
Git Fork 后与源作者同步更新
一、图形化操作
(1)打开 fork 过来的项目,点击 new pull request
(2)在进入的界面, 将左边的设置为你自己的仓库, fork 过来的在右边, 然后点击 Create pull request,如下图:
(3)点击 Merge pull request 合并从源 fork 来的代码:
二、命令行操作
先总结下主要命令:
12345git remote -v git remote add upstream git@github.com:xxx/xxx.gitgit fetch upstreamgit merge upstream/mastergit push
数据库基础理论
一、事务的四大特性 ACID
只有满足一致性,事务的执行结果才是正确的。
在无并发的情况下,事务串行执行,隔离性一定能够满足。此时要只要能满足原子性,就一定能满足一致性。
在并发的情况下,多个事务并发执行,事务不仅要满足原子性,还需要满足隔离性,才能满足一致性。
事务满足持久化是为了能应对数据库奔溃的情况。
1.1 原子性 Atomicity
原子性是指事务是一个不可分割的工作单位,事务中的操作要么全部成功,要么全部失败。比如在同一个事务中的SQL语句,要么全部执行成功,要么全部执行失败。
回滚可以用日志来实现,日志记录着事务所执行的修改操作,在回滚时反向执行这些修改操作即可。
1.2 一致性 Consistency
事务必须使数据库从一个一致性状态变换到另外一个一致性状态。 以转账为例子,A向B转账,假设转账之前这两个用户的钱加起来总共是2000,那么A向B转账之后,不管这两个账户怎么转,A用户的钱和B用户的钱加起来的总额还是2000,这个就是事务的一致性。
1.3 隔离性 Isolation
隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数 ...
热度算法和个性化推荐
今日头条的走红带动了“个性化推荐”的概念,自此之后,内容型的产品,个性化算法就逐渐从卖点变为标配。伴随着“机器学习”,“大数据”之类的热词和概念,产品的档次瞬间提高了很多。而各种推荐算法绝不仅仅是研发自己的任务,作为产品经理,必须深入到算法内部,参与算法的设计,以及结合内容对算法不断“调教”,才能让产品的推荐算法不断完善,最终与自己的内容双剑合璧。
本文以新闻产品为例,结合了我之前产品从零积累用户的经验,整理了作为PM需要了解的基本算法知识和实操。
一、算法的发展阶段
个性化推荐不是产品首次发布时就能带的,无论是基于用户行为的个性化,还是基于内容相似度的个性化,都建立在大量的用户数和内容的基础上。产品发布之初,一般两边的数据都有残缺,因此个性化推荐也无法开展。
所以在产品发展的初期,推荐内容一般采用更加聚合的“热度算法”,顾名思义就是把热点的内容优先推荐给用户。虽然无法做到基于兴趣和习惯为每一个用户做到精准化的推荐,但能覆盖到大部分的内容需求,而且启动成本比个性化推荐算法低太多。
因此内容型产品,推荐在发布初期用热度算法实现冷启动,积累了一定量级以后,才能逐渐开展个性化推荐算法。
...