Unity3D for VR 学习(2): 暴风魔镜框架探索
学习一个新技术,有三个法宝:
- 法宝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“启发”的。
网上也有说几十元,可以自己组装Google CardBoard的,不过对于DIY硬件,我没有太大动力,100多元钱,买个现成的暴风魔镜 4,非常好了。
暴风SDK软件
SDK软件,才是Unity3D程序员重点关注的。
这张图,是魔镜提供的360度图片的Unity3D层次截图,这里我们可以看出部分SDK软件框架:
- UI: 这里主要采用UGUI,做了一个Button,返回主界面。 在VR中,UGUI 的3D UI效果就立显了,还有就是UGUI是Unity原生的,效果又不错,故做UI选择UGUI是大趋势。
- MojingMain、MojingVRHead:负责陀螺仪数据接收,水平坐标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数学模型》
Unity3D for VR 学习(2): 暴风魔镜框架探索的更多相关文章
- Unity3D for VR 学习(3): 暴风魔镜PC Input小改造–自己动手、丰衣足食
在做手游的时候,80%时间是在PC调试的,例如业务逻辑.AI算法.核心玩法等. 拿到魔镜提供的demo,晕了,必须得安装到Android机器上,才能调试,究其原因,有三: 需要用到手机陀螺仪 需要用到 ...
- Unity3D for VR 学习(7): 360°全景照片
在VR应用中,有一个相对简单的虚拟现实体验,那就是360°全景照片浏览器, 他可以使得手机拍照的”全景”照片, 得以”恢复”当时拍照的场景全貌, 这个创意的确比单纯的2d图片更有震撼力一些,故本文 ...
- Unity3D for VR 学习(6): 再次温故知新-3D数学
一年前,系统学习过3D数学,并记录了一篇博客<C#程序员整理的Unity 3D笔记(十):Unity3D的位移.旋转的3D数学模型>. 一年后,再次温习之. 坐标系:Unity3D使用左手 ...
- Unity3D for VR 学习(9): Unity Shader 光照模型 (illumination model)
关于光照模型 所谓模型,一般是由学术算法发起, 经过大量实际数据验证而成的可靠公式 现在还记得2009年做TD-SCDMA移动通信算法的时候,曾经看过自由空间传播模型(Free space propa ...
- Unity3D for VR 学习(8): Unity Shader概述
从西安到北京高铁上,一位VR老外团队的华人leader对VR技术做了画龙点睛: “3D游戏的核心部分在Render, 国内很多团队美术.程序中间缺失严重.所以3d游戏做不好. VR这块更是至关重要.” ...
- Unity3D for VR 学习(1): 又一个新玩具 暴风魔镜 4(Android)
2016年伊始,有了VR虚拟现实硬件设备: 暴风魔镜4–好奇者的新玩具 . 2015年下半年的朋友圈中各种VR.AR的新闻层次不穷,搞的我也心痒痒的:好歹咱也是职业的Unity3D程序员,高大上的O ...
- Unity3D for VR 学习(10): Unity LOD Group 组件
LOD (Level of Detail), 远小近大思想. LOD,在Unity中是用到了空间换时间的优化方法:即程序加载2套模型,导致包会增大:在运行时刻,远处的用面数少的模型–模糊一些,近处用面 ...
- Unity3D for VR 学习(4): 自绘摄像机的视口区域锥体
在Unity Editor下,当选择Camera组件后,可呈现出Camera视口区域锥体,非常方便.但是当选择其他物体,如Cube后,就无法得知是否在Camera市口区内了,这里我找到了雨松MOMO的 ...
- [Unity3d]3D项目转换为VR项目(暴风魔镜SDK)
使用暴风魔镜SDK来操作 将魔镜的摄像头拖放到项目中: 将MoJingVrHead的Script剪切到CamRoot中: 这个时候能看到显示2个物体了,不过使用的Canvas还是显示一个: 调整Can ...
随机推荐
- 探究linux设备驱动模型之——platform虚拟总线(二)
上回说到,platform_match是驱动和设备之间的媒人婆,那么platform_match是如何匹配驱动和设备的呢?platform总线定义的匹配条件很简单,主要就是查看驱动结构体和设备结构体的 ...
- 记录阿里云ECS(Centos7.4)安装mysql 8.0.X服务
#*.rpm介绍 大多数二进制rpm包都包含在名称中倒数第二个字段中编译rpm的体系结构..rpm软件包有那么几种 *.src.rpm 源程序包,要先通过编译才能安装 *.noarch.rpm 该包适 ...
- VirtualBox虚拟机上安装windows7系统
1.下载Windows7的镜像文件 http://www.xitongcheng.com/jiaocheng/win7_article_24156.html 2.在虚拟机上安装Windows7 htt ...
- Appium 安卓计算器demo
package testProject; import org.openqa.selenium.*; import org.openqa.selenium.remote.DesiredCapabili ...
- EasyUI validatebox 自定义ajax验证用户名是否已存在
<td><input type="text" id="userName" name="userName" class=&q ...
- 基于preteus的1602液晶显示器的学习(LM016L)
(证明学过,以示纪念) 所谓1602就是每行可以显示16个字符,可以显示两行.1602液晶在工业中使用比较广泛,其基本都采用的是HD44780控制器,或者兼容该指令集,因此基于HD44780写的控制程 ...
- Matplotlib外观和基本配置笔记
title: matplotlib 外观和基本配置笔记 notebook: Python tags:matplotlib --- 参考资料,如何使用matplotlib绘制出数据图形,参考另一篇mat ...
- 笔试题:C++打印队列
题目:打印队列 题目介绍:现在用打印机打印队列,已知打印任务有9个优先级(1-9),现在给出一系列任务,求输出打印顺序(任务下标,从0开始). 例: 输入:9,3,5,4,7,1 输出:0,4,2,3 ...
- PSP Daily软件Alpha版本——基于NABCD评论,及改进建议
1.根据(不限于)NABCD评论作品的选题: 此软件的用户人群较为明确,即:用户(软件工程课上学生)记录例行报告.写每周PSP表格和统计的需求.潜在用户还有未来该课堂的学生和需要用PSP方法记录任务完 ...
- Alpha冲刺——第十天
Alpha第十天 听说 031502543 周龙荣(队长) 031502615 李家鹏 031502632 伍晨薇 031502637 张柽 031502639 郑秦 1.前言 任务分配是VV.ZQ. ...