工作休息---AR

前段时间花了几天粗略的看了一本书,作者都挺牛的(文章最后在向大家推荐这是什么书哦!!),本人在公司里负责过一段时间的AR项目的开发,自认为对AR还算了解,

废话不多扯了,进入正题:

首先介绍一下国外的Vuforia(这是大家都知道的吧)

开发环境:

在Vuforia官网注册好之后,下载Unity的SDK,新建一个Unity工程,直接将下载好的SDk导入就Ok了

Vuforia详细介绍:

建议大家可以先下载Vuforia中的官方案例,里面包含所有的识别,

然后我们介绍一下Vuforia开发吧:首先,你得在官网注册你的开发者,复制License中的Key,在你新建的项目中将project视图下的高通的预设点开,将ARcamera拉倒层级视图中(记得删除你的maincamera),将key值赋给Camera;(觉得自己好啰嗦,说了一大堆众所周知的东西,尴尬脸)

所以接下来我们加快进度,像图片识别、文字识别这种我就不废话了,主要是来说说自己遇到的坑:做立方体识别上传的是真实的数据(注意是以厘米为单位的),在本人跳过这个坑,果断进入下个坑,以为圆柱识别也是厘米呢,但其实人家是以米计算的(真是要哭倒了),上传的同样也是真实的数据;

视屏播放本人下载了Easy Movie Texture插件,注意:该插件不支持PC端播放的,只支持Android和ios平台;

云识别,说白了就是你不用下载你上传的图片的unity包了,直接可以生成的client Access key就可以了;

再来谈谈智能地形,和图片识别一起,你可以在扫描时出现一块地形,接下来的发挥就看你自己了;

然后是虚拟按钮,与图片识别一起,实现的功能就是,两个虚拟的按钮,你的手点击哪里,出现一个东西

还有我的代码:

using UnityEngine;
using System.Collections;
using Vuforia;

public class VirtualButtonTest : MonoBehaviour,IVirtualButtonEventHandler {

    private GameObject Cube;
    private GameObject Sphere;

    // Use this for initialization
    void Start ()
    {
        Cube = transform.FindChild("Cube").gameObject;
        Sphere = transform.FindChild("Sphere").gameObject;

        Cube.SetActive(false);
        Sphere.SetActive(false);

        VirtualButtonBehaviour[] vbs = GetComponentsInChildren<VirtualButtonBehaviour>();
        for (int i = 0; i < vbs.Length; i++)
        {
            vbs[i].RegisterEventHandler(this);
        }
    }

    public void OnButtonPressed(VirtualButtonAbstractBehaviour vb)
    {
        switch (vb.VirtualButtonName)
        {
            case "Cube":
                Cube.SetActive(true);
                break;
            case "Sphere":
                Sphere.SetActive(true);
                break;
        }
    }

 如果你的图片的识别度非常的低,那么你可以使用帧识别了;

自定义识别就是当你点击屏幕中的Button触发摄像机,接下来你就可以拍摄你想要识别的,然后就可以识别你刚刚拍摄的并出现物体。

国内的AR技术:HiAR、Wikitude、VoidAR,大家都可以去了解了解,不过据我的了解,目前支持3d实体识别的好像只有高通,国内某家好像是要出,但是还在测试当中,期待国内的崛起!!

书名《AR与VR实战开发》

 

posted @ 2017-04-13 16:24  取个昵称真难  阅读(162)  评论(0编辑  收藏  举报