CN109966741A - 位置更新方法、装置、设备及存储介质 - Google Patents
位置更新方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN109966741A CN109966741A CN201910385831.8A CN201910385831A CN109966741A CN 109966741 A CN109966741 A CN 109966741A CN 201910385831 A CN201910385831 A CN 201910385831A CN 109966741 A CN109966741 A CN 109966741A
- Authority
- CN
- China
- Prior art keywords
- collision detection
- target object
- target
- planning
- detection range
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/56—Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/57—Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
- A63F13/577—Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game using determination of contact between game characters or objects, e.g. to avoid collision between virtual racing cars
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/64—Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种位置更新方法、装置、设备及存储介质,属于计算机技术领域。所述方法包括:根据目标对象在场景内的规划移动路径,确定目标对象从当前时间戳所在的起始位置沿规划移动路径移动至下一时间戳所在的规划目标位置的过程中,目标对象是否移出碰撞检测范围;若目标对象不移出碰撞检测范围,则检测目标对象从起始位置移动至规划目标位置的过程中,与碰撞检测范围内的物体是否会发生碰撞;根据碰撞检测结果,确定目标对象在下一时间戳所在的实际目标位置。由于每次场景查询只需要和碰撞检测范围内的数个碰撞体进行碰撞检测,而不需要进行全场景的碰撞检测,因此场景查询所需的计算开销充分降低,进而降低了位置更新所需的计算开销。
Description
技术领域
本申请实施例涉及计算机技术领域,特别涉及一种位置更新方法、装置、设备及存储介质。
背景技术
AI(Artificial Intelligence,人工智能)角色是指游戏场景中由计算机控制(而非玩家控制)的游戏角色。例如在一些MMO RPG(Massive Multiplayer Online Role-Playing Game,大型多人在线角色扮演游戏)中,AI角色较为常见。
AI角色可以同玩家控制的游戏角色一样,在游戏场景中自由移动,且支持动画、音效等功能,其位置也可以准确地由服务器同步到各个客户端。此外,AI角色的行为逻辑由行为树控制,AI策划可以对其行为进行配置。
目前,在对AI角色进行位置更新时,计算开销较高,因此为了保证游戏的性能,开发者会将游戏场景中的AI角色数量限制在数十个左右的量级,无法支持海量AI角色同屏移动。
发明内容
本申请实施例提供了一种位置更新方法、装置、设备及存储介质,可用于解决相关技术无法支持海量AI角色同屏移动的技术问题。所述技术方案如下:
一方面,本申请实施例提供一种位置更新方法,所述方法包括:
根据目标对象在场景内的规划移动路径,确定所述目标对象从当前时间戳所在的起始位置沿所述规划移动路径移动至下一时间戳所在的规划目标位置的过程中,所述目标对象是否移出碰撞检测范围,所述碰撞检测范围是包含所述目标对象的所述场景中的部分区域;
若所述目标对象不移出所述碰撞检测范围,则检测所述目标对象从所述起始位置移动至所述规划目标位置的过程中,与所述碰撞检测范围内的物体是否会发生碰撞;
根据碰撞检测结果,确定所述目标对象在所述下一时间戳所在的实际目标位置。
另一方面,本申请实施例提供一种位置更新装置,所述装置包括:
移出检测模块,用于根据目标对象在场景内的规划移动路径,确定所述目标对象从当前时间戳所在的起始位置沿所述规划移动路径移动至下一时间戳所在的规划目标位置的过程中,所述目标对象是否移出碰撞检测范围,所述碰撞检测范围是包含所述目标对象的所述场景中的部分区域;
碰撞检测模块,用于当所述目标对象不移出所述碰撞检测范围时,检测所述目标对象从所述起始位置移动至所述规划目标位置的过程中,与所述碰撞检测范围内的物体是否会发生碰撞;
位置确定模块,用于根据碰撞检测结果,确定所述目标对象在所述下一时间戳所在的实际目标位置。
再一方面,本申请实施例提供一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述位置更新方法。
又一方面,本申请实施例提供一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述位置更新方法。
又一方面,本申请实施例提供一种计算机程序产品,当该计算机程序产品被执行时,其用于执行上述位置更新方法。
本申请实施例提供的技术方案至少包括如下有益效果:
本申请实施例提供的技术方案中,通过构建目标对象的碰撞检测范围,在每次场景查询过程中,检测目标对象从起始位置移动至规划目标位置的过程中,与该碰撞检测范围内的物体是否会发生碰撞,然后根据碰撞检测结果确定目标对象在下一时间戳的实际目标位置;由于每次场景查询只需要和碰撞检测范围内的数个碰撞体进行碰撞检测,而不需要进行全场景的碰撞检测,因此场景查询所需的计算开销充分降低,进而降低了位置更新所需的计算开销。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的实施环境的示意图;
图2是本申请一个实施例提供的位置更新方法的流程图;
图3示例性示出了一种扫掠检测的示意图;
图4示例性示出了一种在碰撞检测范围内进行扫掠检测的示意图;
图5示例性示出了一种更新碰撞检测范围的示意图;
图6示例性示出了一种逻辑位置和渲染位置相分离的误差修正的示意图;
图7示例性示出了一种方案整体流程的示意图;
图8和图9示例性示出了海量AI角色同屏移动的界面效果图;
图10是本申请一个实施例提供的位置更新装置的框图;
图11是本申请另一个实施例提供的位置更新装置的框图;
图12本申请一个实施例提供的计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
请参考图1,其示出了本申请一个实施例提供的实施环境的示意图。该实施环境可以包括:服务器10和至少一个终端20。
终端20可以是诸如手机、平板电脑、PC(Personal Computer,个人计算机)等电子设备。可选地,终端20中安装有目标应用程序的客户端,该目标应用程序的客户端能够提供包含多个对象的场景,且各个对象能够在该场景中进行移动。可选地,上述目标应用程序为游戏应用程序,该游戏应用程序的客户端能够提供包含多个游戏角色的游戏场景,该游戏场景可以是2D或3D场景,各个游戏角色能够在该游戏场景中进行移动,上述游戏角色可以包括玩家控制的游戏角色和/或计算机控制的AI角色。在本申请实施例中,对游戏应用程序的类型不作限定,其可以是多人在线游戏,如MMO RPG,如多人在线枪击类游戏。
服务器10用于为终端20提供后台服务,其可以是目标应用程序的后台服务器。服务器10可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。
终端20和服务器10之间可以通过网络进行通信,如有线网络或无线网络。
当上述图1所示的实施环境用于支持多人在线游戏时,服务器10和各个终端20中运行的游戏应用程序的客户端之间需要同步游戏场景中的各个游戏角色的位置,包括玩家控制的游戏角色的位置,以及各个AI角色的位置。一方面,服务器10和各个客户端分别计算游戏角色的位置,各自进行游戏角色的位置更新;另一方面,服务器10每隔一定时间间隔向各个客户端同步服务器10计算出的各个游戏角色的位置,客户端根据服务器10同步过来的位置进行误差修正,以确保游戏角色的位置在服务器10和客户端之间同步。
在背景技术中已经介绍,由于游戏场景中的AI角色的计算开销较高,因此相关技术无法支持海量AI角色同屏移动。
在相关技术中,对AI角色的位置更新方法如下:根据目标AI角色在游戏场景内的规划移动路径,检测目标AI角色从当前时间戳所在的起始位置沿上述规划移动路径移动至下一时间戳所在的规划目标位置的过程中,与游戏场景内的物体是否会发生碰撞,然后根据碰撞检测结果确定该目标AI角色在下一时间戳所在的实际目标位置。
上述检测目标AI角色与游戏场景内的物体是否会发生碰撞的过程,可以称为场景查询过程。由于在相关技术中,每一次场景查询过程都需要与整个游戏场景内的物体进行碰撞检测,如将目标AI角色与整个游戏场景中的各个物体分别进行一次碰撞检测,因此场景查询过程需要较大的计算开销。相关技术对AI角色进行位置更新时计算开销较高,主要原因是场景查询过程的计算开销高。
在本申请技术方案中,通过对场景查询过程进行优化,使得场景查询过程的计算开销降低,进而使得位置更新的计算开销降低,使得游戏场景中可以支持更多数量的AI角色,实现支持海量AI角色(如成百上千个AI角色)同屏移动。这样,使得游戏开发者可以突破AI角色数量的瓶颈,从而能够设计出更加新颖的游戏玩法和模式。
请参考图2,其示出了本申请一个实施例提供的位置更新方法的流程图。该方法可以应用于图1所示实施环境中的终端20中,如该方法可以由终端20中安装的目标应用程序的客户端执行;该方法也可以应用于图1所示实施环境中的服务器10中。为了便于说明,在下述方法实施例中,仅以各步骤的执行主体为计算机设备为例进行介绍说明。该方法可以包括如下几个步骤(201~203):
步骤201,根据目标对象在场景内的规划移动路径,确定目标对象从当前时间戳所在的起始位置沿规划移动路径移动至下一时间戳所在的规划目标位置的过程中,目标对象是否移出碰撞检测范围。
在本申请实施例中,目标对象可以是场景内的可移动的对象。该场景可以是2D场景,也可以是3D场景。以游戏场景为例,游戏场景是指在游戏对局过程中营造出的供游戏角色进行游戏竞技的虚拟场景,如虚拟房屋、虚拟岛屿、虚拟地图等。目标对象可以是游戏场景中的游戏角色,如玩家控制的游戏角色,或者计算机控制的AI角色。在一些其它示例中,目标对象还可以是游戏场景中除游戏角色之外的可移动物,如怪物、车辆、舰船、飞行物等任意可移动的物体。
目标对象在场景内的规划移动路径,是指根据目标对象的起止位置(包括起点位置和终点位置),采用自动寻路算法规划出的移动路径。需要说明的是,该规划移动路径并不一定是实际移动路径,因为当目标对象在场景内实际移动的过程中,可能会遇到一些障碍物(如墙壁、台阶、石头等静态障碍物,又如场景内的其它对象、可移动物等动态障碍物),这些障碍物会阻挡目标对象按照规划移动路径移动,目标对象会绕过障碍物之后继续向终点位置移动。另外,在生成规划移动路径时会避开静态障碍物,所以规划移动路径上是不存在静态障碍物的,但是目标对象在实际移动时,由于与其它对象彼此之间的碰撞挤压,目标对象有时会少许偏离规划移动路径,导致与场景中的静态障碍物也有可能发生碰撞。目标对象的起止位置可以由用户决定,也可以由服务器决定。例如,当目标对象为游戏场景中的AI角色时,该目标对象的起止位置和规划移动路径均可由服务器决定。
碰撞检测范围是包含目标对象的上述场景中的部分区域。例如,当场景为2D场景时,碰撞检测范围即为二维平面区域,如一个矩形区域;再例如,当场景为3D场景时,碰撞检测范围即为三维空间区域,如一个长方体。
在本申请实施例中,对碰撞检测范围的尺寸不作限定。该碰撞检测范围的尺寸可以结合整个场景的尺寸以及目标角色在场景中的移动速度等因素确定。例如,当整个场景为长宽高分别为2千米、2千米和500米的3D场景时,碰撞检测范围可以是长宽高分别为3米、3米和5米的长方体区域。
另外,当前时间戳和下一时间戳之间的间隔时长,即为前后两次场景查询的间隔时长。假设客户端以60帧每秒的刷新速率更新显示的画面帧,则相邻两帧之间的间隔时长为0.016秒,如果每帧都进行一次场景查询,则前后两次场景查询的间隔时长即为0.016秒。
在示例性实施例中,计算机设备根据目标对象在当前时间戳所在的起始位置、规划移动路径和移动速度,确定目标对象在下一时间戳所在的规划目标位置,然后根据规划目标位置和碰撞检测范围之间的位置关系,确定目标对象是否移出碰撞检测范围。
步骤202,若目标对象不移出碰撞检测范围,则检测目标对象从起始位置移动至规划目标位置的过程中,与碰撞检测范围内的物体是否会发生碰撞。
计算机设备可以缓存碰撞检测范围内的各个物体的相关信息,例如缓存碰撞检测范围内的各个物体的标识信息,后续根据物体的标识信息进一步查询得到该物体的位置、尺寸、形状等信息。碰撞检测范围内的物体也可称为碰撞体,碰撞体是指场景中可以产生物理碰撞的物体。目标对象与碰撞体接触后会发生碰撞,无法穿透该碰撞体。
在示例性实施例中,碰撞检测过程如下:将目标对象在起始位置和规划目标位置之间执行扫掠检测,确定目标对象与碰撞检测范围内的物体是否会发生碰撞。扫掠检测是指以给定位置和方向将某个形状向前扫掠推进,检测最先碰到的碰撞体。
如图3所示,其示例性示出了一种扫掠检测的示意图。目标对象以自身的胶囊形碰撞体31在起始位置A和规划目标位置B之间执行扫掠检测;如果检测通过,即扫掠过程中没有碰到其它碰撞体,则意味着目标对象可以顺利移动到规划目标位置B;如果检测未通过,即扫掠过程中碰到了其它碰撞体,则意味着目标对象无法顺利移动到规划目标位置B,此时需要根据发生碰撞的位置、法向等信息重新计算出目标对象的实际目标位置C,以保证不会穿透障碍物。
如图4所示,其示例性示出了一种在碰撞检测范围内进行扫掠检测的示意图。目标对象的碰撞检测范围40内包含图4右侧部分所示的3个碰撞体(分别为碰撞体42、碰撞体43和碰撞体44),目标对象以自身的胶囊形碰撞体41在起始位置A和规划目标位置B之间执行扫掠检测,检测与碰撞检测范围40内的各个碰撞体是否会发生碰撞。
另外,若上述步骤201中确定目标对象移出碰撞检测范围,则对碰撞检测范围进行更新,得到更新后的碰撞检测范围。之后,检测目标对象从起始位置移动至规划目标位置的过程中,与更新后的碰撞检测范围内的物体是否会发生碰撞。
在示例性实施例中,采用如下方式对碰撞检测范围进行更新:以目标对象为中心,构建更新后的碰撞检测范围。例如,更新后的碰撞检测范围的中心位置,与目标对象的中心位置重合;其中,目标对象的中心位置可以预先设定。如图5所示,其示例性示出了一种更新碰撞检测范围的示意图。目标对象51在当前时间戳位于起始位置A,根据规划移动路径确定出在下一时间戳位于规划目标位置B,由于规划目标位置B位于碰撞检测范围50外部,因此目标对象51会移出碰撞检测范围50。在这种情况下,先对碰撞检测范围50进行更新,以目标对象51为中心,构建更新后的碰撞检测范围55,然后再检测目标对象51从起始位置A移动至规划目标位置B的过程中,与更新后的碰撞检测范围55内的物体是否会发生碰撞。
以目标对象为游戏中的AI角色为例,AI角色的移动速度通常与玩家控制的游戏角色的移动速度在同一量级,并且不会频繁瞬移,这意味着AI角色在两帧之间的位置是足够接近的。以60帧每秒的刷新速率、AI角色的移动速度为10米每秒为例,AI角色在两帧之间的位置差仅为0.16m左右,这远小于整个场景的尺度。因此,相邻两帧进行场景查询的结果是非常接近的,通过构建上文介绍的碰撞检测范围,为每个AI角色缓存其周围一定范围内的碰撞体,能够对场景查询进行加速。这种为AI角色缓存碰撞检测范围内的碰撞体的技术,可以称为VolumeCache(体缓存)技术。对于任意一个AI角色来说,只要该AI角色没有移出其碰撞检测范围,每次场景查询就只需要和缓存下来的碰撞检测范围中的几个碰撞体进行碰撞检测,而不需要进行全场景的碰撞检测。因此,无论场景规模如何、整个场景中拥有多少碰撞体,使用VolumeCache技术之后每次场景查询的对象仅仅是AI角色周围的数个碰撞体,因此仅需极低的计算开销和时间即可完成一次场景查询。
步骤203,根据碰撞检测结果,确定目标对象在下一时间戳所在的实际目标位置。
若目标对象与碰撞检测范围内的物体会发生碰撞,则根据碰撞情况重新确定目标对象在下一时间戳所在的实际目标位置。例如,计算机设备根据发生碰撞的位置、法向等信息重新计算出目标对象在下一时间戳所在的实际目标位置,以保证不会穿透障碍物。另外,若目标对象与碰撞检测范围内的物体不会发生碰撞,则将规划目标位置确定为目标对象在下一时间戳所在的实际目标位置。
可选地,考虑到场景中还存在一些移动物,这些移动物有可能从碰撞检测范围之外移动至碰撞检测范围之内,并有可能与目标对象发生碰撞。因此,当检测到目标移动物从碰撞检测范围之外移动至碰撞检测范围之内时,计算机设备可以在碰撞检测范围内的物体中增加该目标移动物。这样,在后续的碰撞检测过程中,能够检测目标对象与该目标移动物是否为发生碰撞。另外,当检测到目标移动物从碰撞检测范围之内移动至碰撞检测范围之外时,计算机设备还可以在碰撞检测范围内的物体中删除该目标移动物。通过上述方式,考虑了目标对象与移动物之间的碰撞检测,提升了碰撞检测结果的准确性。
综上所述,本申请实施例提供的技术方案中,通过构建目标对象的碰撞检测范围,在每次场景查询过程中,检测目标对象从起始位置移动至规划目标位置的过程中,与该碰撞检测范围内的物体是否会发生碰撞,然后根据碰撞检测结果确定目标对象在下一时间戳的实际目标位置;由于每次场景查询只需要和碰撞检测范围内的数个碰撞体进行碰撞检测,而不需要进行全场景的碰撞检测,因此场景查询所需的计算开销充分降低,进而降低了位置更新所需的计算开销。
本申请实施例提供的技术方案适用于游戏场景中的AI角色移动解决方案,通过对场景查询过程进行优化,使得场景查询过程的计算开销降低,进而使得位置更新的计算开销降低,使得游戏场景中可以支持更多数量的AI角色,实现支持海量AI角色(如成百上千个AI角色)同屏移动。这样,使得游戏开发者可以突破AI角色数量的瓶颈,从而能够设计出更加新颖的游戏玩法和模式。
另外,在本申请实施例提供的技术方案中,当确定目标对象移出碰撞检测范围时,对该碰撞检测范围进行更新,然后采用该更新后的碰撞检测范围进行碰撞检测,确保了碰撞检测的准确性。
在示例性实施例中,客户端和服务器会分别执行上述图2实施例提供的位置更新流程,另外,为了确保目标对象在客户端和服务器之间的位置同步,服务器会每隔一定时间间隔向各个客户端发送位置同步消息,该位置同步消息包括服务器计算出的目标对象的位置。客户端根据服务器同步过来的位置进行误差修正,以确保目标对象的位置在服务器和客户端之间同步。
相关技术提供的位置同步方案需要保持较高的同步频率,比如以每秒30次的频率进行位置同步,但如果游戏场景中存在海量AI角色,这些海量AI角色的位置同步会带来庞大的网络带宽消耗。为了降低所需带宽,一般的做法是降低同步频率。对于1000个AI角色而言,为了达到理想的带宽消耗,同步频率需要控制在每秒2次左右。然而,如此低的同步频率会带来非常糟糕的同步效果,客户端无法看到平滑连贯的移动轨迹,而只会看到卡顿和瞬移的不自然移动轨迹。
为了保证低同步频率下的同步质量,首先需要将每个AI角色的规划移动路径也同步至各个客户端。这样每个AI角色在服务器和客户端上都会沿着相同的规划移动路径进行移动,此外再加上之前所说的每秒2次的网络同步以进行位置误差的修正,就可以对位置同步效果有较大幅度的提高。
但受限于过低的同步频率,每当客户端收到服务器发来的位置同步消息时,AI角色在该客户端上的位置与其由服务器传来的位置会有一定的偏差。此时如果直接将AI角色移动到目标点(即服务器传来的位置),就会在视觉上产生比较明显的瞬移问题。通常的做法是在收到位置同步消息接下来的一段时间内逐渐将位置平滑移动至目标点,但在包含海量AI角色的游戏场景中这会导致更加严重的后果。因为位置平滑这一操作会导致AI角色在一段时间内处于既非与服务器传来的正确位置一致,也非与客户端原本得到的位置一致的错误状态下,这样的误差会不断累积,最终造成较差的视觉效果。
在本申请实施例提供的技术方案中,将每个AI角色的逻辑位置和渲染位置相分离。每当收到服务器发来的位置同步消息时,该AI角色的逻辑位置会瞬移到目标点,而渲染位置则在接下来的一段时间内平滑过去。这样的好处在于逻辑位置的瞬移可以避免误差的累积,不会处在平滑导致的中间错误位置上,基于逻辑位置的后续移动计算误差也会较小。而渲染位置平滑则可以避免由于位置瞬移导致视觉上移动不连贯的问题,使得整体的视觉效果平滑连贯。
在示例性实施例中,以目标对象为例,客户端采用逻辑位置和渲染位置相分离的方式,对目标对象的位置进行误差修正的过程如下:
1、接收服务器发送的位置同步消息;
该位置同步消息包括服务器确定出的目标对象在下一时间戳所在的标准目标位置。在本申请实施例中,对服务器发送位置同步消息的频率不作限定,服务器可以采用较低的同步频率发送位置同步消息,如每秒2次。
2、若实际目标位置和标准目标位置不一致,则将目标对象在下一时间戳的逻辑位置确定为标准目标位置;
其中,逻辑位置用于后续的碰撞检测和位置更新。如图6所示,假设客户端计算出的目标对象在下一时间戳的实际目标位置为A,服务器同步过来的目标对象在下一时间戳的标准目标位置为B,A和B之间存在0.5米的误差。客户端将逻辑位置直接修正为B,以避免后续进行碰撞检测和位置更新时,采用错误的位置进行计算,导致误差累积,从而减小后续移动计算的误差。
3、将目标对象的渲染位置在预设时长内逐步修正实际目标位置和标准目标位置之间的误差。
其中,渲染位置是指在场景中显示的位置。如图6所示,为了避免渲染位置瞬移导致视觉上出现移动不连贯的问题,客户端在预设时长内(如5帧或10帧的时长内),将渲染位置逐步修正A和B之间所存在的0.5米的误差。例如,客户端可以采用线性或者非线性的修正方案,线性修正方案是指每帧修正同等的误差,如每帧修正0.1米的误差,非线性修正方案是指每帧修正不同的误差,如每帧修正的误差越来越少,直至误差消除。
下面,结合图7,以本申请技术方案应用于游戏场景中的海量AI角色的位置更新和同步为例,对方案整体流程进行介绍说明。
对于每个AI角色,服务器和客户端会同步进行场景查询和移动计算。场景查询的频率可以是每帧一次。服务器将每个AI角色的规划移动路径发送给客户端,然后服务器和客户端在此基础之上进行同样的计算流程。也即,先在上文介绍的VolumeCache技术的加速下进行场景查询,检测AI角色与碰撞检测范围中的碰撞体是否会发生碰撞,然后根据碰撞检测结果进行移动计算。服务器会以较低的同步频率(如每隔0.5秒同步一次)将其计算得到的各个AI角色的位置同步给客户端。客户端在接收到服务器的位置同步消息之后,进行逻辑位置和渲染位置相分离的误差修正,以达到较佳的位置同步效果。
VolumeCache技术可以大幅降低AI角色的移动过程中较为关键的场景查询部分的计算开销,在此基础之上整体的AI角色移动性能得到了大幅提升,最终能够做到1000个AI角色同时移动仅需要5ms的CPU(Central Processing Unit,中央处理器)计算开销。可选地,CPU在进行海量AI角色的场景查询和移动计算时,可以通过多线程方式进行加速,以进一步提升性能。
逻辑位置和渲染位置相分离的误差修正,能够实现以极低的同步频率(如每秒2次)进行高质量的位置同步,最终能够做到1000个AI角色的位置同步所需的网络带宽开销仅需50KB/s左右。
通过上述方案,能够实现支持海量AI角色同屏移动。示例性地,如图8所示,其示出了海量AI角色80在简单的高度场地形下进行同屏移动的界面效果图;如图9所示,其示出了海量AI角色90在复杂场景(如包含较多障碍物的场景)中进行同屏移动的界面效果图。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图10,其示出了本申请一个实施例提供的位置更新装置的框图。该装置具有实现上述方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是计算机设备,也可以设置在计算机设备中。该装置1000可以包括:移出检测模块1010、碰撞检测模块1020和位置确定模块1030。
移出检测模块1010,用于根据目标对象在场景内的规划移动路径,确定所述目标对象从当前时间戳所在的起始位置沿所述规划移动路径移动至下一时间戳所在的规划目标位置的过程中,所述目标对象是否移出碰撞检测范围,所述碰撞检测范围是包含所述目标对象的所述场景中的部分区域。
碰撞检测模块1020,用于当所述目标对象不移出所述碰撞检测范围时,检测所述目标对象从所述起始位置移动至所述规划目标位置的过程中,与所述碰撞检测范围内的物体是否会发生碰撞。
位置确定模块1030,用于根据碰撞检测结果,确定所述目标对象在所述下一时间戳所在的实际目标位置。
综上所述,本申请实施例提供的技术方案中,通过构建目标对象的碰撞检测范围,在每次场景查询过程中,检测目标对象从起始位置移动至规划目标位置的过程中,与该碰撞检测范围内的物体是否会发生碰撞,然后根据碰撞检测结果确定目标对象在下一时间戳的实际目标位置;由于每次场景查询只需要和碰撞检测范围内的数个碰撞体进行碰撞检测,而不需要进行全场景的碰撞检测,因此场景查询所需的计算开销充分降低,进而降低了位置更新所需的计算开销。
在一些可能的设计中,所述碰撞检测模块1020,用于将所述目标对象在所述起始位置和所述规划目标位置之间执行扫掠检测,确定所述目标对象与所述碰撞检测范围内的物体是否会发生碰撞。
在一些可能的设计中,所述位置确定模块1030,用于:当所述目标对象与所述碰撞检测范围内的物体会发生碰撞时,根据碰撞情况重新确定所述目标对象在所述下一时间戳所在的实际目标位置;当所述目标对象与所述碰撞检测范围内的物体不会发生碰撞时,将所述规划目标位置确定为所述目标对象在所述下一时间戳所在的实际目标位置。
在一些可能的设计中,如图11所示,所述装置1000还包括:范围更新模块1040。
范围更新模块1040,用于当所述目标对象移出所述碰撞检测范围时,对所述碰撞检测范围进行更新,得到更新后的碰撞检测范围。
所述碰撞检测模块1020,用于检测所述目标对象从所述起始位置移动至所述规划目标位置的过程中,与所述更新后的碰撞检测范围内的物体是否会发生碰撞。
在一些可能的设计中,所述范围更新模块1040,用于以所述目标对象为中心,构建所述更新后的碰撞检测范围。
在一些可能的设计中,如图11所示,所述装置1000还包括:物体增加模块1050,用于当检测到目标移动物从所述碰撞检测范围之外移动至所述碰撞检测范围之内时,在所述碰撞检测范围内的物体中增加所述目标移动物。
在一些可能的设计中,如图11所示,所述装置1000还包括:同步消息接收模块1060、逻辑位置更新模块1070和渲染位置更新模块1080。
同步消息接收模块1060,用于接收服务器发送的位置同步消息,所述位置同步消息包括所述服务器确定出的所述目标对象在所述下一时间戳所在的标准目标位置。
逻辑位置更新模块1070,用于当所述实际目标位置和所述标准目标位置不一致时,将所述目标对象在所述下一时间戳的逻辑位置确定为所述标准目标位置,其中,所述逻辑位置用于后续的碰撞检测和位置更新。
渲染位置更新模块1080,用于将所述目标对象的渲染位置在预设时长内逐步修正所述实际目标位置和所述标准目标位置之间的误差,其中,所述渲染位置是指在所述场景中显示的位置。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图12,其示出了本申请一个实施例提供的计算机设备的结构示意图。该计算机设备可以是任何具备数据处理和存储功能的电子设备,如手机、平板电脑、PC或服务器等设备。该计算机设备用于实施上述实施例中提供的位置更新方法。具体来讲:
所述计算机设备1200包括中央处理单元(CPU)1201、包括随机存取存储器(RAM)1202和只读存储器(ROM)1203的系统存储器1204,以及连接系统存储器1204和中央处理单元1201的系统总线1205。所述计算机设备1200还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)1206,和用于存储操作系统1213、应用程序1214和其他程序模块1215的大容量存储设备1207。
所述基本输入/输出系统1206包括有用于显示信息的显示器1208和用于用户输入信息的诸如鼠标、键盘之类的输入设备1209。其中所述显示器1208和输入设备1209都通过连接到系统总线1205的输入输出控制器1210连接到中央处理单元1201。所述基本输入/输出系统1206还可以包括输入输出控制器1210以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1210还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备1207通过连接到系统总线1205的大容量存储控制器(未示出)连接到中央处理单元1201。所述大容量存储设备1207及其相关联的计算机可读介质为计算机设备1200提供非易失性存储。也就是说,所述大容量存储设备1207可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1204和大容量存储设备1207可以统称为存储器。
根据本申请的各种实施例,所述计算机设备1200还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1200可以通过连接在所述系统总线1205上的网络接口单元1211连接到网络1212,或者说,也可以使用网络接口单元1211来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集经配置以由一个或者一个以上处理器执行,以实现上述实施例提供的位置更新方法。
在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被计算机设备的处理器执行时实现上述实施例提供的位置更新方法。在示例性实施例中,上述计算机可读存储介质可以是ROM、RAM、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品,当该计算机程序产品被执行时,其用于实现上述实施例提供的位置更新方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (15)
1.一种位置更新方法,其特征在于,所述方法包括:
根据目标对象在场景内的规划移动路径,确定所述目标对象从当前时间戳所在的起始位置沿所述规划移动路径移动至下一时间戳所在的规划目标位置的过程中,所述目标对象是否移出碰撞检测范围,所述碰撞检测范围是包含所述目标对象的所述场景中的部分区域;
若所述目标对象不移出所述碰撞检测范围,则检测所述目标对象从所述起始位置移动至所述规划目标位置的过程中,与所述碰撞检测范围内的物体是否会发生碰撞;
根据碰撞检测结果,确定所述目标对象在所述下一时间戳所在的实际目标位置。
2.根据权利要求1所述的方法,其特征在于,所述检测所述目标对象从所述起始位置移动至所述规划目标位置的过程中,与所述碰撞检测范围内的物体是否会发生碰撞,包括:
将所述目标对象在所述起始位置和所述规划目标位置之间执行扫掠检测,确定所述目标对象与所述碰撞检测范围内的物体是否会发生碰撞。
3.根据权利要求1所述的方法,其特征在于,所述根据碰撞检测结果,确定所述目标对象在所述下一时间戳所在的实际目标位置,包括:
若所述目标对象与所述碰撞检测范围内的物体会发生碰撞,则根据碰撞情况重新确定所述目标对象在所述下一时间戳所在的实际目标位置;
若所述目标对象与所述碰撞检测范围内的物体不会发生碰撞,则将所述规划目标位置确定为所述目标对象在所述下一时间戳所在的实际目标位置。
4.根据权利要求1所述的方法,其特征在于,所述根据目标对象在场景内的规划移动路径,确定所述目标对象从当前时间戳所在的起始位置沿所述规划移动路径移动至下一时间戳所在的规划目标位置的过程中,所述目标对象是否移出碰撞检测范围之后,还包括:
若所述目标对象移出所述碰撞检测范围,则对所述碰撞检测范围进行更新,得到更新后的碰撞检测范围;
所述检测所述目标对象从所述起始位置移动至所述规划目标位置的过程中,与所述碰撞检测范围内的物体是否会发生碰撞,包括:
检测所述目标对象从所述起始位置移动至所述规划目标位置的过程中,与所述更新后的碰撞检测范围内的物体是否会发生碰撞。
5.根据权利要求4所述的方法,其特征在于,所述对所述碰撞检测范围进行更新,得到更新后的碰撞检测范围,包括:
以所述目标对象为中心,构建所述更新后的碰撞检测范围。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
当检测到目标移动物从所述碰撞检测范围之外移动至所述碰撞检测范围之内时,在所述碰撞检测范围内的物体中增加所述目标移动物。
7.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
接收服务器发送的位置同步消息,所述位置同步消息包括所述服务器确定出的所述目标对象在所述下一时间戳所在的标准目标位置;
若所述实际目标位置和所述标准目标位置不一致,则将所述目标对象在所述下一时间戳的逻辑位置确定为所述标准目标位置,其中,所述逻辑位置用于后续的碰撞检测和位置更新;
将所述目标对象的渲染位置在预设时长内逐步修正所述实际目标位置和所述标准目标位置之间的误差,其中,所述渲染位置是指在所述场景中显示的位置。
8.一种位置更新装置,其特征在于,所述装置包括:
移出检测模块,用于根据目标对象在场景内的规划移动路径,确定所述目标对象从当前时间戳所在的起始位置沿所述规划移动路径移动至下一时间戳所在的规划目标位置的过程中,所述目标对象是否移出碰撞检测范围,所述碰撞检测范围是包含所述目标对象的所述场景中的部分区域;
碰撞检测模块,用于当所述目标对象不移出所述碰撞检测范围时,检测所述目标对象从所述起始位置移动至所述规划目标位置的过程中,与所述碰撞检测范围内的物体是否会发生碰撞;
位置确定模块,用于根据碰撞检测结果,确定所述目标对象在所述下一时间戳所在的实际目标位置。
9.根据权利要求8所述的装置,其特征在于,所述碰撞检测模块,用于:
将所述目标对象在所述起始位置和所述规划目标位置之间执行扫掠检测,确定所述目标对象与所述碰撞检测范围内的物体是否会发生碰撞。
10.根据权利要求8所述的装置,其特征在于,所述位置确定模块,用于:
当所述目标对象与所述碰撞检测范围内的物体会发生碰撞时,根据碰撞情况重新确定所述目标对象在所述下一时间戳所在的实际目标位置;
当所述目标对象与所述碰撞检测范围内的物体不会发生碰撞时,将所述规划目标位置确定为所述目标对象在所述下一时间戳所在的实际目标位置。
11.根据权利要求8所述的装置,其特征在于,所述装置还包括:
范围更新模块,用于当所述目标对象移出所述碰撞检测范围时,对所述碰撞检测范围进行更新,得到更新后的碰撞检测范围;
所述碰撞检测模块,用于检测所述目标对象从所述起始位置移动至所述规划目标位置的过程中,与所述更新后的碰撞检测范围内的物体是否会发生碰撞。
12.根据权利要求8至11任一项所述的装置,其特征在于,所述装置还包括:
物体增加模块,用于当检测到目标移动物从所述碰撞检测范围之外移动至所述碰撞检测范围之内时,在所述碰撞检测范围内的物体中增加所述目标移动物。
13.根据权利要求8至11任一项所述的装置,其特征在于,所述装置还包括:
同步消息接收模块,用于接收服务器发送的位置同步消息,所述位置同步消息包括所述服务器确定出的所述目标对象在所述下一时间戳所在的标准目标位置;
逻辑位置更新模块,用于当所述实际目标位置和所述标准目标位置不一致时,将所述目标对象在所述下一时间戳的逻辑位置确定为所述标准目标位置,其中,所述逻辑位置用于后续的碰撞检测和位置更新;
渲染位置更新模块,用于将所述目标对象的渲染位置在预设时长内逐步修正所述实际目标位置和所述标准目标位置之间的误差,其中,所述渲染位置是指在所述场景中显示的位置。
14.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至7任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910385831.8A CN109966741B (zh) | 2019-05-09 | 2019-05-09 | 位置更新方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910385831.8A CN109966741B (zh) | 2019-05-09 | 2019-05-09 | 位置更新方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109966741A true CN109966741A (zh) | 2019-07-05 |
CN109966741B CN109966741B (zh) | 2022-06-10 |
Family
ID=67073305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910385831.8A Active CN109966741B (zh) | 2019-05-09 | 2019-05-09 | 位置更新方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109966741B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111068324A (zh) * | 2019-11-26 | 2020-04-28 | 腾讯科技(深圳)有限公司 | 虚拟对象控制方法、装置、设备及存储介质 |
CN111346379A (zh) * | 2020-03-12 | 2020-06-30 | 竞技世界(北京)网络技术有限公司 | 一种实现碰撞处理的方法及装置 |
CN111714890A (zh) * | 2020-04-24 | 2020-09-29 | 上海完美时空软件有限公司 | 阻拦信息的生成方法和装置、存储介质、电子装置 |
CN117046102A (zh) * | 2023-07-17 | 2023-11-14 | 广州三七极耀网络科技有限公司 | 一种游戏中对象坐标的同步方法、装置、设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104699946A (zh) * | 2014-12-30 | 2015-06-10 | 北京像素软件科技股份有限公司 | 一种游戏场景的管理方法及装置 |
CN104992466A (zh) * | 2015-06-26 | 2015-10-21 | 四川赛迪智科技有限公司 | 一种三维场景的即时寻径方法 |
CN105031921A (zh) * | 2015-02-15 | 2015-11-11 | 北京乐动卓越信息技术有限公司 | 一种游戏对象无序移动过程中的防碰撞的方法及系统 |
CN108022286A (zh) * | 2017-11-30 | 2018-05-11 | 腾讯科技(深圳)有限公司 | 画面渲染方法、装置及存储介质 |
CN108629847A (zh) * | 2018-05-07 | 2018-10-09 | 网易(杭州)网络有限公司 | 虚拟对象移动路径生成方法、装置、存储介质及电子设备 |
CN109240303A (zh) * | 2018-09-30 | 2019-01-18 | 北京奇虎科技有限公司 | 一种机器人的路径规划方法、装置及电子设备 |
-
2019
- 2019-05-09 CN CN201910385831.8A patent/CN109966741B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104699946A (zh) * | 2014-12-30 | 2015-06-10 | 北京像素软件科技股份有限公司 | 一种游戏场景的管理方法及装置 |
CN105031921A (zh) * | 2015-02-15 | 2015-11-11 | 北京乐动卓越信息技术有限公司 | 一种游戏对象无序移动过程中的防碰撞的方法及系统 |
CN104992466A (zh) * | 2015-06-26 | 2015-10-21 | 四川赛迪智科技有限公司 | 一种三维场景的即时寻径方法 |
CN108022286A (zh) * | 2017-11-30 | 2018-05-11 | 腾讯科技(深圳)有限公司 | 画面渲染方法、装置及存储介质 |
CN108629847A (zh) * | 2018-05-07 | 2018-10-09 | 网易(杭州)网络有限公司 | 虚拟对象移动路径生成方法、装置、存储介质及电子设备 |
CN109240303A (zh) * | 2018-09-30 | 2019-01-18 | 北京奇虎科技有限公司 | 一种机器人的路径规划方法、装置及电子设备 |
Non-Patent Citations (2)
Title |
---|
CENPHOENIX: "游戏算法整理 算法二:碰撞", 《HTTPS://BLOG.CSDN.NET/CENPHOENIX/ARTICLE/DETAILS/83497899》 * |
王文举: "《虚拟维修仿真技术》", 31 March 2018 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111068324A (zh) * | 2019-11-26 | 2020-04-28 | 腾讯科技(深圳)有限公司 | 虚拟对象控制方法、装置、设备及存储介质 |
CN111068324B (zh) * | 2019-11-26 | 2022-05-17 | 腾讯科技(深圳)有限公司 | 虚拟对象控制方法、装置、设备及存储介质 |
CN111346379A (zh) * | 2020-03-12 | 2020-06-30 | 竞技世界(北京)网络技术有限公司 | 一种实现碰撞处理的方法及装置 |
CN111346379B (zh) * | 2020-03-12 | 2023-05-12 | 竞技世界(北京)网络技术有限公司 | 一种实现碰撞处理的方法及装置 |
CN111714890A (zh) * | 2020-04-24 | 2020-09-29 | 上海完美时空软件有限公司 | 阻拦信息的生成方法和装置、存储介质、电子装置 |
CN111714890B (zh) * | 2020-04-24 | 2023-04-21 | 上海完美时空软件有限公司 | 阻拦信息的生成方法和装置、存储介质、电子装置 |
CN117046102A (zh) * | 2023-07-17 | 2023-11-14 | 广州三七极耀网络科技有限公司 | 一种游戏中对象坐标的同步方法、装置、设备及介质 |
CN117046102B (zh) * | 2023-07-17 | 2024-02-13 | 广州三七极耀网络科技有限公司 | 一种游戏中对象坐标的同步方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109966741B (zh) | 2022-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109966741A (zh) | 位置更新方法、装置、设备及存储介质 | |
CN107168532B (zh) | 一种基于增强现实的虚拟同步显示方法及系统 | |
US20240054735A1 (en) | Real-time shared augmented reality experience | |
US10902679B2 (en) | Method of occlusion rendering using raycast and live depth | |
US11238659B2 (en) | Caching and updating of dense 3D reconstruction data | |
CN102622776B (zh) | 三维环境重构 | |
CN107491070A (zh) | 一种移动机器人路径规划方法及装置 | |
US8537113B2 (en) | Calibration of portable devices in a shared virtual space | |
CN102663722B (zh) | 使用深度图像的活动对象分割 | |
CN110537210A (zh) | 增强现实显示系统、程序以及方法 | |
US10874943B2 (en) | Systems and methods for transferring object authority in a shared virtual environment | |
US9033805B2 (en) | Three dimensional operations in an isometric projection | |
CN107111996A (zh) | 实时共享的增强现实体验 | |
CN109298629A (zh) | 用于为自主和非自主位置意识提供鲁棒跟踪的容错 | |
US20130072299A1 (en) | Three-dimensional motion mapping for cloud gaming | |
CN102622762A (zh) | 使用深度图的实时相机跟踪 | |
CN102609942A (zh) | 使用深度图进行移动相机定位 | |
JP7465960B2 (ja) | ピアツーピアマルチプレイヤークラウドゲーミングアーキテクチャ | |
CN108479072A (zh) | 一种用于策略类游戏大型场景的数据同步方法及系统 | |
JP2020507847A (ja) | オブジェクト移動方法及び装置並びに記憶媒体、電子装置 | |
Pokrić et al. | Engaging citizen communities in smart cities using IoT, serious gaming and fast markerless Augmented Reality | |
CN112513713B (zh) | 用于地图构建的系统和方法 | |
US20220080314A1 (en) | Targeting of a Long-Range Object In a Multiplayer Game | |
CN110090447B (zh) | 碰撞体堆叠方法、生成方法、装置、设备及存储介质 | |
US11585637B2 (en) | System for aiming down a sighting apparatus in a virtual reality environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |