作者:王文刚
 
学习一个新技术,有三个法宝:
  • 法宝1: 掌握厂家提供的用户API手册
  • 法宝2: 掌握厂家提供的demo样例
  • 法宝3:《每个研发人员都应树立的一个demo模式》
故,学习魔镜4技术,亦如是也。

暴风魔镜4是 硬件 + 暴风VR SDK软件的CardBoard VR解决方案
硬件
魔镜4硬件提供了展示容器工具,主要由2个凸透镜和塑料头盔构成。故为了看到效果酷炫的VR效果,必须要依赖5寸以上Android手机–720P以上,把通过暴风魔镜SDK做的App放入里面,通过暴风魔镜凸透镜才能看到VR的效果–这种Cardboard方式VR,是基于2年前Google CardBoard“启发”的。
参考:暴风魔镜4适配机型列表(2015.12.2更新)
网上也有说几十元,可以自己组装Google CardBoard的,不过对于DIY硬件,我没有太大动力,100多元钱,买个现成的暴风魔镜 4,非常好了。

暴风SDK软件
SDK软件,才是Unity3D程序员重点关注的。

这张图,是魔镜提供的360度图片的Unity3D层次截图,这里我们可以看出部分SDK软件框架:
  • UI:这里主要采用UGUI,做了一个Button,返回主界面。 在VR中,UGUI 的3D UI效果就立显了,还有就是UGUI是Unity原生的,效果又不错,故做UI选择UGUI是大趋势。
  • MojingMainMojingVRHead:负责陀螺仪数据接收,水平坐标x和垂直坐标y数据。
  • MojingInputManager:负责手机蓝牙的输入控制,直接拿来复用即可,魔镜出厂适配了魔镜蓝牙和小米蓝牙控制器,一般而言,目前蓝牙手柄是比较常见的外设输入,可能随着Oculus Touch面世会升华。
  • GazePointer\Pose3D:眼睛目视前方的小黄点。这个是VR应用中一个很酷的实践,当你没有蓝牙控制器,可通过这个轨迹点,实现功能选择。通过代码中,看到很多流利的英文注释,我搜索了一下github,原来当年google CardBoard代码,一模一样嘛,呵呵。
  • MojingEye: 一个VR应用,要用到2个Camera,分别是Left、Right,类似人的左右眼。
———————————————————————————————————
VR的常见Q&A
1 PC和APP的应用能否复用?
答复:不能复用。app应用是手机上的,PC用的*.exe的,不能复用。 如果是3D片源则可以。
2 近视镜问题?
答复:暴风魔镜4,提供的空间挺大的,我600度近视,带着眼镜,没有问题。且说,Oculus Rift提供了3组镜片,对于<=400度近视的,完全没有问题的。
3 伤眼睛问题?
答复:这个是我最担心的,不过试了几天,发现貌似不伤眼睛,网上查了一下—
让人眼感受到具有深度信息的持续的3D渲染是虚拟现实最重要的部分。
第一,为了产生深度信息,它给每个眼睛生成一张图片,这两张图片在视觉上有一点点偏移量,这样就可以模拟人眼的视差,所谓视差就是人脑处理在不同位置看到的物体而产生的深度信息。第二,产生更好的视觉效果,它将图片扭曲从而模拟人眼的球形表面,通过桶形畸变技术可以达到这个效果。
 
==> 在使用暴风魔镜4的时候,你的眼睛其实在任何时候都在观看远景。
4 市场成熟度问题?
答复:目前技术限制,依然是成熟前期,如果技术突破了:2k+屏幕、60FPS+、<20ms这3个要素,且VR价格大幅度降低,则是VR内容突飞猛进的市场阶段–或许2016Q3后会有不错的市场。
5 用什么来开发VR产品?
答复:主要是Unity3D,UE4,而其中Unity3D占据了70%以上,据说。 VR为了牛X在PC VR,但是初期暴风魔镜100多元的价格,做手机版App,正是Unity3D的长项也。
6 图像抗镜片畸变?
答复:畸变的英文单词distortion, 物体上的直线经过透镜成像后变成弯曲的现象。畸变是由于透镜的放大率随光束和主轴间所成角度改变而引起。 详细看百科:畸变.
 
我在网上查了一些,新出的一本《Learning Virtual Reality》书,PDF电子版链接:http://pan.baidu.com/s/1c1lP64C
 
搞了好久,终于弄明白,暴风魔镜和暴风影音是一伙的,非常好,尤其是大厂能与时俱进的,佩服!
再次复习一下Unity3D的3D数学,我理解的,这个在VR技术,应用会很多:
《C#程序员整理的Unity 3D笔记(十):Unity3D的位移、旋转的3D数学模型》