您的位置:首页 > 移动开发 > Unity3D

初尝用Unity3D配合Vuforia开发适合Cardboard的AR(增强现实)应用

2016-01-14 06:05 585 查看
其实我对Unity3D一点都不熟。照样可以快速上手搞AR,推荐大家也试一试。先上个图



那么接下来就跟大家分享一下怎么配置出第一个安卓手机上AR眼镜应用。

需要什么:

Unity3D不用说了,自己百度下载个最新版的就好。

在Unity3D下使用Cardboard的SDK(Cardboard官网有的下),或者去附件下载

最重要的来咯,一个AR处理引擎Vuforia。通常是用适合unity3D的vuforia SDK。不过为了方便和快速上手,建议直接使用相关的sample(点击去官网下载,Digital
Eyewear)。或者在附件下载

现在可以正式开始了。

打开Unity3D,新建一个Porject

导入Sample压缩包里的arvr-5-0-10(我们就是利用这个示例来制作第一个AR应用)

打开Scenes文件夹下的Vuforia-3-AR-VR.unity

导入Cardboard SDK

在项目窗口(Project)下找到Cardboard/Prefabs/文件夹,把该文件夹下的CardboardMain拖到层次窗口(Hierarchy)里

在层次窗口下点击CardboardMain,在最右边的检视窗口(Inspector)里修改下列数据:

       Position: x=0,y=0,z=0

       Rotation:x=0,y=0,z=0

       Scale:x=1,y=1,z=1

       如果不想使用Cardboard上的磁铁按钮,就把Tap
is trigger选项勾掉

在层次窗口下点击CardboardMain下属的Head,在最右边的检视窗里修改下列数据:

       Position:
x=0,y=0,z=0

       Rotation:x=0,y=0,z=0

       Scale:x=1,y=1,z=1

       Track position不需要了,所以这个选项不要勾选

       Track rotation只会在VR环境下用到,因为demo里需要,暂时勾选这个选项

在层次窗口下点击Head下属的Main Camera,在最右边的检视窗里修改下列数据:

       Clipping
Planes里的Near改为0.05 Far改为300(这两个数据保持和层次窗口下UserHead->AR
Camera->StereoCameraLeft以及StereroCameraRight的数据相同)

       把Background颜色改为纯黑(000000FF)

       把Stereo Multiplier的数值改为0.1到0.2之间的数据(这个数值是调整立体效果幅度,也就是左右视差,可以自己随便调整感受下)

       取消勾选Check Stereo Comfort选项

在层次窗口下点击MainCamera下属的Main Camera
Left以及Main Camera Right,在最右边的检视窗里修改下列数据:

 
     Clipping Planes里的Near改为0.05 Far改为300(这两个数据保持和层次窗口下UserHead->AR
Camera->StereoCameraLeft以及StereroCameraRight的数据相同)

现在在层次窗口下点击UserHead下属的ARCamera

       勾选Synchronize
Pose Updates

       将Viewer设为Cardboard

       按下图把Head、Main CameraLeft、Main
CameraRight分别拖到右边检视窗口的Central Anchor Point、Left Camera、Right Camera位置



接下来我们需要修改一些代码

在项目窗口(Project)的Assets/Cardboard/Scripts文件夹下找到CardboardHead.cs文件,双击打开。在UpdateHead()函数最后一行添加红色标记的代码

private void UpdateHead(){     
  ... method body ...     
    
    Vuforia.VuforiaBehaviour.Instance.UpdateState(false, true); 
}

在项目窗口(Project)的Assets/Cardboard/Scripts文件夹下找到CardboardEye.cs,双击打开。在UpdateStereoValues()函数如下所示的位置添加红色标记的代码

public void UpdateStereoValues() {

    ... method body...

    FixProjection(ref realProj);

     Vuforia.VuforiaBehaviour.Instance.ApplyCorrectedProjectionMatrix(proj, eye == Cardboard.Eye.Left);//大约145行

      // Zoom the stereo cameras if requested.

      float lerp = Mathf.Clamp01(controller.matchByZoom) * Mathf.Clamp01(controller.matchMonoFOV);

      ... method body...

}

最后在Assets/Plugins/Android文件夹下打开AndroidManifest文件,添加下列代码

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

现在所有设置都完成了。可以开跑了。

资源更新完后,会发布链接

先放上这个应用需要用到的标定用的图片

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息