一种虚拟现实场景位置同步方法及装置与流程

文档序号:35052962发布日期:2023-08-06 06:09阅读:385来源:国知局
一种虚拟现实场景位置同步方法及装置与流程

本发明涉及虚拟现实,尤其涉及一种虚拟现实场景位置同步方法及装置。


背景技术:

1、目前,随着网络技术、图形学及硬件等技术的飞速发展,ar/vr及网络游戏等也慢慢成为了人们日常生活的一部分。越来越多的人通过电脑、智能手机、ar/vr眼镜等终端设备丰富自己的业余生活,在虚拟现实中互相交流体验。为了在虚拟现实中实现多人互动功能,开发者一般会采用c/s架构,即部署一个(也可以是多个)服务端(server),通过tcp长连接等方式,连接到多个客户端(client)。基于这种c/s架构,同步就是一个非常重要的概念,需要保证多个客户端的终端设备看到的内容应该是一致的。

2、用户在进入虚拟现实之后,在虚拟现实中就会创建一个独一无二的对象,并且在虚拟现实中有相应的位置坐标。而虚拟现实中坐标同步结果的好坏,会很大程度上直接影响多人互动的体验效果。在实时性要求比较高的app中,客户端需要频繁的与服务端进行网络通信,最后再由客户端计算出用户在虚拟世界中的坐标。然而,在大量客户端与服务端交互时,网络传输的数据量就会比较大,服务端也会有一定的性能压力;同时,由于网络传输时间的不确定性,就很可能导致各个客户端的位置不同步。

3、现有技术申请号cn201811230734.3提供了一种网络游戏中位置同步方法,适用于多人同时交互、实时性较强的虚拟世界,提供了一种多客户端屏幕展现基本一致的游戏角色位置同步方法。但现有技术存在客户端需要频繁的与服务器通信,网络传输的数据量比较大;同时,在大量用户时,服务器也会有一定的性能压力;由于网络传输的不确定性,客户端收到服务器转发的其他用户当前位置的消息的时间也是不确定的(网络波动造成),从而导致客户端模拟其他用户在虚拟世界中的位置表现不够平滑,时快时慢,甚至瞬移,影响体验,并且,当前通用的技术方案会使得不同设备终端在移动表现上有时间差,在实时性要求比较高的app中,会影响用户判断,从而影响体验。


技术实现思路

1、为解决上述技术问题,本发明提出了一种虚拟现实场景位置同步方法及装置,用以解决现有技术位置消息同步不及时、客户端与服务器网络传输数据量过大的技术问题。

2、根据本发明的第一方面,提供一种虚拟现实场景位置同步方法,所述方法包括以下步骤:

3、步骤s1:定义客户端与服务器之间相互发送报文的字段,以建立客户端与服务器的通信连接;所述客户端安装于虚拟设备上,每个虚拟设备上均配置有所述客户端;

4、步骤s2:确定客户端与服务器之间发送报文的时间间隔t1,设置客户端状态采样时间间隔t2;每个客户端均记录各自所在的虚拟设备在每个状态采样时间点对应的客户端状态信息;

5、步骤s3:对任一客户端,若当前采样时间点对应的客户端状态信息与上一个采样时间点对应的客户端状态信息对比,状态信息变化超过预设第一阈值,则将所述发送报文的时间间隔t1缩小;若当前采样时间点对应的客户端状态信息与上一个采样时间点对应的客户端状态信息对比,状态信息变化小于预设第二阈值,则将所述发送报文的时间间隔t1增大;各个客户端基于各自对应的发送报文的时间间隔t1向服务器发送包括客户端状态信息的报文;

6、步骤s4:所述服务器接收到客户端发送的报文后,将该报文发送给其他客户端;所述其他客户端基于自身设置的更新步长以及接收到的报文,更新自身存储的所述接收到的报文对应的客户端的状态信息,模拟所述接收到的报文对应的客户端所对应的用户的虚拟对象。

7、优选地,所述步骤s4,其中,所述其他客户端基于自身设置的更新步长以及接收到的报文,更新自身存储的所述接收到的报文对应的客户端的状态信息,包括:

