本发明涉及虚拟显示技术领域,特别涉及一种基于slam技术的虚实同步显示方法及系统。
背景技术:
目前,虽然在人与虚拟游戏环境的交互方面可以通过数据同步实现多人同时在线游戏,但是用户面对的只能是全虚拟的游戏世界与模型,无法实现用户通过在现实场景中的运动来达到多人游戏战斗体验,无法把现实场景作为游戏场景,构建出一个虚拟与现实场景相呼应的无缝连接的游戏场景,大大降低了用户体验游戏的真实感。
技术实现要素:
本发明提供了一种基于slam技术的虚实同步显示方法及系统,解决了现有技术的技术问题。
本发明解决上述技术问题的技术方案如下:一种基于slam技术的虚实同步显示方法,包括:
通过slam技术构建现实场景对应的第一虚拟场景,所述第一虚拟场景包括多个客户端对应的多个客户端虚拟模型和多个非客户端虚拟模型;
根据所述第一虚拟场景的结构尺寸信息调整预设虚拟场景的结构尺寸,以使所述预设虚拟场景与所述现实场景无缝连接;
通过多个客户端中第一客户端的摄像头和内设传感器对手持所述第一客户端的用户进行运动追踪得到第一信息,所述第一信息包括:坐标信息和运动信息,将所述第一信息与所述第一客户端存储的所述第一虚拟场景的场景数据进行匹配,修正所述第一信息,得到修正后的第二信息;
通过slam技术的定位功能获取所述第二信息对应的在所述第一虚拟场景中第三信息;
根据所述第三信息判断所述用户是在所述第一虚拟场景内或在所述预设虚拟场景内,根据判断结果显示相应场景;
将所述第三信息同步到所述多个客户端中的每个客户端。
本发明的有益效果是:通过slam技术进行三维虚拟场景建模,能准确定位出玩家在现实场景中的位置信息和通过使用基于真实世界构建的三维虚拟场景,将三维虚拟场景与预先设置好的游戏虚拟场景结合在一起,构建出一个虚拟与现实相呼应的无缝连接的游戏场景,加强了玩家与虚拟物体在真实世界的互动,更增强了用户体验效果。
在上述技术方案的基础上,本发明还可以做如下改进。
优选地,根据判断结果显示相应虚拟场景的方法具体包括:
如果所述用户在所述第一虚拟场景内,则显示所述现实场景和所述第一虚拟场景中除所述第一客户端对应的虚拟模型之外的所有虚拟模型,隐藏所述第一虚拟场景;
如果所述用户在所述预设虚拟场景内,则显示所述预设虚拟场景和所述第一虚拟场景中除所述第一客户端对应的虚拟模型之外的所有虚拟模型,隐藏所述第一虚拟场景。
优选地,通过slam技术构建现实场景对应的第一虚拟场景的方法具体包括:
对现实场景进行多次扫描和运动追踪,获取所述现实场景的场景参数;
通过slam技术对所述现实场景的场景参数进行反复学习和修正,构建所述现实场景对应的第一虚拟场景。
优选地,通过slam技术的定位功能获取所述第二信息对应的在所述第一虚拟场景中第三信息之后,还包括:
根据所述第三信息设置所述第一虚拟场景中的所有非客户端虚拟模型的运动路径和行为动作。
优选地,所述运动信息包括:位移信息、运动速度信息和运动方向信息;所述内设传感器包括:加速度计、陀螺仪和深度感应器。
一种基于slam技术的虚实同步显示系统,包括:
构建模块,用于通过slam技术构建现实场景对应的第一虚拟场景,所述第一虚拟场景包括多个客户端对应的多个客户端虚拟模型和多个非客户端虚拟模型;
调整模块,用于根据所述第一虚拟场景的结构尺寸信息调整预设虚拟场景的结构尺寸,以使所述预设虚拟场景与所述现实场景无缝连接;
修正模块,用于通过多个客户端中第一客户端的摄像头和内设传感器对手持所述第一客户端的用户进行运动追踪得到第一信息,所述第一信息包括:坐标信息和运动信息,将所述第一信息与所述第一客户端存储的所述第一虚拟场景的场景数据进行匹配,修正所述第一信息,得到修正后的第二信息;
获取模块,用于通过slam技术的定位功能获取所述第二信息对应的在所述第一虚拟场景中第三信息;
显示模块,用于根据所述第三信息判断所述用户是在所述第一虚拟场景内或在所述预设虚拟场景内,根据判断结果显示相应场景;
同步模块,用于将所述第三信息同步到所述多个客户端中的每个客户端。
优选地,所述显示模块包括:
第一显示子模块,用于如果所述用户在所述第一虚拟场景内,则显示所述现实场景和所述第一虚拟场景中除所述第一客户端对应的虚拟模型之外的所有虚拟模型,隐藏所述第一虚拟场景;
第二显示子模块,用于如果所述用户在所述预设虚拟场景内,则显示所述预设虚拟场景和所述第一虚拟场景中除所述第一客户端对应的虚拟模型之外的所有虚拟模型,隐藏所述第一虚拟场景。
优选地,所述构建模块包括:
扫描子模块,用于对现实场景进行多次扫描和运动追踪,获取所述现实场景的场景参数;
构建子模块,用于通过slam技术对所述现实场景的场景参数进行反复学习和修正,构建所述现实场景对应的第一虚拟场景。
优选地,所述系统还包括:
设置模块,用于根据所述第三信息设置所述第一虚拟场景中的所有非客户端虚拟模型的运动路径和行为动作。
优选地,所述运动信息包括:位移信息、运动速度信息和运动方向信息;所述内设传感器包括:加速度计、陀螺仪和深度感应器。
附图说明
图1为本发明实施例提供的一种基于slam技术的虚实同步显示方法的流程示意图;
图2为本发明另一实施例提供的一种基于slam技术的虚实同步显示方法的流程示意图;
图3为本发明另一实施例提供的一种基于slam技术的虚实同步显示系统的结构示意图;
图4为本发明另一实施例提供的一种基于slam技术的虚实同步显示系统的结构示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,一种基于slam技术的虚实同步显示方法,包括:
s1、通过slam技术构建现实场景对应的第一虚拟场景,第一虚拟场景包括多个客户端对应的多个客户端虚拟模型和多个非客户端虚拟模型;
s2、根据第一虚拟场景的结构尺寸信息调整预设虚拟场景的结构尺寸,以使预设虚拟场景与现实场景无缝连接;
s3、通过多个客户端中第一客户端的摄像头和内设传感器对手持第一客户端的用户进行运动追踪得到第一信息,第一信息包括:坐标信息和运动信息,将第一信息与第一客户端存储的第一虚拟场景的场景数据进行匹配,修正第一信息,得到修正后的第二信息;
s4、通过slam技术的定位功能获取第二信息对应的在第一虚拟场景中第三信息;
s5、根据第三信息判断用户是在第一虚拟场景内或在预设虚拟场景内,根据判断结果显示相应场景;
s6、将第三信息同步到多个客户端中的每个客户端。
应理解,增强现实(augmentedreality,ar)技术,是一种将真实世界信息和虚拟世界信息“无缝”集成的新技术,是把原本在现实世界的一定时间空间范围内很难体验到的实体信息(视觉信息、声音、味道和触觉等),通过电脑等科学技术,模拟仿真后再叠加,将虚拟的信息应用到真实世界,被人类感官所感知,从而达到超越现实的感官体验。
即时定位与地图构建(simultaneouslocalizationandmapping,slam)技术,是一种即时定位于三维地图构建技术。它通过对移动过程中的位置估计和传感器数据进行自身定位,并结合深度传感器的数据,融合建模出三维的环境地图。slam技术与增强现实技术的结合已经有些相关的应用,现有ar技术可以达到稳定的定位识别图的坐标信息。但无法感知人的坐标信息,而slam技术通过对现实世界的三维建模和对人的运动追踪,能更准确的定位出人在现实世界中的位置信息,把这些信息运用到基于现实场景构建的三维虚拟世界中后可以给予人更加超越现实的感官体验。
通过网络游戏引擎把现实场景a与设计好的游戏虚拟场景b结合在一起,构建出一个虚拟与现实相呼应的无缝连接的游戏场景,并在客户端底层内置虚拟场景c和虚拟场景b的游戏场景数据,同样服务器也是内置了虚拟场景c和虚拟场景b的大小,坐标信息等数据参数。运用slam技术,通过移动端设备的摄像头及内部传感器进行运动追踪和获取深度信息,把获取到的数据参数与客户端内置的虚拟场景c的特征数据进行匹配后修正定位出玩家在现实场景a中的坐标信息及运动状态。
服务端同步所有玩家与非玩家的坐标信息及游戏状态,使得玩家的客户端可以获取到其他玩家在现实场景中的位置信息及游戏状态,当其他玩家在现实场景内的时候,玩家的客户端将不会显示其他玩家的虚拟角色,而是通过摄像头显示其他玩家的真人影像,玩家可以通过真人影像感知到其他玩家的运动状态,当其他玩家在现实场景之外的时候,玩家的客户端通过判断其他玩家是否再其虚拟角色的视野之内,来显示其他玩家的虚拟角色及运动状态;从而实现多人ar游戏中对玩家的虚拟角色和真人影像在现实场景与虚拟场景的显示与隐藏的无缝切换。
具体地,根据判断结果显示相应虚拟场景的方法具体包括:
如果用户在第一虚拟场景内,则显示现实场景和第一虚拟场景中除第一客户端对应的虚拟模型之外的所有虚拟模型,隐藏第一虚拟场景;
如果用户在预设虚拟场景内,则显示预设虚拟场景和第一虚拟场景中除第一客户端对应的虚拟模型之外的所有虚拟模型,隐藏第一虚拟场景。
客户端通过多玩家的定位判断出玩家在现实场景a内,还是在现实场景a外,也就是虚拟场景b内,通过玩家客户端把玩家的坐标信息及游戏状态实时同步到游戏服务器中,服务器统一发送同步到其他客户端上,其他客户端就能实时获取到其他玩家的坐标信息和游戏状态,并执行相应的逻辑实现ar多人游戏。比如玩家a开枪了,玩家b就能听到玩家a开枪的声音。客户端通过判断玩家在现实场景a内还是之外,对无缝连接的现实场景a和虚拟场景b流畅的切换。当玩家在现实场景a内的时候,游戏画面上主要显示的将会是移动端摄像头所获取到的现实场景,当玩家在现实场景a之外的时候,游戏画面上主要显示的将会是设计好的虚拟游戏场景,比如火星的虚拟世界。
具体地,如图2所示,步骤s1包括:
s11、对现实场景进行多次扫描和运动追踪,获取现实场景的场景参数;
s12、通过slam技术对现实场景的场景参数进行反复学习和修正,构建现实场景对应的第一虚拟场景。
具体地,通过slam技术的定位功能获取第二信息对应的在第一虚拟场景中第三信息之后,还包括:
根据第三信息设置第一虚拟场景中的所有非客户端虚拟模型的运动路径和行为动作。
具体地,运动信息包括:位移信息、运动速度信息和运动方向信息;内设传感器包括:加速度计、陀螺仪和深度感应器。
如图3所示,一种基于slam技术的虚实同步显示系统,包括:
构建模块1,用于通过slam技术构建现实场景对应的第一虚拟场景,第一虚拟场景包括多个客户端对应的多个客户端虚拟模型和多个非客户端虚拟模型;
调整模块2,用于根据第一虚拟场景的结构尺寸信息调整预设虚拟场景的结构尺寸,以使预设虚拟场景与现实场景无缝连接;
修正模块3,用于通过多个客户端中第一客户端的摄像头和内设传感器对手持第一客户端的用户进行运动追踪得到第一信息,第一信息包括:坐标信息和运动信息,将第一信息与第一客户端存储的第一虚拟场景的场景数据进行匹配,修正第一信息,得到修正后的第二信息;
获取模块4,用于通过slam技术的定位功能获取第二信息对应的在第一虚拟场景中第三信息;
显示模块5,用于根据第三信息判断用户是在第一虚拟场景内或在预设虚拟场景内,根据判断结果显示相应场景;
同步模块6,用于将第三信息同步到多个客户端中的每个客户端。
具体地,如图4所示,显示模块5包括:
第一显示子模块51,用于如果用户在第一虚拟场景内,则显示现实场景和第一虚拟场景中除第一客户端对应的虚拟模型之外的所有虚拟模型,隐藏第一虚拟场景;
第二显示子模块52,用于如果用户在预设虚拟场景内,则显示预设虚拟场景和第一虚拟场景中除第一客户端对应的虚拟模型之外的所有虚拟模型,隐藏第一虚拟场景。
具体地,如图4所示,构建模块1包括:
扫描子模块11,用于对现实场景进行多次扫描和运动追踪,获取现实场景的场景参数;
构建子模块12,用于通过slam技术对现实场景的场景参数进行反复学习和修正,构建现实场景对应的第一虚拟场景。
具体地,如图4所示,系统还包括:
设置模块7,用于根据第三信息设置第一虚拟场景中的所有非客户端虚拟模型的运动路径和行为动作。
具体地,运动信息包括:位移信息、运动速度信息和运动方向信息;内设传感器包括:加速度计、陀螺仪和深度感应器。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。