当前位置: 华文问答 > 数码

Magic Leap 和微软的 HoloLens 相比有哪些异同点?

2015-10-28数码

这个回答将潜入浅出的谈一下光场渲染,从而让读者自己能够分析或意识到magic leap 与hololens的异同。我尽量不用数学公式,我将谈以下几个部分:

1. 什么是光场渲染,光场的采集及利用.

2. 从五维光场到四维光场。

3. magic leap 能做什么,限制又在哪? 反过来hololens呢?


1. 光场渲染,是一种基于图像的渲染方法。 为了便于理解,想象一个静态的室内场景


如果我在这个静态场景内的某一个位置,放置一个相机,拍下一张照片,那么无疑,这张照片是最真实的。

好我们现在进一步:

我们如上图所示,在一直线上不同的位置都摆上相机拍下照片,并把照片储存下来,然后对于一个观察者,如果我们知道他是站在某个位置的,咱们就用算法快速的把那个位置的照片调出来播放给他,那么等于说,他实时地看到了照片级真实的渲染。 尽管此时位置和角度还是受限的。

好现在我们更进一步: 我们假设可以把相机做得无穷小,并且一个相机能够下360度球面上入射的光照, 那么,我们把相机放在场景里的某一个位置拍摄可以得到这样一张图:


此时,我们做如下的一件事情:

我们在场景里遍历所有可能的位置,摆放相机并拍摄球形画面,然后等我们知道一个观察者站在某个位置时又知道他在往哪里看时,就把对应的球光照索引出来并反投影到他眼睛里,就等于是他见到了在此点处的照片级真实图像!

而这个我们之前拍摄并储存下来的数据,就是所谓的五维光场函数.

xyz 是视点坐标,theta phi则是球坐标上的索引.

可想而知,存储这样的五维光场,数据量是十分巨大的。

2.从五维光场到四维光场:

接下来,我们对问题作一些简化:

首先,我们假设空气的透明度很高,于是沿着一个光线方向的照明是不会变的。

其次,我们假设物体有一个凸包,观察点永远不会进入到凸包内。如下图


那么此时某个远处的观察点所看到的照明度的值 是可以由这个外接盒表面的交点 u v s t 唯一确定的. 因为不同位置过来的视线实则只与这个盒子的某两面有交点 如果我们通过预计算并存下这堆数据,我们实则把五维函数压到了四维,大大的缩减了存储空间!

事实是: 我们可以用十分昂贵的光照算法来预计算以及存储这些光场信息,然后在之后的观察渲染环节,人们就能看到 照片级别真实的 数字场景!

可以想象,magic leap视频中所使用的凸包.

所以到此为止,我们知道了,采用光场渲染,它的难度根本不在于图像是否是通过复杂的离线渲染来生成的,而是如何最大程度地压缩四维光场以及如何最快速度地从已有的光场数据里提取及合成出用户所要看到的画面.

到了这里,我们也就不难领略到hololens和magic leap的异同了:

首先 他们都需要能够捕捉出视点位置的功能.

然后 hololens的目的是交互式地用户可以「进入」的,但是「视觉效果并不真实」的虚拟环境。

而正如你们可以推断,magic leap生成出来的,是「电影级别真实的」 但用户并不可随意进出(凸包限制,在凸包外可以自由移动以及变换观察视角),也不能随意人机交互的(光场是预计算好的) 一种新型的高端大气的「显示设备」 比如可以用它来播放一长段预计算好的电影 好处是你能换着视角看