AR-VR(混合现实)应用开发 | AR开发

视界君-阿琳 2016-11-09 14:01:48

主要介绍混合现实概念以及怎么使用Vuforia进行开发。使用案例集成Vuforia 5.0.5与Google Cardboard实现AR+VR效果。

案例集成Vuforia 5.0.5与Google Cardboard实现AR+VR的效果

一、平台准备: 
Cardboard Unity SDK version 0.5.0 
Vuforia Unity SDK version 5.0.5 
Unity3d version 5.0.0f4(64bit) 


二、场景设置: 
先后导入Vuforia Unity SDK version 5.0.5和Cardboard 0.5.0SDK,如果顺序反了,可能需要修改AndroidManifest文件。 


然后双击Scenes中Vuforia-3-AR-VR场景,然后拖入Cardboard/prefabs/CardboardMain.prefab. 


查看ARCamera的检视窗口(Inpsector),找到Bind Alternate Camera属性,勾选,并将CardboardMain中Head组件、MainCameraLeft以及MainCameraRight组件拖过去,然后点击Add Vuforia Components按钮。 

另外要将Viewer设置Cardboard. 


另外除了Cardboard外,还有Gear VR. 

接下来需要设置Cardboard的组件,CardboardMain. 

设置Camera的背景色,看不到的地方都设置为该颜色,设置为黑色。 
目的:增加神秘感。 

主要需要观察的地方有三点: 

1、Camera位置:模拟人眼瞳距,一般人眼瞳距为58-64mm,一般设置为60mm.形成视差,否则不会有立体效果,比如Vuforia 5.0.5新增的VR模式,两个Camera的位置一样,因此看到的场景一模一样,所以没有立体效果。 
2、裁剪平面Clipping Planes:官方设定为0.5,500,这个就是OpenGL里面的远平面和近平面,在Unity3d中,可以控制Camera视场的远近,在某种程度上也可以节省资源。 
3、视口矩形Viewport Rect:Camera视口的大小,这个在做一些小窗口以及VR应用中很常用。X,Y为左上角点坐标,范围为(0,1),W,H为宽高的大小,范围为(0,1)。 
VR场景中,由于是分屏处理的,左右Camera看到的场景分别显示在屏幕左右两边。通过这里来控制显示位置。 


调整几个组件的位置,使得场景在视野中的位置正确: 
CardboardMain:x = 0, y = 0, z = -1. 
Head: x = 0, y = 2, z = 0. 
Main Camera:x = 0, y = 0, z = -0.3. 

三、代码修改: 

CardboardEye.cs 脚本 (Assets/Cardboard/Scripts) 
在145行前后添加如下语句: 

Vuforia.VuforiaBehaviour.Instance.ApplyCorrectedProjectionMatrix(proj, eye == 
     
Cardboard.Eye.Left);

CardboardHead.cs脚本(Assets/Cardboard/Scripts) 
在UpdateHead()方法最后添加如下: 

Vuforia.VuforiaBehaviour.Instance.UpdateState(false, true);

这些地方设置完成之后,测试Android版本的基本可以在手机上跑起来了。 

下面来看看完整的视频教学演示:

99VR视界二维码
热门推荐
Hot Recommended
在线客服