版权申明:

  • 本文原创首发于以下网站:
  1. 博客园『优梦创客』的空间:https://www.cnblogs.com/raymondking123
  2. 优梦创客的官方博客:https://91make.top
  3. 优梦创客的游戏讲堂:https://91make.ke.qq.com
  4. 『优梦创客』的微信公众号:umaketop
  • 您可以自由转载,但必须加入完整的版权声明!

AR

  • AR的应用

    • 扫描并视频展现 //输入是一幅图像
    • 扫描并3d展现
  • AR设备:

    -扫描:手机摄像头

    -展现:手机屏幕

  • MR设备:

    -hololens

    • 扫描:眼镜
    • 展现:全息影像投影在眼镜上
  • AR软件SDK:

    -voforia

    -FasyAr

    -HiAr //我们学习的

  • unity中的特殊文件夹

    -Editor 对unity菜单进行拓展

    -Resource 动态加载资源

    -Plugins 所有的插件

    -StreamingAssets 从网络下载的资源

  • 上传图片

  • 打包成图集(HIAR完成)

  • 下载打包后的图集(unity package)

  • 将图集作为插件导入unity

  • 也可以直接在网站上创建个空的应用,以获取Appkey和Secret,并使用插件自带的图片资源,位置在Assets\Editor\HiAR\ImageIargetTexures\Sample(需要ctrl + o在文件目录中预览, unity中无法直接预览)

  • 导入SDK

  • 创建HiARCamera

  • 添加ImageTarget //识别图的预制体

  • 设置Image Target中Image Target Behaviour使用的图集 Target Group,并设置我们需要识别的图片Image Target

  • 在Image Target下添加我们识别之后要表现的物体

  • 当图片被识别后,就根据图片显示的角度与位置动态调整Image Target的位置,此时作为子节点的位置,对应位置也会实时变化,实现AR效果

  • 在Image Target下添加Animation 添加Video player等东西都可以播放 显示

  • 多图识别:

  • 在HI AR Engine Behaviour中勾选MultiTarget 并可以指定最多可识别的imageTarget

  • 然后就可以创建多个ImageTarget进行选择需要识别的图像和表现形式

  • 动态加载:

  • 使用TargetDynamic组件

  • 从外部加载识别图(本地文件或网络下载)

  • 在TargetDynamic组件中使用AddTmageTarget()动态加载图片资源

  • 如:

void OnGUI()
{
if (GUI.Button(new Rect(30, 30, 200, 80), "Add Key"))
{
AddTmageTarget(System.IO.path.Combine(Application.streamingAssetsPath, "HiAR/sample"), "e58931", 854, 480);
}
}
  • 然后动态加载的图片就可以作为一个被识别图识别,然后在OnDynamicReco的回调中实时识别后的操作(新建一个cube设置为该TargetDynamic组件的子节点就可以跟着动了) //TargetDynamic本身就是一个Image Target

  • 设置中心点 //将taget固定到一个位置,使重力方向始终向下

  • 在Image Target Behaviour中选择Center pointer,该ImageTarget就可以成为中心,与重力方向垂直,在unity中就不会随着识别的图片移动,在一些需要物理应用的场景中使用(如小球弹起降落,视频播放等)

  • 涂涂乐:

  • 在ImageTarget下添加我们要表现的场景(一条鱼fish),指定ImageTarget识别的图片

  • 在fish上添加HiAR/HiARPaint(设置shader),添加Hi AR Paint的脚本并指定current Material为Fish的材质 //这步就相当于把小孩子画的部分作为一个shader,然后当做了fish的meterial

  • shader 着色器 把图像上绘制的部分作为纹理贴到模型上

