一种基于增强现实技术控制App内显示内容的方法与流程

文档序号:12122868阅读:389来源:国知局
一种基于增强现实技术控制App内显示内容的方法与流程

本发明涉及一种基于增强现实技术控制App内显示内容的方法,属于增强现实技术领域。



背景技术:

增强现实(AR,Augmented Reality)是采用对真实场景利用虚拟物体进行“增强”显示的技术,与虚拟现实相比,具有真实感强、建模工作量小的优点。计算机图形学变得越来越成熟,游戏图像看起来将会像真的一样。在下一个十年,研究人员计划将图像拉出电视屏幕或计算机显示屏,将其集成到真实世界的环境中。能够达到以假乱真的地步,完全给人逼真的感觉。可广泛应用于工程设计、现代展示、医疗、军事、教育、娱乐、旅游等领域。

现有的增强现实的技术只能实现一种识别图对应一种显示类型,且不能更改,例如,识别图为一只小狗的图像,用户定义为图片类型,则效果只能显示图片。

中国专利文献CN104461318A(申请号201310669737.8)公开了一种基于增强现实技术的点读方法及系统,其涉及的主要技术方案包括:以图像采集单元摄入图像,并至少选定被摄入图像中的一帧以上图像,以及,在被选定的图像上加载一个以上可视化标记,使用户能够通过选定和点触其中的一个以上可视化标记,从而输出至少用以获取与被选定可视化标记相应的资源的服务请求和/或至少用以使选定功能单元执行选定动作的控制指令。但是,该专利存在以下缺陷:(1)需要在网络的情况下使用(2)缓存会不断增长。



技术实现要素:

针对现有技术的不足,本发明提供了一种基于增强实景技术实现一键控制App内显示内容的方法;

通过本发明所述方法,基于增强实景技术,将输入的识别图以图片、视频、模型、音效等形式展示出来,并具有跟随识别图旋转、移动的效果,呈现全新的现实和数字世界的交互界面,提供全新的数据发布平台,看到数字世界中的实景介绍、3D模型、视频再现,通过本发明所述方法,用户可以一览世界。一键控制App内显示内容,只需要一次开发,一次上传,其余的都可以在服务器后台进行直接上传替换,不需要反复上传app,用户也不用更新,重新下载,打开app联网直接可以使用,方便快捷。

术语解释

1、EasyCloudBehaviour,为现有的Easy AR资源包的一个脚本,用于识别图像中的每个特征点,特征点指的是图像灰度值发生剧烈变化的点或者在图像边缘上曲率较大的点(即两个边缘的交点)。

2、Convert.FromBase64String(),用于将指定的字符串(它将二进制数据编码为Base64数字)转换为等效的8位无符号整数数组。

3、元数据(Metadata)是描述其它数据的数据(data about other data),或者说是用于提供某种资源的有关信息的结构数据(structured data)。元数据是描述信息资源或数据等对象的数据,其使用目的在于:识别资源;评价资源;追踪资源在使用过程中的变化;实现简单高效地管理大量网络化数据;实现信息资源的有效发现、查找、一体化组织和对使用资源的有效管理、解析;

4、www.LoadFromCacheOrDownload()方法,是指加载自缓存或下载方法。www.LoadFromCacheOrDownload(资源地址(url),版本号),url与版本号为方法中的固定参数;对于网络播放器应用程序使用共享缓存,缓存增加了唯一标识信息为了防止应用程序间同名的资源包名称冲突。如果缓存文件夹中没有任何空间来缓存额外的文件,LoadFromCacheOrDownload会反复从缓存中删除最近最少使用资源包,直到有足够的空间可用来存储新的资源包。如果利用空间是不可能的(因为硬盘已满,或所有缓存文件在使用),LoadFromCacheOrDownload()将绕过缓存并流传输文件到内存,这个函数只能访问资源包。无其他类型或内容可缓存。

5、模型,例如3d模型就是三维的、立体的模型,3D模型也可以说是用三维软件建造的立体模型,包括各种建筑、人物、植被、机械等等,比如一个大楼的3D模型图。3D模型也包括玩具和电脑模型领域。

本发明的技术方案为:

一种基于增强现实技术控制App内显示内容的方法,具体步骤包括:

(1)创建待上传识别图的Metadata数据,所述Metadata数据包括类型、版本号、加载资源所对应服务器地址,所述Metadata数据为txt文档;类型可根据用户需求自定义,例如,类型包括图片、视频、模型、音效等。例如,识别图为一副小狗的图像,如果想听小狗的声音,则可定义类型为“音效”;

