CN107172136B - 体素数据的同步方法和装置 - Google Patents
体素数据的同步方法和装置 Download PDFInfo
- Publication number
- CN107172136B CN107172136B CN201710309954.4A CN201710309954A CN107172136B CN 107172136 B CN107172136 B CN 107172136B CN 201710309954 A CN201710309954 A CN 201710309954A CN 107172136 B CN107172136 B CN 107172136B
- Authority
- CN
- China
- Prior art keywords
- voxel
- data
- client
- operation instruction
- instruction data
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种体素数据的同步方法和装置。其中,该方法包括:在虚拟现实场景中,第一客户端获取用于指示对目标区域中的体素执行操作的操作指示数据,其中,操作指示数据由虚拟现实设备触及体素产生,第一客户端与虚拟现实设备相关联;第一客户端向服务器发送操作指示数据,以使服务器将操作指示数据发送至预定客户端集合,其中,预定客户端集合包括:第一客户端及与第一客户端关联的至少一个第二客户端;第一客户端接收服务器发送的操作指示数据;第一客户端根据接收到的操作指示数据对第一客户端对应的目标区域中的体素执行操作,得到与操作对应的体素数据。本发明解决了体素数据同步的数据处理量大的技术问题。
Description
技术领域
本发明涉及数据处理领域,具体而言,涉及一种体素数据的同步方法和装置。
背景技术
目前,体素的应用促进了硬件的发展,尤其是自图形处理器(GraphicsProcessing Unit,简称为GPU)的普及以来,体素开始广泛地使用在游戏应用中。但是,由于体素的单位数量极其庞大,在网络游戏方面的使用还是比较有限的。例如,由于每一时刻对体素数据的同步非常消耗本地和网络资源,“我的世界”应用也是不存在网络模式的,而仅仅是单机游戏应用。
另外,沙盒网络游戏开始投入到市场当中,体素数据的同步也作为一个很重要的技术点开始被应用。沙盒网络游戏中应用体素数据的方式,一般包括两种类型。第一种类型是主打的多变玩法,体素地形是一开始在一段时间内一次生成,在生成体素地形之后,不存在连续大量的改变体素地形的情况,偶尔对体素地形的修改也不会过多影响网络体素同步,体素数据的修改频率低于1单元每分钟。第二中类型是主打的建造类型的玩法,会涉及连续地去修改体素数据的情况,但是每一个时刻对于体素数据的修改量也是相对较小的,这一种应用对于体素数据的修改频率也不会高于1单元每秒。
在上述两种类型的应用体素数据的方式中,可以简单地对体素进行编号,对每个单位的状态进行编号,通过传输体素的编号和每个单位的状态的编号可以达到体素数据同步的目的,可以在每一次体素数据的修改量不是很大的时候采用。
上述两种类型的应用体素数据的方式针对于体素数据同步所存在的场景都在非VR下的非大量的体素数据的修改这样的使用场景,一秒钟更新体素数据小于等于1单位的情况,当一帧需要修改的体素数据为千单位级别的时候,或者在每秒高于万单位的体素数据需要修改的网络同步下,通过编号传输体素数据会造成极其庞大的网络带宽和本地数据处理量,进而导致整个***瘫痪,没有办法应用。另外,目前虚拟现实环境下的体素雕刻应用还都不存在网络模式,也即,不支持多人同时雕刻。
针对上述的体素数据同步的数据处理量大问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种体素数据的同步方法和装置,以至少解决体素数据同步的数据处理量大的技术问题。
根据本发明实施例的一个方面,提供了一种体素数据的同步方法。该方法包括:在虚拟现实场景中,第一客户端获取用于指示对目标区域中的体素执行操作的操作指示数据,其中,操作指示数据由虚拟现实设备触及体素产生,第一客户端与虚拟现实设备相关联;第一客户端向服务器发送操作指示数据,以使服务器将操作指示数据发送至预定客户端集合,其中,预定客户端集合包括:第一客户端及与第一客户端关联的至少一个第二客户端;第一客户端接收服务器发送的操作指示数据;第一客户端根据接收到的操作指示数据对第一客户端对应的目标区域中的体素执行操作,得到与操作对应的体素数据。
根据本发明实施例的另一方面,还提供了一种体素数据的同步装置。该装置包括:第一获取单元,用于在虚拟现实场景中,使第一客户端获取用于指示对目标区域中的体素执行操作的操作指示数据,其中,操作指示数据由虚拟现实设备触及体素产生,第一客户端与虚拟现实设备相关联;发送单元,用于使第一客户端向服务器发送操作指示数据,以使服务器将操作指示数据发送至预定客户端集合,其中,预定客户端集合包括:第一客户端及与第一客户端关联的至少一个第二客户端;第一接收单元,用于使第一客户端接收服务器发送的操作指示数据;第二接收单元,用于使第一客户端根据接收到的操作指示数据对第一客户端对应的目标区域中的体素执行操作,得到与操作对应的体素数据。
在本发明实施例中,第一客户端获取用于指示对目标区域中的体素执行操作的操作指示数据;第一客户端向服务器发送操作指示数据,以使服务器将操作指示数据发送至预定客户端集合,其中,预定客户端集合包括:第一客户端及与第一客户端关联的至少一个第二客户端;第一客户端接收服务器发送的操作指示数据;第一客户端根据接收到的操作指示数据对第一客户端对应的目标区域中的体素执行操作,得到与操作对应的体素数据的方式。由于本发明在实现体素数据同步时,传输的是未携带体素数据的操作指示数据,完全不涉及体素数据的传输,实现了在虚拟现实场景下,体素数据传输同步的目的,从而实现了降低体素数据同步的数据处理量的技术效果,进而解决了体素数据同步的数据处理量大的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种体素数据的同步方法的硬件环境的示意图;
图2是根据本发明实施例的一种体素数据的同步方法的流程图;
图3是根据本发明实施例的一种第一客户端根据接收到的操作指示数据对第一客户端对应的目标区域中的体素执行操作的方法的流程图;
图4是根据本发明实施例的另一种体素数据的同步方法的流程图;
图5是根据本发明实施例的一种体素数据的同步方法的交互示意图;
图6是根据本发明实施例的一种体素数据的同步装置的示意图;
图7是根据本发明实施例的另一种体素数据的同步装置的示意图;
图8是根据本发明实施例的另一种体素数据的同步装置的示意图;
图9是根据本发明实施例的另一种体素数据的同步装置的示意图;以及
图10是根据本发明实施例的一种终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种体素数据的同步方法的实施例。
可选地,在本实施例中,上述体素数据的同步方法可以应用于如图1所示的由服务器102和终端104所构成的硬件环境中。图1是根据本发明实施例的一种体素数据的同步方法的硬件环境的示意图。如图1所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于PC、手机、平板电脑等。本发明实施例的体素数据的同步方法可以由服务器102来执行,也可以由终端104来执行,还可以是由服务器102和终端104共同执行。其中,终端104执行本发明实施例的体素数据的同步方法也可以是由安装在其上的客户端来执行。
图2是根据本发明实施例的一种体素数据的同步方法的流程图。如图2所示,该方法可以包括以下步骤:
步骤S202,第一客户端获取用于指示对目标区域中的体素执行操作的操作指示数据。
在本申请上述步骤S202提供的技术方案中,在虚拟现实(Virtual Reality,简称为VR)场景中,第一客户端获取用于指示对目标区域中的体素执行操作的操作指示数据,其中,操作指示数据由虚拟现实设备触及体素产生,第一客户端与虚拟现实设备相关联。
体素也即立体像素(voxel),是体积像素(volume pixel)的简称,类似于二维空间的最小单位像素,其中,像素用在二维电脑图像的视频数据上。体积像素是数字数据在三维空间分区上的最小单位,可以应用于三维成像、科学数据与医学视频等领域。可选地,三维显示器通过体素描述分辨率,比如,用于显示512×512×512体素的显示器。体素是游戏应用中高自由度的用户原创内容(User Generated Content,简称为UGC)的实现方式,可以任意由玩家创作出高复杂度的网格(Mesh),有无线的扩展性和离散性。
在该实施例中,处于虚拟现实场景中的第一客户端获取用于指示对目标区域中的体素执行操作的操作指示数据,其中,虚拟现实场景可以为体素场景。该第一客户端与虚拟现实设备相关联,其中,虚拟现实设备可以为虚拟现实手柄,该虚拟现实设备在虚拟现实场景中可以触及的位置都是体素单元。
在该实施例中,虚拟现实设备在虚拟现实场景中的触及动作,可以用于指示根据虚拟现实设备在虚拟现实场景中所处的位置或者区域确定用于执行目标操作的目标信息,比如,将虚拟现实设备在虚拟现实场景中所处的位置确定为操作位置,或者将所处的区域确定为操作区域,该操作位置或者区域包括体素单元,对体素单元执行的目标操作包括增加网格操作、删除网格操作、平滑已有网格的操作等。
可选地,虚拟现实设备在虚拟现实场景中的触及动作,用于指示判断虚拟现实设备在虚拟现实场景中所处的位置与用于触发虚拟现实设备执行操作,或者用于响应其它设备操作的预设位置之间是否符合预设触发条件。可选地,预设触发条件为虚拟现实设备在虚拟现实场景中所处的位置与上述预设位置重合,或者其位置差值在预设位置范围内。
可选地,虚拟现实设备在虚拟现实场景中的触及动作,用于指示判断虚拟现实设备在虚拟现实场景中所处的区域与用于触发虚拟现实设备执行操作,或者用于响应其它设备操作的预设区域之间是否符合预设触发条件。可选地,预设触发条件为虚拟现实设备在虚拟现实场景中所处的区域与上述预设区域重合,或者其区域差值在预设区域范围内。
可选地,虚拟现实设备在虚拟现实场景中的触及动作,为触摸操作,通过虚拟现实设备触摸预设位置上显示的虚拟对象。
需要说明的是,上述虚拟现实设备在虚拟现实场景中的触及动作仅为本发明实施例的优选实施方式,并不限定于本发明实施例的虚拟现实设备的触及动作仅包括上述方式,任何可以体现虚拟现实设备与虚拟现实场景之间的关系的方式都在本发明实施例的范围之内,此处不再一一举例说明。
该实施例的目标区域为用户通过虚拟现实设备可以操作的可视化区域,该目标区域可以为二维区域,也可以为三维区域,可以是以当前虚拟现实设备所触及的体素单元为中心的一个已定义的区域,比如,以虚拟现实设备当前所触及的体素单元为中心的圆形区域、方形区域、球体、立方体等规则区域,该目标区域还可以为已经确定的不规则区域。目标区域中包括体素,操作指示数据用于指示对目标区域中的体素执行操作,是连接用户操作和体素的桥梁,比如,操作包。在第一客户端获取到操作指数数据时,并没有对目标区域中的体素执行操作,该操作指示数据可以用于对当前操作的操作区域进行描述,对当前操作的操作类型进行描述,指示当前操作区域中的体素单元的状态结果等,不包括体素数据本身,因而数据量比较小。可选地,对目标区域中的体素执行的操作包括增加体素网格、删除体素网格、平滑已有体素网格等操作。
虚拟现实设备触及体素产生指示操作数据,包括虚拟现实设备在触及体素时,并且在接收到预设指令的情况下产生上述指示操作数据,比如,以虚拟现实设备触及的位置为中心点,当按下虚拟现实设备的板机键的瞬间,产生操作指示数据。
举例而言,以当前虚拟现实手柄所触及的体素单元为中心点,执行填充一个10*10*10大小的正方体体素网格的操作。在虚拟现实设备手柄扳机键的瞬间那一帧,触发产生了一个操作包。
步骤S204,第一客户端向服务器发送操作指示数据,以使服务器将操作指示数据发送至预定客户端集合。
在本申请上述步骤S204提供的技术方案中,第一客户端向服务器发送操作指示数据,以使服务器将操作指示数据发送至预定客户端集合,其中,预定客户端集合包括:第一客户端及与第一客户端关联的至少一个第二客户端。
在第一客户端获取用于指示对目标区域中的体素执行操作的操作指示数据之后,第一客户端向服务器发送操作指示数据。可选地,在服务器接收到操作指示数据之后,服务器对操作指数数据进行验证,当服务器对操作指示数据验证通过的情况下,服务器确定该操作指示数据合法,服务器将操作指示数据发送至预定客户端集合,该预定客户端集合包括第一客户端及与第一客户端关联的至少一个第二客户端,也即,该预定客户端集合包括了处于同一虚拟现实场景中的多个客户端,比如,虚拟现实场景中同一房间中的多个客户端。
第一客户端和至少一个第二客户端在虚拟现实场景中的位置是相对于虚拟现实场景中的预设位置确定的,从而将第一客户端和至少一个第二客户端统一在一个坐标系中。
步骤S206,第一客户端接收服务器发送的操作指示数据。
在本申请上述步骤S206提供的技术方案中,第一客户端接收服务器发送的操作指示数据。
在第一客户端向服务器发送操作指示数据之后,服务器通过网络既向第一客户端发送操作指示数据,也向至少一个第二客户端发送操作指示数据,实现了通过传输操作指示数据的方式来实现同步变化的部分,并且使得数据量最小化。
第一客户端接收服务器发送的操作指示数据,至少一个第二客户端也接收服务器发送的操作指示数据,也即,在整个网络***中,服务器将操作数据广播至处于同一虚拟现实场景中的多个客户端,从而实现了第一客户端与至少一个第二客户端通过服务器传输操作指示数据的目的,而且并不涉及体素本身的数据。
步骤S208,第一客户端根据接收到的操作指示数据对第一客户端对应的目标区域中的体素执行操作,得到与操作对应的体素数据。
在本申请上述步骤S208提供的技术方案中,第一客户端根据接收到的操作指示数据对第一客户端对应的目标区域中的体素执行操作,得到与操作对应的体素数据。
在第一客户端接收服务器发送的操作指示数据之后,第一客户端根据接收到的操作指示数据对第一客户端对应的目标区域中的体素执行操作,得到与操作对应的体素数据,该操作可以为增加体素网格、删除体素网格、平滑已有体素网格等操作,与操作数据对应的体素数据包括对体素状态数据进行修改得到的状态数据,也可以同时包括体素未修改的状态数据。
可选地,第一客户端将操作指示数据转换成体素包,也即,第一客户端将操作指示数据所涉及的体素单元的状态结果,按照操作指示数据中的操作类型数据对第一客户端对应的目标区域中的体素进行修改,得到体素数据,将体素数据一次性写入体素数据存储单元,这一过程是异步操作的,这样就对处理时间和网络延时都不会敏感,不会出现虚拟现实降帧的情况。
可选地,虚拟现实场景中的每个客户端都在运行时,除了第一客户端根据接收到的操作指示数据对第一客户端对应的目标区域中的体素执行操作,得到与操作对应的体素数据之外,至少一个第二客户端也会根据接收到的操作数据对第二客户端对应的目标区域中的体素执行操作,得到与操作对应的体素数据。
在第一客户端根据接收到的操作指示数据对第一客户端对应的目标区域中的体素执行操作,得到与操作对应的体素数据之后,在第一客户端所在的本地显示体素数据对应的体素。与体素数据对应的体素也会在至少一个第二客户端所在的本地显示,实现了体素在多客户端之间进行共享、共同编辑。
通过上述步骤S202至步骤S208,通过第一客户端获取用于指示对目标区域中的体素执行操作的操作指示数据;第一客户端向服务器发送操作指示数据,以使服务器将操作指示数据发送至预定客户端集合,其中,预定客户端集合包括:第一客户端及与第一客户端关联的至少一个第二客户端;第一客户端接收服务器发送的操作指示数据;第一客户端根据接收到的操作指示数据对第一客户端对应的目标区域中的体素执行操作,得到与操作对应的体素数据的方式。由于本发明实施例在实现体素数据同步时,传输的是未携带体素数据的操作指示数据,也即,通过传输操作的方式来实现体素变化的部分,而完全不涉及体素数据的传输,使得传输数据量最小化,实现了在虚拟现实场景下,体素数据传输同步的目的,从而实现了降低体素数据同步的数据处理量的技术效果,进而解决了体素数据同步的数据处理量大的技术问题。
作为一种可选的实施方式,步骤S206,第一客户端接收服务器发送的操作指示数据包括:在服务器验证操作指示数据合法的情况下,第一客户端接收服务器发送的操作指示数据。
在第一客户端向服务器发送操作指示数据之后,服务器接收操作指示数据,对操作指示数据进行验证,可以验证操作指示数据的数据是否完整,格式是否正确等。在服务器对操作指示数据验证通过的情况下,该操作指示数据为合法操作指示数据,也即,为合法操作包,在服务器对操作指示数据验证未通过的情况下,该操作指示数据为非法操作指示数据,也即,为非法操作包。服务器发送合法操作指示数据。
在服务器验证操作指示数据合法的情况下,第一客户端接收服务器发送的操作指示数据。可选地,与第一客户端处于同一虚拟现实场景中的具有关联关系的至少一个第二客户端也会接收服务器发送的操作指示数据,从而实现了第一客户端和至少一个第二客户端通过服务器传输的操作指示数据,而不涉及体素本身的数据。
作为一种可选的实施方式,步骤S208,第一客户端根据接收到的操作指示数据对第一客户端对应的目标区域中的体素执行操作,得到与操作对应的体素数据包括:第一客户端获取操作指示数据中的操作区域数据,获取根据操作区域数据确定的目标区域中的体素的体素状态数据;第一客户端获取操作指示数据中的操作类型数据;第一客户端根据操作类型数据对体素状态数据进行修改,得到与操作对应的体素数据。
图3是根据本发明实施例的一种第一客户端根据接收到的操作指示数据对第一客户端对应的目标区域中的体素执行操作的方法的流程图。如图3所示,该方法包括以下步骤:
步骤S301,第一客户端获取操作指示数据中的操作区域数据。
在本申请上述步骤S301提供的技术方案中,第一客户端获取操作指示数据中的操作区域数据,其中,操作区域数据包括用于确定目标区域的参数。
操作指示数据包括操作区域数据,目标区域可以为产品层面的球、立方体以及其它三维体形的数学描述。操作区域数据用于指示执行操作的目标区域,包括用于确定目标区域的参数,比如,目标区域可以为圆形区域,则目标区域的参数为该圆形区域圆心和半径,当目标区域为立方体区域时,目标区域的参数为立方体区域的边长。
步骤S302,第一客户端获取根据操作区域数据确定的目标区域中的体素的体素状态数据。
在本申请上述步骤S302提供的技术方案中,第一客户端获取根据操作区域数据确定的目标区域中的体素的体素状态数据,其中,体素状态数据用于指示体素的当前状态。
在第一客户端获取操作指示数据中的操作区域数据之后,第一客户端获取根据操作区域数据确定的目标区域中的体素的体素状态数据,该体素状态数据用于指示体素的当前状态,也即,用于指示目标区域中的所有体素的当前状态结果。
步骤S303,第一客户端获取操作指示数据中的操作类型数据。
在本申请上述步骤S303提供的技术方案中,第一客户端获取操作指示数据中的操作类型数据,其中,操作类型数据用于指示对体素待执行的操作的类型。
在第一客户端获取根据操作区域数据确定的目标区域中的体素的体素状态数据之后,第一客户端获取操作指示数据中的操作类型数据,该操作类型数据用于指示对体素待执行操作的类型,操作的类型为对当前操作区域的体素状态作何修改,比如,第一客户端对目标区域的体素网格进行增加操作、删除操作、平滑操作、碰撞操作等,操作类型数据可以通过字段进行约定。
步骤S304,第一客户端根据操作类型数据对体素状态数据进行修改,得到与操作对应的体素数据。
在本申请上述步骤S304提供的技术方案中,第一客户端根据操作类型数据对体素状态数据进行修改,得到与操作对应的体素数据,其中,体素数据包括对体素状态数据进行修改得到的状态数据。
在第一客户端获取操作指示数据中的操作类型数据之后,第一客户端根据操作类型数据对体素状态数据进行修改,比如,第一客户端在第一客户端对应的目标区域增加体素网格、删除体素网格、平滑网格等,得到与操作对应的体素数据,该体素数据包括对体素状态数据进行修改得到的状态数据。
该实施例通过第一客户端获取操作指示数据中的操作区域数据,操作区域数据包括用于确定目标区域的参数;第一客户端获取根据操作区域数据确定的目标区域中的体素的体素状态数据,体素状态数据用于指示体素的当前状态;第一客户端获取操作指示数据中的操作类型数据,操作类型数据用于指示对体素待执行的操作的类型;第一客户端根据操作类型数据对体素状态数据进行修改,得到与操作对应的体素数据,体素数据包括对体素状态数据进行修改得到的状态数据,实现了第一客户端根据接收到的操作指示数据对第一客户端对应的目标区域中的体素执行操作,得到与操作对应的体素数据的目的,从而实现了降低体素数据同步的数据处理量的技术效果。
作为一种可选的实施方式,在第一客户端向服务器发送操作指示数据,以使服务器将操作指示数据发送至预定客户端集合之后,第二客户端获取操作指示数据中的操作区域数据;第二客户端获取根据操作区域数据确定的目标区域中的体素的体素状态数据;第二客户端获取操作指示数据中的操作类型数据;第二客户端根据操作类型数据对体素状态数据进行修改,得到与操作对应的体素数据,其中,体素数据包括对体素状态数据进行修改得到的状态数据。
图4是根据本发明实施例的另一种体素数据的同步方法的流程图。如图4所示,该方法还包括以下步骤:
步骤S401,第二客户端获取操作指示数据中的操作区域数据。
在本申请上述步骤S401提供的技术方案中,第二客户端获取操作指示数据中的操作区域数据,其中,操作区域数据包括用于确定目标区域的参数。
服务器除了向第一客户端发送操作区域数据之外,还向处于同一虚拟现实场景的与所述第一客户端相关联的至少一个第二客户端发送操作区域数据,也即,服务器将操作指示数据向处于同一虚拟现实场景的相关联的多个客户端。
步骤S402,第二客户端获取根据操作区域数据确定的目标区域中的体素的体素状态数据。
在本申请上述步骤S402提供的技术方案中,第二客户端获取根据操作区域数据确定的目标区域中的体素的体素状态数据,其中,体素状态数据用于指示体素的当前状态。
在第二客户端获取操作指示数据中的操作区域数据之后,第二客户端获取根据操作区域数据确定的目标区域中的体素的体素状态数据。
步骤S403,第二客户端获取操作指示数据中的操作类型数据。
在本申请上述步骤S403提供的技术方案中,第二客户端获取操作指示数据中的操作类型数据,其中,操作类型数据用于指示对体素待执行的操作的类型。
在第二客户端获取根据操作区域数据确定的目标区域中的体素的体素状态数据之后,第二客户端获取操作指示数据中的操作类型数据,该操作类型数据用于指示对体素待执行操作的类型,比如,第二客户端对目标区域的体素网格进行增加体素网格操作、删除体素网格操作、平滑体素网格操作、碰撞操作等。
步骤S404,第二客户端根据操作类型数据对体素状态数据进行修改,得到与操作对应的体素数据。
在本申请上述步骤S404提供的技术方案中,第二客户端根据操作类型数据对体素状态数据进行修改,得到与操作对应的体素数据,其中,体素数据包括对体素状态数据进行修改得到的状态数据。
在第二客户端获取操作指示数据中的操作类型数据之后,第二客户端根据获取到的操作类型数据对获取到的体素状态数据进行修改,比如,第二客户端在第二客户端对应的目标区域增加体素网格、删除体素网格、平滑网格等,得到与操作对应的体素数据,该体素数据包括对体素状态数据进行修改得到的状态数据。
该实施例通过在第一客户端向服务器发送操作指示数据,以使服务器将操作指示数据发送至预定客户端集合之后,第二客户端获取操作指示数据中的操作区域数据,操作区域数据包括用于确定目标区域的参数;第二客户端获取根据操作区域数据确定的目标区域中的体素的体素状态数据,体素状态数据用于指示体素的当前状态;第二客户端获取操作指示数据中的操作类型数据,操作类型数据用于指示对体素待执行的操作的类型;第二客户端根据操作类型数据对体素状态数据进行修改,得到与操作对应的体素数据,其中,体素数据包括对体素状态数据进行修改得到的状态数据,从而实现了降低体素数据同步的数据处理量的技术效果。
作为一种可选的实施方式,操作类型数据包括以下之一:用于指示增加体素的体素网格的操作类型数据;用于指示删除体素的体素网格的操作类型数据;用于指示平滑体素的体素网格的操作类型数据。
操作类型数据用于指示对体素待执行的操作的类型,操作的类型为对当前操作区域的体素状态作何修改,指示增加体素的体素网格的操作类型,也即,向目标区域填充体素网格,删除体素的体素网格,也即,挖空目标区域中的体素网格,平滑体素的体素网格等,操作类型数据可以通过字段做约定。
举例而言,目标区域为正方体,大小为10*10*10,操作类型数据用于指示增加体素的体素网格,则对目标区域中的体素执行增加网格操作,重新刷新状态的体素就有1000个。
作为一种可选的实施方式,在步骤S208,第一客户端根据接收到的操作指示数据对第一客户端对应的目标区域中的体素执行操作,得到与操作对应的体素数据之后,第一客户端在虚拟现实场景中显示体素数据对应的体素。
在第一客户端根据接收到的操作指示数据对第一客户端对应的目标区域中的体素执行操作,得到与操作对应的体素数据之后,第一客户端在虚拟现实场景中显示体素数据对应的体素,也即,对体素数据进行渲染表现;在第二客户端根据接收到的操作指示数据对第二客户端对应的目标区域中的体素执行操作,得到与操作对应的体素数据之后,第二客户端在虚拟现实场景中显示体素数据对应的体素,也即,第二客户端接收网络数据输入,输出是本地的结果显示,从而实现了不仅仅在很短的时间内将对目标区域中的体素执行操作得到的结果在本地呈现给用户,还可以将这部分结果通过网络分发给同在同一虚拟现实场景里面的其它游戏玩家对应的客户端。
作为一种可选的实施方式,第一客户端与至少一个第二客户端共同处于虚拟现实场景的预设坐标系下。
对虚拟现实场景的体素的位置进行相对化处理。可选地,基于服务器确定虚拟现实场景的预设位置,该预设位置可以为虚拟现实场景的中心位置。每个客户端在虚拟现实场景里的位置是基于预设位置确定的,从而将虚拟现实场景的预设位置统一在一个位置数据坐标系下,进而使得操作指示数据中的位置数据对于每个客户端都是可以直接使用的。
作为一种可选的实施方式,目标区域为以虚拟现实设备当前所触及的体素为中心的区域。
在虚拟现实场景中,用户沉浸在虚拟现实场景中,虚拟现实设备可以触达的位置都是一个体素单元。用户通过虚拟现实设备可以一次性操作的区域是以当前所在的体素单元为中心的一个已定义的目标区域,比如,目标区域为以虚拟现实设备当前所触及的体素单元为中心的圆、方块、已经确定的不规则的区域等,目标区域还可以为产品层面的球,立方体,其它三维体形的数学描述。该目标区域可以通过参数进行确定,比如,圆形区域就可以采用圆心加上半径这两个参数进行确定,立方体就可以采用边长这一个参数进行确定。
可选地,在该实施例中,虚拟现实设备为手柄,每个用户都可以通过对手柄的操作直接修改手柄可视化操作区域中的体素的所有体素状态,并同步传输给处于同一虚拟现实场景中相互关联的其它客户端,从而使得其它客户端对应的游戏玩家也可以了解体素状态修改的结果,实现了同一虚拟现实场景中的体素数据的同步传输。由于本发明实施例在实现体素数据同步时,传输的是未携带体素数据的操作指示数据,完全不涉及体素数据的传输,实现了在虚拟现实场景下,体素数据传输同步的目的,从而实现了降低体素数据同步的数据处理量的技术效果。
实施例2
下面结合优选的实施例对本发明的技术方案进行说明。
本发明实施例主要描述一种体素数据的网络传输方法。体素作为一种在游戏应用中,高自由度的UGC实现方式,可以任意由游戏玩家创作出高复杂度的网格,可以有无限的扩展性和离散性。本发明实施例的体素数据的网络传输方法,主通过传输操作的方式来实现体素同步变化的部分,并且使得传输数据量最小化。通过本发明实施例使得多个游戏玩家之间共享体素数据成为了可能,让基于体素的UGC可以在多个游戏玩家之间共享,共同编辑。
图5是根据本发明实施例的一种体素数据的同步方法的交互示意图。如图5所示,该方法包括以下步骤:
步骤S501,客户端通过虚拟现实设备执行本地操作获取操作包。
在虚拟现实场景中,以当前虚拟现实设备触及的体素单元为中心点。填充一个大小为10*10*10的正方形体素网格操作。当按下虚拟现实设备的手柄扳机键的瞬间,触发产生一个操作包。
操作包是连接用户操作和体素的桥梁。操作包包含当前的操作区域的描述和操作类型的描述。其中,操作区域就是产品层面的球,立方体,其它三维体形的数学描述,对于操作区域的类型只需要一个字段做约定,其它的参数个数就可以根据操作区域的类型需要再做存储,比如,圆形区域就可以采用圆心加上半径两个参数即可,立方体区域就可以只需要边长一个参数即可。其中操作类型指对当前操作区域的体素状态作何修改,比如,对操作区域进行体素网格的填充,还是体素网格的挖空,还是体素网格的平滑,还是体素网格的碰撞方面的操作等,操作类型数据也可以只需要一个字段进行约定。
在虚拟现实场景中,需要进行房间体素位置的相对化。也即,基于服务器确认的体素场景位置,每个用户在这个体素场景里面的位置是基于这个体素场景的中心位置确定的,统一每一个用户的位置数据坐标系,使得操作包里面的位置数据都是可以直接使用。
步骤S502,客户端向服务器发送操作包。
在该实施例中,虚拟现实设备触及体素,并进行操作形成了一个操作包,这个操作包不是马上进入体素数据处理单元,而是将操作包传输给服务器。
步骤S503,服务器对操作包进行验证。
在客户端向服务器发送操作包之后,由服务器来判定操作包的合法性。
步骤S504,服务器在验证操作包通过的情况下,确定操作包为合法操作包。
步骤S505,服务器向客户端发送合法操作包。
在服务器确定操作包为合法操作包之后,然后广播给发送操作包的客户端以及在同一虚拟现实场景中的相关联的其它客户端。也即,整个网络***里面用户与用户之间传输的就是操作包,完全不涉及体素本身的数据。
步骤S506,客户端通过体素数据处理单元根据合法操作包对本地体素数据进行处理。
客户端运行体素数据处理单元,体素数据处理单元的输入是操作包,将操作包转换成体素包,也即,一次性获取操作包涉及的体素单元的状态结果,然后根据操作包的要求对目标区域中的体素做修改,然后再一次性写入体素数据处理单元完成操作包整个过程的处理。这一个过程是异步操作的,这样对处理时间和网络延时不会敏感,不会造成VR降帧的情况。
对于任何一个用户,体素数据处理单元都是单机的,每个客户端都在运行,每个客户端输入的操作包都来自服务器,也即,体素数据处理单元不存在本地操作和网络操作的概念,都是接受网络数据的输入。
体素数据处理单元为图形处理器,又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器。可以将计算机***所需要的显示信息进行转换驱动,并向显示器提供行扫描信号,控制显示器的正确显示,是连接显示器和个人电脑主板的重要元件,也是“人机对话”的重要设备之一。
步骤S507,客户端显示处理之后的本地体素数据。
在客户端通过体素数据处理单元根据合法操作包对本地体素进行处理之后,输出本地结果,进行渲染表现,显卡作为电脑主机里的一个重要组成部分,承担输出显示图形的任务,从而在很短的时间内将对体素修改后的结果在本地呈现给用户,这部分结果通过网络分发给同在一个VR场景里面的其他游戏玩家进行呈现。
该实施例客户端通过虚拟现实设备执行本地操作获取操作包,客户端向服务器发送操作包,服务器对操作包进行验证,服务器在验证操作包通过的情况下,确定操作包为合法操作包,服务器向客户端发送合法操作包,客户端通过体素数据处理单元根据合法操作包对本地体素进行处理,客户端显示处理之后的本地体素数据,统一了网络和本地操作,进行模块化的方案设计,有利于后期功能扩展和维护,支持超大体素数据的同时修改和网络传输,使得体素数据应用在VR交互建模以及模型细节呈现方面成为可能。
实施例3
本发明实施例的应用环境可以但不限于参照上述实施例中的应用环境,本实施例中对此不再赘述。本发明实施例提供了用于实施体素数据的同步方法的一种可选的具体应用。
在虚拟现实场景中,每个用户都可以通过对虚拟现实设备手柄进行操作,直接修改可视化的操作区域中的所有体素的状态,并将修改操作通过服务器向同一虚拟现实场景中的其它游戏玩家对应的客户端。比如,虚拟现实设备为虚拟现实手柄,直接修改虚拟现实手柄可视化的操作体素区域中所有体素状态,并传输同步给同在一个场景里面的其他游戏玩家。
可选地,用户沉浸在体素世界里面,每一个用户的虚拟现实手柄可以触达的位置都是体素单元。用户可以一次性操作的区域是以当前所触及的体素单元为中心的一个已定义的操作区域,比如,该操作区域为以当前虚拟现实手柄所触及的体素单元为中心的圆、方块、已经确定的不规则的区域等。用户通过客户端对体素进行的基本操作可以是增加体素网格操作、删除体素网格操作、平滑已有体素网格操作等。
举例而言,如果这个操作区域为10*10*10的大小,以当前手柄位置为中心点,进行填充10*10*10操作区域中的体素网格的操作。在按下手柄扳机键的瞬间那一帧,就是触发产生一个操作包。这个操作包不是马上进入体素数据处理单元,而是将操作包传输给服务器,由服务器来判定其合法性,然后广播给用户以及和同在一个虚拟现实房间里面的其他用户对应的客户端。也即,整个网络***里面用户与用户对应的客户端之间通过服务器传输的就是操作包,完全不涉及体素本身的数据,这样会被重新刷新状态的体素就有1000个,在一帧内完成,这不仅仅要在很短的时间内将结果在本地呈现给用户,还要将这部分结果通过网络分发给同在一个虚拟现实场景里面的其他游戏玩家,从而通过传输操作的方式来实现体素变化的部分,而完全不涉及体素数据的传输,使得传输数据量最小化,实现了在虚拟现实场景下,体素数据传输同步的目的,从而实现了降低体素数据同步的数据处理量的技术效果。
可选地,如果短时间体素数据的修改量不是很大,可以简单地对体素进行编号,对每个单位的状态进行编号,通过传输体素的编号和每个单位的状态的编号可以达到体素数据同步的目的。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例4
根据本发明实施例,还提供了一种用于实施上述体素数据的同步方法的体素数据的同步装置。图6是根据本发明实施例的一种体素数据的同步装置的示意图。如图6所示,该装置可以包括:第一获取单元10、发送单元20、第一接收单元30和第二接收单元40。
第一获取单元10,用于在虚拟现实场景中,使第一客户端获取用于指示对目标区域中的体素执行操作的操作指示数据,其中,操作指示数据由虚拟现实设备触及体素产生,第一客户端与虚拟现实设备相关联。
发送单元20,用于使第一客户端向服务器发送操作指示数据,以使服务器将操作指示数据发送至预定客户端集合,其中,预定客户端集合包括:第一客户端及与第一客户端关联的至少一个第二客户端。
第一接收单元30,用于使第一客户端接收服务器发送的操作指示数据。
第二接收单元40,用于使第一客户端根据接收到的操作指示数据对第一客户端对应的目标区域中的体素执行操作,得到与操作对应的体素数据。
图7是根据本发明实施例的另一种体素数据的同步装置的示意图。如图7所示,该装置可以包括:第一获取单元10、发送单元20、第一接收单元30和第二接收单元40。第一接收单元30包括:接收模块31。
需要说明的是,该实施例的第一获取单元10、发送单元20、第一接收单元30和第二接收单元40与图6所示实施例的体素数据的同步装置中的作用相同,此处不再赘述。
接收模块31,用于在服务器验证操作指示数据合法的情况下,第一客户端接收服务器发送的操作指示数据。
图8是根据本发明实施例的另一种体素数据的同步装置的示意图。如图8所示,该装置可以包括:第一获取单元10、发送单元20、第一接收单元30和第二接收单元40。其中,第二接收单元40包括:第一获取模块41、第二获取模块42、第三获取模块43和修改模块44。
需要说明的是,该实施例的第一获取单元10、发送单元20、第一接收单元30和第二接收单元40与图6所示实施例的体素数据的同步装置中的作用相同,此处不再赘述。
第一获取模块41,用于使第一客户端获取操作指示数据中的操作区域数据,其中,操作区域数据包括用于确定目标区域的参数。
第二获取模块42,用于使第一客户端获取根据操作区域数据确定的目标区域中的体素的体素状态数据,其中,体素状态数据用于指示体素的当前状态。
第三获取模块43,用于使第一客户端获取操作指示数据中的操作类型数据,其中,操作类型数据用于指示对体素待执行的操作的类型。
修改模块44,用于使第一客户端根据操作类型数据对体素状态数据进行修改,得到与操作对应的体素数据,其中,体素数据包括对体素状态数据进行修改得到的状态数据。
图9是根据本发明实施例的另一种体素数据的同步装置的示意图。如图9所示,该装置可以包括:第一获取单元10、发送单元20、第一接收单元30和第二接收单元40。该装置还可以包括:第二获取单元50、第三获取单元60、第四获取单元70和修改单元80。
需要说明的是,该实施例的第一获取单元10、发送单元20、第一接收单元30和第二接收单元40与图6所示实施例的体素数据的同步装置中的作用相同,此处不再赘述。
第二获取单元50,用于在第一客户端向服务器发送操作指示数据,以使服务器将操作指示数据发送至预定客户端集合之后,使第二客户端获取操作指示数据中的操作区域数据,其中,操作区域数据包括用于确定目标区域的参数。
第三获取单元60,用于使第二客户端获取根据操作区域数据确定的目标区域中的体素的体素状态数据,其中,体素状态数据用于指示体素的当前状态。
第四获取单元70,用于使第二客户端获取操作指示数据中的操作类型数据,其中,操作类型数据用于指示对体素待执行的操作的类型。
修改单元80,用于使第二客户端根据操作类型数据对体素状态数据进行修改,得到与操作对应的体素数据,其中,体素数据包括对体素状态数据进行修改得到的状态数据。
可选地,操作类型数据包括以下之一:用于指示增加体素的体素网格的操作类型数据;用于指示删除体素的体素网格的操作类型数据;用于指示平滑体素的体素网格的操作类型数据。
可选地,该装置还包括:显示单元,用于在第一客户端根据接收到的操作指示数据对第一客户端对应的目标区域中的体素执行操作,得到与操作对应的体素数据所之后,第一客户端在虚拟现实场景中显示体素数据对应的体素。
可选地,第一客户端与至少一个第二客户端共同处于虚拟现实场景的预设坐标系下。
可选地,目标区域为以虚拟现实设备当前所触及的体素为中心的区域。
需要说明的是,该实施例中的第一获取单元10可以用于执行本申请实施例1中的步骤S202,该实施例中的发送单元20可以用于执行本申请实施例1中的步骤S204,该实施例中的第一接收单元30可以用于执行本申请实施例1中的步骤S206,该实施例中的第二接收单元40可以用于执行本申请实施例1中的步骤S208。
该实施例通过第一获取单元10在虚拟现实场景中,使第一客户端获取用于指示对目标区域中的体素执行操作的操作指示数据,其中,操作指示数据由虚拟现实设备触及体素产生,第一客户端与虚拟现实设备相关联,通过发送单元20使第一客户端向服务器发送操作指示数据,以使服务器将操作指示数据发送至预定客户端集合,其中,预定客户端集合包括:第一客户端及与第一客户端关联的至少一个第二客户端,通过第一接收单元30使第一客户端接收服务器发送的操作指示数据,通过第二接收单元40使第一客户端根据接收到的操作指示数据对第一客户端对应的目标区域中的体素执行操作,得到与操作对应的体素数据。由于本发明在实现体素数据同步时,传输的是未携带体素数据的操作指示数据,完全不涉及体素数据的传输,实现了在虚拟现实场景下,体素数据传输同步的目的,从而实现了降低体素数据同步的数据处理量的技术效果,进而解决了体素数据同步的数据处理量大的技术问题。
此处需要说明的是,上述单元和模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
实施例5
根据本发明实施例,还提供了一种用于实施上述体素数据的同步方法的服务器或终端。
图10是根据本发明实施例的一种终端的结构框图。如图10所示,该终端可以包括:一个或多个(图中仅示出一个)处理器101、存储器103、以及传输装置105。如图10所示,该终端还可以包括输入输出设备107。
其中,存储器103可用于存储软件程序以及模块,如本发明实施例中的体素数据的同步方法和装置对应的程序指令/模块,处理器101通过运行存储在存储器103内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的体素数据的同步方法。存储器103可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器103可进一步包括相对于处理器101远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置105用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置105包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置105为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器103用于存储应用程序。
处理器101可以通过传输装置105调用存储器103存储的应用程序,以执行下述步骤:
在虚拟现实场景中,第一客户端获取用于指示对目标区域中的体素执行操作的操作指示数据,其中,操作指示数据由虚拟现实设备触及体素产生,第一客户端与虚拟现实设备相关联;
第一客户端向服务器发送操作指示数据,以使服务器将操作指示数据发送至预定客户端集合,其中,预定客户端集合包括:第一客户端及与第一客户端关联的至少一个第二客户端;
第一客户端接收服务器发送的操作指示数据;
第一客户端根据接收到的操作指示数据对第一客户端对应的目标区域中的体素执行操作,得到与操作对应的体素数据。
处理器101还用于执行下述步骤:在服务器验证操作指示数据合法的情况下,第一客户端接收服务器发送的操作指示数据。
处理器101还用于执行下述步骤:第一客户端获取操作指示数据中的操作区域数据,其中,操作区域数据包括用于确定目标区域的参数;第一客户端获取根据操作区域数据确定的目标区域中的体素的体素状态数据,其中,体素状态数据用于指示体素的当前状态;第一客户端获取操作指示数据中的操作类型数据,其中,操作类型数据用于指示对体素待执行的操作的类型;第一客户端根据操作类型数据对体素状态数据进行修改,得到与操作对应的体素数据,其中,体素数据包括对体素状态数据进行修改得到的状态数据。
处理器101还用于执行下述步骤:在第一客户端向服务器发送操作指示数据,以使服务器将操作指示数据发送至预定客户端集合之后,第二客户端获取操作指示数据中的操作区域数据,其中,操作区域数据包括用于确定目标区域的参数;第二客户端获取根据操作区域数据确定的目标区域中的体素的体素状态数据,其中,体素状态数据用于指示体素的当前状态;第二客户端获取操作指示数据中的操作类型数据,其中,操作类型数据用于指示对体素待执行的操作的类型;第二客户端根据操作类型数据对体素状态数据进行修改,得到与操作对应的体素数据,其中,体素数据包括对体素状态数据进行修改得到的状态数据。
处理器101还用于执行下述步骤:在第一客户端根据接收到的操作指示数据对第一客户端对应的目标区域中的体素执行操作,得到与操作对应的体素数据所之后,第一客户端在虚拟现实场景中显示体素数据对应的体素。
采用本发明实施例,提供了一种体素数据的同步方法。通过第一客户端获取用于指示对目标区域中的体素执行操作的操作指示数据;第一客户端向服务器发送操作指示数据,以使服务器将操作指示数据发送至预定客户端集合,其中,预定客户端集合包括:第一客户端及与第一客户端关联的至少一个第二客户端;第一客户端接收服务器发送的操作指示数据;第一客户端根据接收到的操作指示数据对第一客户端对应的目标区域中的体素执行操作,得到与操作对应的体素数据的方式。由于本发明在实现体素数据同步时,传输的是未携带体素数据的操作指示数据,完全不涉及体素数据的传输,实现了在虚拟现实场景下,体素数据传输同步的目的,从而实现了降低体素数据同步的数据处理量的技术效果,进而解决了体素数据同步的数据处理量大的技术问题。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图10所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile InternetDevices,MID)、PAD等终端设备。图10其并不对上述电子装置的结构造成限定。例如,终端还可包括比图10中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图10所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例6
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行体素数据的同步方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
在虚拟现实场景中,第一客户端获取用于指示对目标区域中的体素执行操作的操作指示数据,其中,操作指示数据由虚拟现实设备触及体素产生,第一客户端与虚拟现实设备相关联;
第一客户端向服务器发送操作指示数据,以使服务器将操作指示数据发送至预定客户端集合,其中,预定客户端集合包括:第一客户端及与第一客户端关联的至少一个第二客户端;
第一客户端接收服务器发送的操作指示数据;
第一客户端根据接收到的操作指示数据对第一客户端对应的目标区域中的体素执行操作,得到与操作对应的体素数据。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在服务器验证操作指示数据合法的情况下,第一客户端接收服务器发送的操作指示数据。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:第一客户端获取操作指示数据中的操作区域数据,其中,操作区域数据包括用于确定目标区域的参数;第一客户端获取根据操作区域数据确定的目标区域中的体素的体素状态数据,其中,体素状态数据用于指示体素的当前状态;第一客户端获取操作指示数据中的操作类型数据,其中,操作类型数据用于指示对体素待执行的操作的类型;第一客户端根据操作类型数据对体素状态数据进行修改,得到与操作对应的体素数据,其中,体素数据包括对体素状态数据进行修改得到的状态数据。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在第一客户端向服务器发送操作指示数据,以使服务器将操作指示数据发送至预定客户端集合之后,第二客户端获取操作指示数据中的操作区域数据,其中,操作区域数据包括用于确定目标区域的参数;第二客户端获取根据操作区域数据确定的目标区域中的体素的体素状态数据,其中,体素状态数据用于指示体素的当前状态;第二客户端获取操作指示数据中的操作类型数据,其中,操作类型数据用于指示对体素待执行的操作的类型;第二客户端根据操作类型数据对体素状态数据进行修改,得到与操作对应的体素数据,其中,体素数据包括对体素状态数据进行修改得到的状态数据。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在第一客户端根据接收到的操作指示数据对第一客户端对应的目标区域中的体素执行操作,得到与操作对应的体素数据所之后,第一客户端在虚拟现实场景中显示体素数据对应的体素。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (14)
1.一种体素数据的同步方法,其特征在于,包括:
在虚拟现实场景中,第一客户端获取用于指示对目标区域中的体素执行操作的操作指示数据,其中,所述操作指示数据由虚拟现实设备触及所述体素产生,所述第一客户端与所述虚拟现实设备相关联;
所述第一客户端向服务器发送所述操作指示数据,以使所述服务器将所述操作指示数据发送至预定客户端集合,其中,所述预定客户端集合包括:所述第一客户端及与所述第一客户端关联的至少一个第二客户端;
所述第一客户端接收所述服务器发送的所述操作指示数据;
所述第一客户端根据接收到的所述操作指示数据对所述第一客户端对应的所述目标区域中的体素执行操作,得到与所述操作对应的体素数据;
其中,所述操作指示数据用于对当前操作的操作区域进行描述、对当前操作的操作类型进行描述、指示当前操作区域中的体素单元的状态。
2.根据权利要求1所述的方法,其特征在于,所述第一客户端接收所述服务器发送的所述操作指示数据包括:
在所述服务器验证所述操作指示数据合法的情况下,所述第一客户端接收所述服务器发送的所述操作指示数据。
3.根据权利要求1所述的方法,其特征在于,所述第一客户端根据接收到的所述操作指示数据对所述第一客户端对应的所述目标区域中的体素执行操作,得到与所述操作对应的体素数据包括:
所述第一客户端获取所述操作指示数据中的操作区域数据,其中,所述操作区域数据包括用于确定所述目标区域的参数;
所述第一客户端获取根据所述操作区域数据确定的所述目标区域中的体素的体素状态数据,其中,所述体素状态数据用于指示所述体素的当前状态;
所述第一客户端获取所述操作指示数据中的操作类型数据,其中,所述操作类型数据用于指示对所述体素待执行的操作的类型;
所述第一客户端根据所述操作类型数据对所述体素状态数据进行修改,得到与所述操作对应的所述体素数据,其中,所述体素数据包括对所述体素状态数据进行修改得到的状态数据。
4.根据权利要求1所述的方法,其特征在于,在所述第一客户端向所述服务器发送所述操作指示数据,以使所述服务器将所述操作指示数据发送至所述预定客户端集合之后,所述方法还包括:
所述第二客户端获取所述操作指示数据中的操作区域数据,其中,所述操作区域数据包括用于确定所述目标区域的参数;
所述第二客户端获取根据所述操作区域数据确定的所述目标区域中的体素的体素状态数据,其中,所述体素状态数据用于指示所述体素的当前状态;
所述第二客户端获取所述操作指示数据中的操作类型数据,其中,所述操作类型数据用于指示对所述体素待执行的操作的类型;
所述第二客户端根据所述操作类型数据对所述体素状态数据进行修改,得到与所述操作对应的所述体素数据,其中,所述体素数据包括对所述体素状态数据进行修改得到的状态数据。
5.根据权利要求3或4所述的方法,其特征在于,所述操作类型数据包括以下之一:
用于指示增加所述体素的体素网格的操作类型数据;
用于指示删除所述体素的体素网格的操作类型数据;
用于指示平滑所述体素的体素网格的操作类型数据。
6.根据权利要求1至4中任意一项所述的方法,其特征在于,在所述第一客户端根据接收到的所述操作指示数据对所述第一客户端对应的所述目标区域中的体素执行操作,得到与所述操作对应的体素数据之后,所述方法还包括:
所述第一客户端在所述虚拟现实场景中显示所述体素数据对应的体素。
7.根据权利要求1至4中任意一项所述的方法,其特征在于,所述第一客户端与所述至少一个第二客户端共同处于所述虚拟现实场景的预设坐标系下。
8.根据权利要求1至4中任意一项所述的方法,其特征在于,所述目标区域为以所述虚拟现实设备当前所触及的体素为中心的区域。
9.一种体素数据的同步装置,其特征在于,包括:
第一获取单元,用于在虚拟现实场景中,使第一客户端获取用于指示对目标区域中的体素执行操作的操作指示数据,其中,所述操作指示数据由虚拟现实设备触及所述体素产生,所述第一客户端与所述虚拟现实设备相关联;
发送单元,用于使所述第一客户端向服务器发送所述操作指示数据,以使所述服务器将所述操作指示数据发送至预定客户端集合,其中,所述预定客户端集合包括:所述第一客户端及与所述第一客户端关联的至少一个第二客户端;
第一接收单元,用于使所述第一客户端接收所述服务器发送的所述操作指示数据;
第二接收单元,用于使所述第一客户端根据接收到的所述操作指示数据对所述第一客户端对应的所述目标区域中的体素执行操作,得到与所述操作对应的体素数据;
其中,所述操作指示数据用于对当前操作的操作区域进行描述、对当前操作的操作类型进行描述、指示当前操作区域中的体素单元的状态。
10.根据权利要求9所述的装置,其特征在于,所述第一接收单元包括:
接收模块,用于在所述服务器验证所述操作指示数据合法的情况下,所述第一客户端接收所述服务器发送的所述操作指示数据。
11.根据权利要求9所述的装置,其特征在于,所述第二接收单元包括:
第一获取模块,用于使所述第一客户端获取所述操作指示数据中的操作区域数据,其中,所述操作区域数据包括用于确定所述目标区域的参数;
第二获取模块,用于使所述第一客户端获取根据所述操作区域数据确定的所述目标区域中的体素的体素状态数据,其中,所述体素状态数据用于指示所述体素的当前状态;
第三获取模块,用于使所述第一客户端获取所述操作指示数据中的操作类型数据,其中,所述操作类型数据用于指示对所述体素待执行的操作的类型;
修改模块,用于使所述第一客户端根据所述操作类型数据对所述体素状态数据进行修改,得到与所述操作对应的所述体素数据,其中,所述体素数据包括对所述体素状态数据进行修改得到的状态数据。
12.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第二获取单元,用于在所述第一客户端向所述服务器发送所述操作指示数据,以使所述服务器将所述操作指示数据发送至所述预定客户端集合之后,使所述第二客户端获取所述操作指示数据中的操作区域数据,其中,所述操作区域数据包括用于确定所述目标区域的参数;
第三获取单元,用于使所述第二客户端获取根据所述操作区域数据确定的所述目标区域中的体素的体素状态数据,其中,所述体素状态数据用于指示所述体素的当前状态;
第四获取单元,用于使所述第二客户端获取所述操作指示数据中的操作类型数据,其中,所述操作类型数据用于指示对所述体素待执行的操作的类型;
修改单元,用于使所述第二客户端根据所述操作类型数据对所述体素状态数据进行修改,得到与所述操作对应的所述体素数据,其中,所述体素数据包括对所述体素状态数据进行修改得到的状态数据。
13.根据权利要求11或12所述的装置,其特征在于,所述操作类型数据包括以下之一:
用于指示增加所述体素的体素网格的操作类型数据;
用于指示删除所述体素的体素网格的操作类型数据;
用于指示平滑所述体素的体素网格的操作类型数据。
14.根据权利要求9至12中任意一项所述的装置,其特征在于,所述装置还包括:
显示单元,用于在所述第一客户端根据接收到的所述操作指示数据对所述第一客户端对应的所述目标区域中的体素执行操作,得到与所述操作对应的体素数据之后,所述第一客户端在所述虚拟现实场景中显示所述体素数据对应的体素。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710309954.4A CN107172136B (zh) | 2017-05-04 | 2017-05-04 | 体素数据的同步方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710309954.4A CN107172136B (zh) | 2017-05-04 | 2017-05-04 | 体素数据的同步方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107172136A CN107172136A (zh) | 2017-09-15 |
CN107172136B true CN107172136B (zh) | 2018-07-03 |
Family
ID=59813624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710309954.4A Active CN107172136B (zh) | 2017-05-04 | 2017-05-04 | 体素数据的同步方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107172136B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109453519B (zh) * | 2018-11-09 | 2022-02-22 | 网易(杭州)网络有限公司 | 一种地形的创建方法和装置 |
CN109739472A (zh) * | 2018-12-05 | 2019-05-10 | 苏州蜗牛数字科技股份有限公司 | 一种地形潮湿和风干效果的渲染方法 |
CN110639206A (zh) * | 2019-09-20 | 2020-01-03 | 北京代码乾坤科技有限公司 | 游戏数据同步方法、装置、存储介质及处理器 |
CN111714895B (zh) * | 2020-06-29 | 2021-07-23 | 天津亚克互动科技有限公司 | 游戏数据的处理方法及装置、存储介质、计算机设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294439A (zh) * | 2013-06-28 | 2013-09-11 | 华为技术有限公司 | 一种图像更新方法、***及装置 |
CN103501287A (zh) * | 2013-09-03 | 2014-01-08 | 网易(杭州)网络有限公司 | 一种游戏运行中确定动作命中对象的方法和设备 |
CN106385587A (zh) * | 2016-09-14 | 2017-02-08 | 三星电子(中国)研发中心 | 分享虚拟现实视角的方法、装置及*** |
CN106534125A (zh) * | 2016-11-11 | 2017-03-22 | 厦门汇鑫元软件有限公司 | 一种基于局域网实现vr多人交互***的方法 |
CN106600515A (zh) * | 2016-11-07 | 2017-04-26 | 深圳市金立通信设备有限公司 | 一种虚拟现实低延迟处理方法及终端 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017024142A1 (en) * | 2015-08-04 | 2017-02-09 | Google Inc. | Input via context sensitive collisions of hands with objects in virtual reality |
WO2017058826A1 (en) * | 2015-09-28 | 2017-04-06 | Google Inc. | Sharing images and image albums over a communication network |
-
2017
- 2017-05-04 CN CN201710309954.4A patent/CN107172136B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294439A (zh) * | 2013-06-28 | 2013-09-11 | 华为技术有限公司 | 一种图像更新方法、***及装置 |
CN103501287A (zh) * | 2013-09-03 | 2014-01-08 | 网易(杭州)网络有限公司 | 一种游戏运行中确定动作命中对象的方法和设备 |
CN106385587A (zh) * | 2016-09-14 | 2017-02-08 | 三星电子(中国)研发中心 | 分享虚拟现实视角的方法、装置及*** |
CN106600515A (zh) * | 2016-11-07 | 2017-04-26 | 深圳市金立通信设备有限公司 | 一种虚拟现实低延迟处理方法及终端 |
CN106534125A (zh) * | 2016-11-11 | 2017-03-22 | 厦门汇鑫元软件有限公司 | 一种基于局域网实现vr多人交互***的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107172136A (zh) | 2017-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107172136B (zh) | 体素数据的同步方法和装置 | |
CN106215419B (zh) | 碰撞控制方法及装置 | |
US7445549B1 (en) | Networked portable and console game systems | |
US10176278B2 (en) | Simulation of the physical behavior of an object in a 3D scene divided into a plurality of zones | |
CN104376194B (zh) | 用户生成的内容的交叉平台分享 | |
CN109885367B (zh) | 互动聊天实现方法、装置、终端和存储介质 | |
CN108273265A (zh) | 虚拟对象的显示方法及装置 | |
CN105915766B (zh) | 基于虚拟现实的控制方法和装置 | |
CN107850948A (zh) | 混合现实社交 | |
CN102204207A (zh) | 在虚拟环境中包含web内容 | |
CN105117296B (zh) | 同步游戏中对象的状态的方法和*** | |
CN108057249A (zh) | 一种业务数据处理方法和装置 | |
JP2018028789A (ja) | サーバ、情報の送信方法及びそのプログラム | |
JP6864753B2 (ja) | オブジェクト移動方法及び装置並びに記憶媒体、電子装置 | |
CN106201259A (zh) | 一种虚拟现实***中分享全景影像的方法和装置 | |
CN105353871A (zh) | 一种虚拟现实场景中目标物体的控制方法及装置 | |
JP2019198526A (ja) | ゲームシステム、およびゲームプログラム | |
CN106575158A (zh) | 环境映射虚拟化机构 | |
JP7216493B2 (ja) | ゲームシステム及びプログラム | |
JP2019198636A (ja) | ゲームシステム、およびゲームプログラム | |
JP2024016017A (ja) | 情報処理システム、情報処理装置およびプログラム | |
CN113034651B (zh) | 互动动画的播放方法、装置、设备及存储介质 | |
JP2022010424A (ja) | ゲームプログラム、ゲーム装置、およびゲームシステム | |
CN114669046A (zh) | 一种控制方法和控制装置 | |
JP6783345B2 (ja) | ゲームシステム、およびゲームプログラム |
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 |