3D游戏编程:AR/MR 技术

AR/MR 技术

AR/MR技术简介

AR的全称是增强现实技术,MR的全称是混合现实技术,AR技术和我们耳熟能详的VR技术最大的区别在于它是基于现实而呈现一些虚拟事物,而非像VR技术一样完全从零开始开创一个虚拟世界。AR和MR常常是同一码事。
在这里插入图片描述
它的难点主要在于现实物体的识别,这涉及到了计算机视觉的知识,计算机需要对现实中存在的物体进行识别才能与其进行交互。下一个难点是对虚拟事物的呈现,这涉及到图形学的知识,因为它要将一个不存在的物体投射到现实中,这需要我们有良好的3D编程能力。

Vuforia

Vuforia是一个简单易用的增强现实平台,它支持unity等平台,我们的作业就会基于Vuforia来实现。
在这里插入图片描述

实验作业

图片识别与建模

我们第一步需要安装Vuforia的扩展包,我们可以在Unity Hub里面直接安装:
在这里插入图片描述
然后我们直接就可以在GameObject菜单里面看到Vuforia的相关组件了,我们先拖入Image
在这里插入图片描述
我们需要先登录Vuforia官网创建数据库并且上传相应想识别的图片
在这里插入图片描述
我这里上传的是一个地球,需要注意右边的星星评级,评级越高表示识别成功率越高,我一开始用的是五星红旗,评级很低,导致识别不出来。
然后我们下载相应的数据库并且导入到我们的unity项目即可。
然后我们再将一个GameObject附带到我们的图像识别物体上面,以做到识别地球时呈现我们挂载的物体,我这里使用了一个普通立方体
在这里插入图片描述

虚拟按键小游戏

虚拟按键我们直接用VirtualButton组件即可,我们也要挂载一个按键到上面去,一般是使用一个平面,最后实现效果如图:
在这里插入图片描述
然后我们可以为该按钮设置一些按压属性,我这里实现变色功能:

效果可见视频
https://www.bilibili.com/video/av80136763


(PS:我后面做了一个改进版,有动画的小游戏) 演示视频 https://www.bilibili.com/video/av80586121


using System.Collections;
using Vuforia;
using System.Collections.Generic;
using UnityEngine;

public class a : MonoBehaviour, IVirtualButtonEventHandler
{
    public GameObject vb;
    public GameObject gb;
    // Start is called before the first frame update
    void Start()
    {
        VirtualButtonBehaviour vbb = vb.GetComponent<VirtualButtonBehaviour>();
        if(vbb){
            vbb.RegisterEventHandler(this);
        }
    }

    public void OnButtonPressed(VirtualButtonBehaviour vb){
        gb.GetComponent<MeshRenderer>().material.color=Color.red;
        Debug.Log("1");
    }

    public void OnButtonReleased(VirtualButtonBehaviour vb){
        Debug.Log("2");
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值