版权申明:

  • 本文原创首发于以下网站:
  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. 算法与数据结构基础 - 回溯(Backtracking)

    回溯基础 先看一个使用回溯方法求集合子集的例子(78. Subsets),以下代码基本说明了回溯使用的基本框架: //78. Subsets class Solution { private: voi ...

  2. 体验使用MUI上手练习app页面开发

    因为公司安排需要先学习一点app开发,而安排学习的框架就是MUI,上手两天体验还算可以(来自后端人员的懵逼),靠着MUI的快捷键可以快速的完成自己想要的样式模板,更多的交互性的内容则需要使用js来完成 ...

  3. 100天搞定机器学习|Day19-20 加州理工学院公开课:机器学习与数据挖掘

    前情回顾 机器学习100天|Day1数据预处理 100天搞定机器学习|Day2简单线性回归分析 100天搞定机器学习|Day3多元线性回归 100天搞定机器学习|Day4-6 逻辑回归 100天搞定机 ...

  4. 帝国CMS(EmpireCMS) v7.5后台任意代码执行

    帝国CMS(EmpireCMS) v7.5后台任意代码执行 一.漏洞描述 EmpireCMS 7.5版本及之前版本在后台备份数据库时,未对数据库表名做验证,通过修改数据库表名可以实现任意代码执行. 二 ...

  5. 用 Python 分析上网记录,发现了很多不可思议的事

    摘要:分享个​ Python 神工具.​ 长时间使用浏览器会积累大量浏览器历史记录,这些是很隐私的数据,里面甚至可能有一些不可描述的网站或者搜索记录不想让别人知道. 不过,我们自己可能会感兴趣,天天上 ...

  6. Maven项目添加ojdbc8

    1.找到Oracle中的ojdbc8,它的位置在Oracle客户端 2.找到它的位置后,把你放ojdbc8的位置复制,改如下代码"D:\ojdbc8.jar"为你的ojdbc8位置 ...

  7. Nginx总结(三)基于端口的虚拟主机配置

    前面讲了如何配置基于IP的虚拟主机,大家可以去这里看看nginx系列文章:https://www.cnblogs.com/zhangweizhong/category/1529997.html 今天就 ...

  8. H5 API drawImage的参数

    drawImage(this,120,0,180,150,0,0,180,150); //mg图片上的x坐标 img图片上的y坐标 剪切的宽 剪切的高 在canvas上的x坐标 在canvas上的y坐 ...

  9. Leetcode之深度优先搜索(DFS)专题-695. 岛屿的最大面积(Max Area of Island)

    Leetcode之深度优先搜索(DFS)专题-695. 岛屿的最大面积(Max Area of Island) 深度优先搜索的解题详细介绍,点击 给定一个包含了一些 0 和 1的非空二维数组 grid ...

  10. mysql迁移mpp数据库Greenplum

    1. 场景描述 因兄弟项目中mysql有点扛不住了,要做sql优化,但是业务有点小复杂,优化起来有点麻烦(sql嵌套有点多),便想着用Mpp数据库Greenplum测试下,看性能和复杂度怎么样,趟趟水 ...