Unity基础:AR(增强现实)的学习的更多相关文章

  1. unity 基础学习 transform

    unity  基础学习   transform 1.unity采用的是右手坐标系,X轴右手为+,Y轴向上为+,Z轴朝里为+; 但是我们从3D MAX中导入模型之后,发现轴向并没有遵从这个原理, 其实是 ...

  2. 《虚拟伙伴》AR增强现实应用开发总结

    一.概述 1.1选题背景 随着时代的发展,人们的生活节奏越来越快,生活质量也越来越高,但却在繁忙之中忽略或者忘记了关心自己成长时代最重要或者最正确的事情和道理.虽然现在有很多社交平台,如微博,微信,f ...

  3. 如何开发AR增强现实应用与产品

    2016年被称为VR元年,可见火爆程度,但是我要告诉你,其实还有一种技术AR(增强现实)技术,才是下一个真正的“风口”技术.可以预见的是,未来AR应用爆发之时,必将超越VR产业规模,开拓千亿级市场空间 ...

  4. AR增强现实开发介绍(续)

    AR增强现实开发介绍(续) ---开发基础篇 开发增强现实技术,无论是商业级应用,还是面向幼儿教育的游戏产品,都需要从了解.获取.下载增强现实插件开始.目前全世界使用量最大公认最好的增强现实插件是高通 ...

  5. 基于Unity的AR开发初探:第一个AR应用程序

    记得2014年曾经写过一个Unity3D的游戏开发初探系列,收获了很多好评和鼓励,不过自那之后再也没有用过Unity,因为没有相关的需求让我能用到.目前公司有一个App开发的需求,想要融合一下AR到A ...

  6. 【Unity原神AR开发实战 2022】下载原神模型,PMX转FBX,导入到Unity,AR设置,测试应用程序,生成应用程序

    文章目录 一.前言 二.模型下载 1.官网下载 2.模之屋官方下载 3.第三方链接 三.pmx转fbx 1.Blender插件CATS的下载与安装 2.pmx模型的导入 四.Unity开发部分 1.V ...

  7. 基于Unity的AR开发初探:发布AR应用到Android平台

    本文接上一篇,介绍一下如何通过Unity发布第一个AR应用至Android平台,在Android手机上使用我们的第一个AR应用. 一.一些准备工作 1.1 准备Java JDK 这里选择的是JDK 1 ...

  8. AR增强现实开发介绍

    AR增强现实开发介绍 ---理论篇 ​ AR增强现实开发最近做一些AR增强现实的内容,一些普及性的内容,与大家分享. 一: 什么是AR增强现实技术: 是一种将真实世界信息和虚拟世界信息“无缝”集成的新 ...

  9. Unity 基础

    Unity 基础是unity入门的关键.他将讲解Unity的界面, 菜单项,使用资源,创设场景,并发布版本. 当你读完这段,你将理解unity是怎么工作的,如何有效地使用它,并且完成一个基本的游戏. ...

  10. 【Unity】Unity中AR Foundation的使用

    前段时间通过Unity 3d打包测试对比ARCore与ARKit环境探针的效果的过程中,在Google AR Core官网下载到了ARCore for Unity SDK,但是在苹果官网却没有找到AR ...

随机推荐

  1. [转载]windows下mongodb安装与使用整理

    windows下mongodb安装与使用整理 一.首先安装mongodb 1.下载地址:http://www.mongodb.org/downloads 2.解压缩到自己想要安装的目录,比如d:\mo ...

  2. 【Aizu - 2249】Road Construction(最短路 Dijkstra算法)

    Road Construction Descriptions Mercer国王是ACM王国的王者.他的王国里有一个首都和一些城市.令人惊讶的是,现在王国没有道路.最近,他计划在首都和城市之间修建道路, ...

  3. Flutter学习笔记(16)--Scaffold脚手架、AppBar组件、BottomNavigationBar组件

    如需转载,请注明出处:Flutter学习笔记(15)--MaterialApp应用组件及routes路由详解 今天的内容是Scaffold脚手架.AppBar组件.BottomNavigationBa ...

  4. 7.4 元组tuple类型内置方法

    元组tuple 元组相当于不可变的列表,在定义完成后后面就不可以进行更改,因此元组只可取不可存 因为不可变,所以相对列表来说,他的功能也少了很多,所以,不难理解,他有个优点就是占用内存小. 作用:能够 ...

  5. 帝国CMS(EmpireCMS) v7.5后台getshell分析(CVE-2018-18086)

    帝国CMS(EmpireCMS) v7.5后台getshell分析(CVE-2018-18086) 一.漏洞描述 EmpireCMS 7.5版本及之前版本在后台备份数据库时,未对数据库表名做验证,通过 ...

  6. 欢迎加入我的知识星球:C语言解惑课堂

    我在知识星球上开通了一个有关C语言基础答疑解惑的星球,它叫做:“C语言解惑课堂”.看这名字你就知道虽然有点俗,俗才贴近你的真正需求嘛!这是一个专门帮助C语言初学者答疑解惑的课堂.嗯~~~,关于这个星球 ...

  7. Python变量类型说明

    Python中的变量不需要声明,直接赋值便是声明和定义的过程 每个变量在内存中创建,都包括变量的标识.名称和数据这些信息 每个变量在使用前必须赋值 counter = 100 #正数变量 miles ...

  8. 学完JavaScript基础有感

    紧接上一篇回来了,这几天一直学js,会不自觉的和其他的编程语言联系在一起,在没有学jQuery之前,结合我所学的c,java,数据结构,数据库以及部分html感觉到JavaScript里面又很多相似的 ...

  9. JAVA开发奇淫巧技(一)

    本章节持续收录常用且好用的IDE开发工具,基于myeclipse 1.Lombok是一种Java实用工具,可以帮助开发人员消除Java的冗长,具体看lombok的官网:http://projectlo ...

  10. 那些必会用到的 ES6 精粹

    前言 最新的 ECMAScript 都已经到发布到 2019 版了. 我们应该有的态度是: Stay hungry ! Stay young ! 从接触 vue 到工作中用到 vue 将近 2 年了, ...