8、步骤s41:所述其他客户端具有自身设置的更新步长,所述更新步长根据所述其他客户端自身的、当前的帧率获得;所述其他客户端接收到报文后,解析该报文,获得报文内容,所述报文内容包括发送所述报文的客户端的当前位置pos、当前运动朝向dir、当前速度speed、当前移动状态标识flag;

9、步骤s42:若所述其他客户端距离上次更新所述报文对应的客户端的状态信息的时间间隔小于或等于所述更新步长,则基于所述报文内容更新所述接收到的报文对应的客户端的状态信息。

10、优选地,若所述其他客户端距离上次更新所述报文对应的客户端的状态信息的时间间隔大于所述更新步长,则停止对所述报文对应的客户端的状态信息的更新。

11、优选地,当所述其他客户端从服务器发送的报文中解析得到当前移动状态标识flag对应的字段值为停止时,在第三预设时长内,停止其自身的移动。

12、优选地,所述更新所述接收到的报文对应的客户端的状态信息,包括:基于修正因子及所述报文内容更新所述接收到的报文对应的客户端的状态信息;所述修正因子用于仿真用户的加速度,通过将所述修正因子及所述报文内容相叠加,进而更新所述接收到的报文对应的客户端的状态信息。

13、优选地,设置第四预设时间阈值,在第四预设时间阈值的时限内完成接收到的所述报文对应的客户端的状态更新。

14、优选地,设置第五预设时间阈值,所述第四预设时间阈值小于所述第五预设时间阈值;第五预设时间阈值为所述发送报文的时间间隔t1的上限。

15、根据本发明第二方面,提供一种虚拟现实场景位置同步装置,所述装置包括:

16、连接模块:配置为定义客户端与服务器之间相互发送报文的字段,以建立客户端与服务器的通信连接;所述客户端安装于虚拟设备上,每个虚拟设备上均配置有所述客户端;

17、周期确定模块:配置为确定客户端与服务器之间发送报文的时间间隔t1,设置客户端状态采样时间间隔t2;每个客户端均记录各自所在的虚拟设备在每个状态采样时间点对应的客户端状态信息;

18、确定模块:配置为对任一客户端,若当前采样时间点对应的客户端状态信息与上一个采样时间点对应的客户端状态信息对比,状态信息变化超过预设第一阈值,则将所述发送报文的时间间隔t1缩小;若当前采样时间点对应的客户端状态信息与上一个采样时间点对应的客户端状态信息对比,状态信息变化小于预设第二阈值,则将所述发送报文的时间间隔t1增大;各个客户端基于各自对应的发送报文的时间间隔t1向服务器发送包括客户端状态信息的报文;

19、模拟模块:配置为所述服务器接收到客户端发送的报文后,将该报文发送给其他客户端;所述其他客户端基于自身设置的更新步长以及接收到的报文,更新自身存储的所述接收到的报文对应的客户端的状态信息,模拟所述接收到的报文对应的客户端所对应的用户的虚拟对象。

20、上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。

21、有益效果

22、本发明能够尽可能减少客户端与服务器不必要的位置消息同步,降低网络传输的数据量,减轻服务器处理上的性能压力;客户端通过服务器广播的移动参数,模拟用户在虚拟现实中的移动,使得整个移动在表现上更加平滑顺畅,不会有时快时慢或者瞬移等问题,提升用户体验;降低位置同步在不同客户端的设备终端表现上的时间差,提升用户体验。

23、本发明使得客户端的移动表现在不同客户端的设备终端上更加同步,可以很大程度上降低开始移动时的视觉差。现有的通用的位置同步方法,在一个客户端移动了一段时间后(几百毫秒),其他客户端才会开始模拟移动;本发明使得客户端模拟其他用户的移动表现显得更加平滑顺畅,不会产生移动时快时慢或者瞬移等问题,提升了用户体验;本发明使用误差消除等手段,使得当前客户端位置与服务器位置保持同步;本发明一定程度上降低了移动协议的发送频率,降低了网络传输的数据量,同时减轻了服务器的性能压力。

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