(2)将识别图及其Metadata数据上传至第三方服务器,通过EasyCloudBehaviour获取识别图的ID以及Name,ID是指将识别图上传到第三方服务器时,由第三方服务器自动随机生成的字符;Name是指将识别图上传到第三方服务器时,人为对该识别图的命名;

(3)通过EasyCloudBehaviour获取识别图的Metadata数据,并赋值给重新定义的字符串m_MetaDate;

(4)通过Convert.FromBase64String()方法对所述Metadata数据进行转换,将其转化成base64的数据,并赋值给自定义的字符orgstr;

(5)通过截取字符串的方法对字符orgstr进行解析,具体是指:使用C#.split()方法对字符orgstr进行截取出类型、版本号、加载资源所对应服务器地址;将解析出的类型赋值给自定义字符type,将解析出的版本号赋值给自定义字符version;

(6)对步骤(5)截取出的类型做判断并加载。

根据本发明优选的,所述步骤(6),具体步骤包括:

a、如果是图片,进入步骤b,如果是视频,进入步骤c,如果是模型,进入步骤d,

b、加载资源所对应服务器地址,展示该图片,并且该图片跟随识别图移动或旋转;带有跟随效果;把加载资源所对应服务器地址赋予定义的字符img,动态生成一个obj_Plane物件,并赋予给ooo物件,把图片以纹理的形式,直接1:1粘贴到ooo物件上,并显示在场景中;

c、加载资源所对应服务器地址至播放视频的脚本,播放该视频;则把加载资源所对应服务器地址传值给MediaPlayerCtrl脚本m_strFileName参数(播放视频);

d、使用www.LoadFromCacheOrDownload()方法加载该模型,显示该模型。并显示在场景当中,自身作为Taeget的子物体存在。

本发明的有益效果为:

1、本发明通过更改Metadata数据,实现扫描一张识别图多形式展现的效果,例如识别图为一只小狗的图像,通过更改Metadata数据,可以实现通过图片、视频、模型、音效等多种类型的展示。

2、本发明所述方法能呈现全新的现实和数字世界的交互界面,提供全新的数据发布平台,看到数字世界中的实景介绍、3D模型、视频再现,通过本发明所述方法,用户可以一览世界。

附图说明

图1为本发明所述方法的流程示意图;

图2为实施例输入的识别图结构示意图;

图3为实施例得到的效果图;

具体实施方式

下面结合说明书附图和实施例对本发明作进一步限定,但不限于此。

实施例

一种基于增强现实技术控制App内显示内容的方法,如图1所示,具体步骤包括:

(1)创建待上传识别图的Metadata数据,所述识别图如图2所示,所述Metadata数据包括类型、版本号、加载资源所对应服务器地址,所述Metadata数据为txt文档;类型为模型;

(2)将识别图及其Metadata数据上传至第三方服务器EasyAR.cn,通过EasyCloudBehaviour获取识别图的ID以及Name,ID是指将识别图上传到第三方服务器EasyAR.cn时,由第三方服务器EasyAR.cn自动随机生成的字符;Name是指将识别图上传到第三方服务器时,人为对该识别图的命名;Name为“龙虾”;

(3)通过EasyCloudBehaviour获取识别图的Metadata数据,并赋值给重新定义的字符串m_MetaDate;

实现步骤(3)的源程序代码为:string m_MetaDate=tager.Metadata;

(4)通过Convert.FromBase64String()方法对所述Metadata数据进行转换,将其转化成base64的数据,并赋值给自定义的字符orgstr;

实现步骤(4)的源程序代码为:

byte[]bt=Convert.FromBase64String(m_Metadata);

orgstr=Enconding.Default.Get String(bt);

(5)通过截取字符串的方法对字符orgstr进行解析,具体是指:使用C#.split()方法对字符orgstr进行截取出类型、版本号、加载资源所对应服务器地址;将解析出的类型赋值给自定义字符type,将解析出的版本号赋值给自定义字符version;

实现步骤(5)的源程序代码为:

type=orgstr.Split(‘,’)[θ];

version=Int32.Parse(orgstr.Split(‘,’)[l]);

以“,”截取,orgstr.Split(‘,’)[θ]是Metadata数据中的类型,并赋值给自定义的字符type,orgStr.Split(‘,’)[1]是Metadata数据中的版本号,并赋值给自定义的字符version。

(6)对步骤(5)截取出的类型做判断并加载。使用www.LoadFromCacheOrDownload()方法加载该模型,显示该模型。如图3所示。使用www.LoadFromCacheOrDownload(服务器资源存储地址,版本号)方法加载模型赋值给aaa,动态生成模型赋值给obj,在场景中显示。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1