基于手机进行虚实交互的方法及系统与流程

文档序号:32331077发布日期:2022-11-25 22:11阅读:116来源:国知局
基于手机进行虚实交互的方法及系统与流程

1.本发明涉及虚拟现实技术领域,具体地,涉及基于手机进行虚实交互的方法及系统。


背景技术:

2.目前mr/vr的交互一般采用手柄或者手势。这两种方式都无法真正体验到虚实结合的操作体验,我们这种新型使用手机进行虚实交互方式可以让用户享受在虚拟世界操作手机一样的体感。
3.专利文献cn106790996a(申请号:201611047520.3)公开了一种手机虚拟现实交互系统和方法,该系统包括:包括头戴设备和手机,手机的显示屏用于播放vr视频;手机具有:图像录制模块,用于实时录制视频;图像叠加模块,用于将录制的视频与vr视频进行叠加,使录制视频和播放的vr视频同时在手机的显示屏上进行播放;动作捕捉模块,动作捕捉模块用于捕捉录制视频画面中的出现的手势操作,并对手势操作进行识别后转换为操作指令;图像控制模块,用于根据动作捕捉模块识别出的操作指令对显示屏上播放的视频执行相应操作。


技术实现要素:

4.针对现有技术中的缺陷,本发明的目的是提供一种基于手机进行虚实交互的方法及系统。
5.根据本发明提供的一种基于手机进行虚实交互的方法,包括:
6.步骤s1:在虚拟设备中运行3d系统;
7.步骤s2:将手机与虚拟设备建立连接;
8.步骤s3:基于手机与虚拟设备建立的连接,手机向虚拟设备中3d系统发送操作指令;
9.步骤s4:虚拟设备通过rgb相机捕捉手机的姿态结合操作指令实现交互。
10.优选地,所述步骤s2采用:将手机与虚拟设备建立socket连接。
11.优选地,基于手机与虚拟设备建立的socket连接,将手机的设备信息发送至虚拟设备;
12.所述手机的设备信息包括分辨率。
13.优选地,所述步骤s4采用:
14.步骤s4.1:通过rgb相机捕捉手机的姿态,包括手机在空间中的位置和旋转;基于手机的姿态在3d系统中控制操作射线的方向;
15.步骤s4.2:通过射线选定待打开手机app图标,基于手机与虚拟设备建立的连接,将现实中对手机屏幕的操作同步作用到虚拟世界的2dapp中,实现虚拟交互。
16.优选地,当应用打开后,自动设置成手机相同分辨率,并且使用捕捉到的手机姿态,从而实现在虚拟世界中应用的显示贴合在显示的手机屏幕中。
17.优选地,所述虚拟设备包括vr虚拟设备、ar虚拟设备或mr虚拟设备。
18.根据本发明提供的一种基于手机进行虚实交互的系统,包括:
19.模块m1:在虚拟设备中运行3d系统;
20.模块m2:将手机与虚拟设备建立连接;
21.模块m3:基于手机与虚拟设备建立的连接,手机向虚拟设备中3d系统发送操作指令;
22.模块m4:虚拟设备通过rgb相机捕捉手机的姿态结合操作指令实现交互。
23.优选地,所述模块m2采用:将手机与虚拟设备建立socket连接;
24.基于手机与虚拟设备建立的socket连接,将手机的设备信息发送至虚拟设备;
25.所述手机的设备信息包括分辨率。
26.优选地,所述模块m4采用:
27.模块m4.1:通过rgb相机捕捉手机的姿态,包括手机在空间中的位置和旋转;基于手机的姿态在3d系统中控制操作射线的方向;
28.模块m4.2:通过射线选定待打开手机app图标,基于手机与虚拟设备建立的连接,将现实中对手机屏幕的操作同步作用到虚拟世界的2dapp中,实现虚拟交互。
29.优选地,当应用打开后,自动设置成手机相同分辨率,并且使用捕捉到的手机姿态,从而实现在虚拟世界中应用的显示贴合在显示的手机屏幕中。
30.与现有技术相比,本发明具有如下的有益效果:
31.1、通过采用动态设置app分辨率的技术,解决了不同手机的操作兼容性问题。
32.2、对比手柄交互,手机几乎是每个人都拥有的设备,不需要而外购买或者携带手柄才能体验交互
33.3、对比手势交互,使用手机能够让用户体验到触觉,让用户在视觉和触觉上体验到操作的快感
34.4、通过本发明能够让用户在mr/vr设备上完美体验目前手机端的应用,特别是游戏。
附图说明
35.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
36.图1为基于手机进行虚实交互的方法流程图。
37.图2为基于手机进行虚实交互的方法流程图。
38.图3为虚拟设备的显示流程图。
具体实施方式
39.下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
40.实施例1
41.根据本发明提供的一种基于手机进行虚实交互的方法,如图1至2所示,包括:
42.步骤s1:在虚拟设备中运行3d系统;
43.步骤s2:将手机与虚拟设备建立socket连接,基于手机与虚拟设备建立socket连接,将手机的设备信息(分辨率)发送至虚拟设备中;
44.步骤s3:基于手机与虚拟设备建立的socket连接,手机向虚拟设备中3d系统发送操作指令;
45.步骤s4:虚拟设备通过rgb相机捕捉手机的姿态结合操作指令实现交互。
46.具体地,所述步骤s4采用:
47.步骤s4.1:通过rgb相机捕捉手机的姿态,包括手机在空间中的位置和旋转;基于手机的姿态在3d系统中控制操作射线的方向;
48.步骤s4.2:通过射线选定待打开手机app(如微信)图标,基于手机与虚拟设备建立的socket连接,将现实中对手机屏幕的操作同步作用到虚拟世界的2dapp中,实现虚拟交互;例如:通过socket将点击或滑动手机tp事件从手机传入虚拟设备,比如点击屏幕事件发送至虚拟设备之后可以被解析为确定打开app。
49.具体地,当应用打开后,自动设置成手机相同分辨率,并且使用捕捉到的手机姿态,从而实现在虚拟世界中应用的显示贴合在显示的手机屏幕中。
50.具体地,当应用打开后,虚拟设备收到分辨率之后,在虚拟世界中在生成纹理的时候根据分辨率来设置纹理边界,比如手机分辨率是1920*1080,则将纹理也设置成1920*1080。
51.具体地,所述虚拟设备包括vr虚拟设备、ar虚拟设备或mr虚拟设备。
52.根据本发明提供的一种基于手机进行虚实交互的系统,包括:
53.模块m1:在虚拟设备中运行3d系统;
54.模块m2:将手机与虚拟设备建立socket连接,基于手机与虚拟设备建立socket连接,将手机的设备信息(分辨率)发送至虚拟设备中;
55.模块m3:基于手机与虚拟设备建立的socket连接,手机向虚拟设备中3d系统发送操作指令;
56.模块m4:虚拟设备通过rgb相机捕捉手机的姿态结合操作指令实现交互。
57.本发明还可以通过采用神经网络算法,使得相机捕捉手机的准确性提高,解决虚实贴合不紧密的问题。具体地,当虚拟设备的相机捕捉到画面时,使用神经网络算法识别图像中是否存在手机,当有手机时能快速计算出手机的位姿。
58.具体地,所述模块m4采用:
59.模块m4.1:通过rgb相机捕捉手机的姿态,包括手机在空间中的位置和旋转;基于手机的姿态在3d系统中控制操作射线的方向;
60.模块m4.2:通过射线选定待打开手机app(如微信)图标,基于手机与虚拟设备建立的socket连接,将现实中对手机屏幕的操作同步作用到虚拟世界的2dapp中,实现虚拟交互;例如:通过socket将点击或滑动手机tp事件从手机传入虚拟设备,比如点击屏幕事件发送至虚拟设备之后可以被解析为确定打开app。
61.具体地,当应用打开后,自动设置成手机相同分辨率,并且使用捕捉到的手机姿态,从而实现在虚拟世界中应用的显示贴合在显示的手机屏幕中。
62.具体地,当应用打开后,虚拟设备收到分辨率之后,在虚拟世界中在生成纹理的时候根据分辨率来设置纹理边界,比如手机分辨率是1920*1080,则将纹理也设置成1920*1080。
63.具体地,所述虚拟设备包括vr虚拟设备、ar虚拟设备或mr虚拟设备。
64.实施例2
65.实施例2是实施例1的优选例
66.本发明提供的一种基于手机进行虚实交互的方法,如图3所示,包括:
67.步骤1:在mr/vr设备中运行3d系统,用户通过手机选定并点击应用程序,3d系统通过接口startapp调用引入的android class.jar包中的回调方法startappcallback,传递需调用的应用程序包名给framework层。
68.步骤2:开始启动该应用程序,framework层的接口startactivity通信binder,通知服务activitymanagerservice通过进程socket和zygote交互,让其fork一个新进程来作为该应用程序的进程。
69.步骤3:fork的新进程会产生3线程,分别是activitythread线程、applicationthread和w线程,都是继承通信binder类,分别说明如下:
70.activitythread线程:是应用程序的ui线程/主线程,它的main()方法是应用程序的真正入口,管理fork的新进程的主线程的执行(其功能相当于普通java程序的main入口函数),此时iapplicationthread接口,ams为client、activitythread.applicationthread为server,ams负责调度和执行activities、broadcasts和其它操作。
71.applicationthread线程:在主活动创建之前创建,负责监听ams发送来的创建activity的请求。applicationthread通过和ams交互,通过ams对每个应用程序的启动和退出记录,来判断该应用程序是否已经显示。
72.w线程:在activity创建后,如果产生新的指令,wms接收指令数据,并反馈给w线程,w线程将捕捉信息发送给dectorview,如果decoterview没有处理,则传递给phonewindow,如果phonewindow也没有处理,则传递给activity通过handler来处理消息。
73.步骤4:w线程通过binder通信把应用程序数据传递给windowmanagerservice服务,windowmanagerservice服务接收数据后再通过binder通信把应用程序数据传给surfaceflinger。
74.步骤5:surfaceflinger对该应用程序的数据位置和大小进行解析处理:
75.步骤5.1:应用程序的空间位置,通过捕获手机的位姿,计算出该应用程序的包含xyz三轴的4x4的空间矩阵,该矩阵包含应用程序的世界空间位置,旋转角度。
76.步骤5.2:应用程序窗口大小,通过手机传入的分辨率,动态设置应用的大小。
77.步骤5.3:把上述两个矩阵和layerid绑定在一起,进行数据封装,通过binder通信传递给3d系统。
78.步骤6:3d系统的组件脚本invisionlauncher.cs的通过接口createexternaltexture,根据layerid把应用程序的数据buffer生成一张贴图texture,该生成的贴图,根据传递过来的两个矩阵中的数据中的位置,大小信息来调整贴图位置。
79.步骤7:接口settriangles把上述生成的帧贴图,通过脚本invisionlauncher.cs通知系统桌面,并提交给surfaceflinger,通知其绘制每一帧,开始系统桌面嵌套应用程序
渲染显示的功能。
80.本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
81.以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本技术的实施例和实施例中的特征可以任意相互组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1