3D Game Programming & Design:AR/MR 技术

本文介绍了AR/MR技术的概念及其区别,并详细讲述了如何使用Vuforia进行图片识别与建模,以及在Unity3D中创建虚拟按钮的步骤。通过实际操作,展示了在Unity3D中实现AR游戏的简单效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AR/MR 技术概述

  • 增强现实(Argumented Reality (AR))

是一种将真实世界信息和虚拟世界信息“无缝”集成的新技术,是把原本在现实世界的一定时间空间范围内很难体验到的实体信息(视觉信息,声音,味道,触觉等),通过电脑等科学技术,模拟仿真后再叠加,将虚拟的信息应用到真实世界,被人类感官所感知,从而达到超越现实的感官体验。

  • 混合现实(Mixed reality (MR))

有时被称为超现实(hybrid reality),是真实和虚拟世界的合并,产生新的可视化环境,物理和数字对象实时共存且在其中交互。混合现实不仅发生在物理世界或虚拟世界中,而是融合了现实和虚拟现实,通过身临其境的技术包含增强现实和增强虚拟。

  • VR,AR,MR的区别

    VR,玩家可以通过各种交互技术进入虚拟世界,与虚拟世界事物交互。

    AR,把虚拟世界的物体叠加在现实世界的影像或视频中的物体上,玩家在现实的背景上与虚拟世界物体互动。

    MR,将现实世界事物实时在虚拟世界中重构,这些现实物体、虚拟物体与玩家三者互动。

作业要求

1、 图片识别与建模

2、 虚拟按键小游戏

图片识别与建模

Vuforia使用指南

首先打开 Vuforia官网注册,然后在绑定的邮箱上确认一下,就可以回到vuforia主页上登录了。
在这里插入图片描述
在这里插入图片描述
然后进入Develop->License Manager页面,点击Get Development Key创建证书。
在这里插入图片描述
在这里插入图片描述
然后点击进入TargetManager页面,创建数据库,选择默认的device类型。
在这里插入图片描述Vuforia要求将特定识别的目标提前上传至数据库进行特征提取。目标有多种类型,此处选择image,以对单幅图像进行识别,插入你选择的背景图片即可。
在这里插入图片描述
下载目标特征数据并作为资源导入unity项目。
在这里插入图片描述

在Unity3d中建模并实现虚拟按钮

然后在unity3d中创建一个新项目。

选择Vuforia AR支持:Edit—>Project Settings—>Player—>XR Settings—>Vuforia AR Supported,会自动导入所需的包
在这里插入图片描述
删除原本的main camera,然后在game object中添加vuforia engine的AR camera。
在这里插入图片描述
在他的inspector中选择open vuforia engine configuration,然后将licence拷贝进去。
在这里插入图片描述
拷贝licence(从vufoia中创建的licence点击复制即可)
在这里插入图片描述
inport在vuforia中创建的数据库中的target所导出的包文件。
在这里插入图片描述
创建一个Image Target,然后在他里面创建一个cube和virtual button,在virtual button下创建plane用于点击,最终结构如下:
在这里插入图片描述
在image target中导入设置好的数据库中的target
在这里插入图片描述
cube只需要改大小和位置就可以了,设置如下:
在这里插入图片描述
然后对virtual button的设置也是调整位置和大小即可,注意需要让virtual button和plane位置重叠,且在背景图内。
在这里插入图片描述
因为期末了没有太多时间所以这里我设计的游戏效果比较简单,就只是点击按钮cube就会换颜色,颜色设置成了红黄蓝三种,代码很简单,拖到image target就可以了。

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

public class NewBehaviourScript : MonoBehaviour, IVirtualButtonEventHandler
{
    public VirtualButtonBehaviour[] vbs;
    public GameObject cube;
    public GameObject button;
    public Color[] colors;
    public int index;

    void Start()
    {
        vbs = GetComponentsInChildren<VirtualButtonBehaviour>();
        for (int i = 0; i < vbs.Length; i++)
        {
            vbs[i].RegisterEventHandler(this);
        }
        colors = new Color[3];
        index = 0;

        colors[0] = Color.red;
        colors[1] = Color.yellow;
        colors[2] = Color.blue;
      
        cube = GameObject.Find("ImageTarget/Cube");
        button = GameObject.Find("ImageTarget/VirtualButton/Plane");
    }
    public void OnButtonPressed(VirtualButtonBehaviour vb)
    {
        button.GetComponent<Renderer>().material.color = Color.red;
        if (index == 3)
            index = 0;
        cube.GetComponent<Renderer>().material.color = colors[index++];
    }
    public void OnButtonReleased(VirtualButtonBehaviour vb)
    {
        button.GetComponent<Renderer>().material.color = Color.red;
    }
}

运行效果

点击运行,然后把手机中对应的背景图打开放在摄像头面前,就会出现cube和virtual button了。
在这里插入图片描述

3D游戏引擎编程-3D.Game.Engine.Programming.pdf,作者:Stefan Zerbst &amp; Oliver Duvel,本书是英文版,大小 271 MB,被压缩成两部分分别上传。这是第一部分,第二部分下载地址:http://download.youkuaiyun.com/source/2697012。 IT业中游戏业最吃香?为什么呢?大家说有多少网民没有玩过游戏?不过中国游戏人才也是缺啊!看看盛大为了招收人才自己到各个大学去招收计算机本科生啊!中国最大的游戏公司竟然自己去招收人才,可想而知啊!!中国游戏人才到底缺多少!我们缺的不是玩游戏的,而是做游戏的!大家想必都有过要自己做游戏的梦想吧?为什么没有实现呢?因为觉得自己办不到?错!你能办到!从现在开始吧!我们一起将韩国泡菜赶出国门!一起努力实现中国第一个暴雪公司!创造中国自己畅销全世界的游戏!以中国的武侠魅力去震撼世界!我们不要让外国人牵着鼻子走! 我们技术上比不过美国,美工上比不过日本,创意上比不过韩国!我们有什么可以自豪的呢?中国游戏产业的振兴就靠我们这一代,不要让我们的下一代都只玩美国的XBOX,日本的PS,韩国的传奇!我们看到了中国游戏业这块大蛋糕已经让外国瓜分的剩不下多少了!中国的公司为了代理外国的一个游戏争的头破血流!这样的事情不要让他们再一次次重演了! 游戏开发职业虽然含金量较高,但从业门槛也高高在上,因此,学习前一定要先看看自己是否适合这一职业。判断标准主要有以下七点:一看学历,一般需有大专以上的教育背景;二看年龄,游戏业是年轻人的行业,18-35岁是最佳年龄段;三看逻辑性,从业人员除具备IT基本知识外,还要有相当强的逻辑能力,否则将难以担当复杂的编程工作;四看知识面,游戏软件开发设计编剧、美术、音乐、动画、程序等诸多方面,知识面宽泛;五看创新能力,游戏开发需要经常翻花头,对开发者创新能力的要求较高;六看合作能力,游戏软件开发往往由一个小组负责,需要开发者有团队合作精神;七看兴趣,游戏开发是一项异常枯燥的工作,如果对此没有足够的兴趣,将很难做好。 发布的这些书都是原版的英文书籍,没有中文的,因为中文翻译的慢!大家如果想从事游戏开发,我真的建议大家先学英语,英语是你一切的一切的基础!大家也可以下载一个金山词霸来边翻译边看!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值