游戏数据处理方法、装置、电子设备及可读存储介质与流程

文档序号:33468452发布日期:2023-03-15 07:30阅读:46来源:国知局
游戏数据处理方法、装置、电子设备及可读存储介质与流程

1.本发明涉及游戏领域,具体而言,涉及一种游戏数据处理方法、装置、电子设备及可读存储介质。


背景技术:

2.在3d游戏中,通常一个游戏角色是由多个分块模型组成的。而为了实现整个游戏角色的渲染或者任一分块模型被别的游戏角色使用时的渲染,必须保证资源文件中包含了整个游戏角色对应的顶点数据和索引数据、以及各个分块模型自身对应的顶点数据和索引数据。
3.但是,这会导致游戏发布后,资源文件较大,非常占据用户的存储空间。


技术实现要素:

4.本发明的目的在于提供一种游戏数据处理方法、装置、电子设备及可读存储介质,以改善现有技术存在的问题。
5.本发明的实施例可以这样实现:
6.第一方面,本发明提供一种游戏数据处理方法,包括:
7.获取多个分块模型、以及每个所述分块模型的子顶点数据和子索引数据;其中,所述多个分块模型属于第一游戏模型的不同部位,所述子索引数据表征对应的分块模型中各个渲染单元的位置;
8.基于所述子顶点数据中的顶点数量,分别对每个所述子索引数据进行调整,得到每个目标子索引数据;所述目标子索引数据表征对应的分块模型中各个渲染单元在所述第一游戏模型中的位置;
9.基于全部所述目标子索引数据,获得所述第一游戏模型的目标索引数据;
10.其中,所述目标索引数据和所述第一游戏模型的顶点数据共同用于渲染所述第一游戏模型以得到第一游戏角色;所述顶点数据和任一所述目标子索引数据共同用于渲染所述目标子索引数据对应的分块模型;所述顶点数据是基于全部所述子顶点数据得到的。
11.在可选的实施方式中,所述顶点数据是通过以下方式得到的:
12.基于全部所述分块模型,进行模型合并得到所述第一游戏模型;
13.将全部所述子顶点数据进行组合,得到所述第一游戏模型的顶点数据。
14.在可选的实施方式中,所述多个分块模型按照设定顺序排列,所述子顶点数据包括若干顶点;所述子索引数据包括若干索引值;
15.所述基于所述子顶点数据中的顶点数量,分别对每个所述子索引数据进行调整,得到每个目标子索引数据的步骤,包括:
16.针对任一所述子索引数据,确定所有前序分块模型中的顶点数量和;所述前序分块模型为位于所述子索引数据所对应分块模型之前的任一分块模型;
17.将所述子索引数据中的每个所述索引值均增加所述顶点数量和,得到所述目标子
索引数据;
18.遍历每个所述子索引数据,得到每个所述目标子索引数据。
19.在可选的实施方式中,所述方法还包括:
20.利用所述目标索引数据和所述顶点数据,渲染所述第一游戏模型;
21.当第二游戏角色复用任一所述分块模型时,利用所述顶点数据和所述分块模型对应的目标子索引数据,渲染所述分块模型以得到所述第二游戏角色。
22.第二方面,本发明提供一种游戏数据处理装置,包括:
23.获取模块,用于获取多个分块模型、以及每个所述分块模型的子顶点数据和子索引数据;其中,所述多个分块模型属于第一游戏模型的不同部位,所述子索引数据表征对应的分块模型中各个渲染单元的位置;
24.处理模块,用于:
25.基于所述子顶点数据中的顶点数量,分别对每个所述子索引数据进行调整,得到每个目标子索引数据;所述目标子索引数据表征对应的分块模型中各个渲染单元在所述第一游戏模型中的位置;
26.基于全部所述目标子索引数据,获得所述第一游戏模型的目标索引数据;其中,所述目标索引数据和所述第一游戏模型的顶点数据共同用于渲染所述第一游戏模型;所述顶点数据和任一所述目标子索引数据共同用于渲染所述目标子索引数据对应的分块模型;所述顶点数据是基于全部所述子顶点数据得到的。
27.在可选的实施方式中,所述处理模块还用于通过以下方式得到所述顶点数据:
28.基于全部所述分块模型,进行模型合并得到所述第一游戏模型;
29.将全部所述子顶点数据进行组合,得到所述第一游戏模型的顶点数据。
30.在可选的实施方式中,所述多个分块模型按照设定顺序排列,所述子顶点数据包括若干顶点;所述子索引数据包括若干索引值;所述处理模块,具体用于:
31.针对任一所述子索引数据,确定所有前序分块模型中的顶点数量和;所述前序分块模型为位于所述子索引数据所对应分块模型之前的任一分块模型;
32.将所述子索引数据中的每个所述索引值均增加所述顶点数量和,得到所述目标子索引数据;
33.遍历每个所述子索引数据,得到每个所述目标子索引数据。
34.在可选的实施方式中,所述装置还包括渲染模块,用于:
35.利用所述目标索引数据和所述顶点数据,渲染所述第一游戏模型;
36.当第二游戏角色复用任一所述分块模型时,利用所述顶点数据和所述分块模型对应的目标子索引数据,渲染所述分块模型以得到所述第二游戏角色。
37.第三方面,本发明提供一种电子设备,包括:存储器和处理器,所述存储器存储有所述处理器可执行的机器可读指令,当所述电子设备运行时所述处理器执行所述机器可读指令以实现如前述实施方式中任一项所述的游戏数据处理方法。
38.第四方面,本发明提供一种可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现前述实施方式中任一项所述的游戏数据处理方法。
39.与现有技术相比,本发明实施例提供了一种游戏数据处理方法、装置、电子设备及可读存储介质,首先,获取第一游戏模型对应的多个分块模型、以及每个分块模型的子顶点
数据和子索引数据。再基于子顶点数据中的顶点数量,分别对每个子索引数据进行调整得到每个目标子索引数据。最后基于全部目标子索引数据,获得第一游戏模型的目标索引数据。由于,顶点数据能够基于全部子顶点数据得到,且目标子索引数据表征对应的分块模型中各个渲染单元在第一游戏模型中的位置。因此,相较于现有技术,本方案只需要目标索引数据、全部目标子索引数据、顶点数据就能实现第一游戏模型或者任一分块模型的渲染,减少了渲染所需的资源文件中的数据冗余,进而减少了资源文件占据的存储空间的大小。
附图说明
40.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
41.图1为本发明实施例提供的一种游戏数据处理方法的流程示意图之一。
42.图2为本发明实施例提供的一种游戏数据处理方法的流程示意图之二。
43.图3为本发明实施例提供的一种游戏数据处理方法的流程示意图之三。
44.图4为本发明实施例提供的一种游戏数据处理装置的结构示意图。
45.图5为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
46.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
47.因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
48.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
49.此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
50.需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
51.在此先对本方案涉及的专业名称或者专业术语进行介绍:
52.(1)顶点数据:3d模型一般包括若干渲染单元(形状为三角形或者四边形)。假设渲染单元为三角形时,每个渲染单元是由至少3个顶点围成的三角面。因而,在三维渲染中,3d模型的顶点数据一般包括了3d模型中每个顶点的渲染属性,渲染属性包括坐标、纹理坐标、法线、切线等数据。
53.(2)索引数据:索引数据可以包括3d模型中每个渲染单元对应的所有顶点的序号。
54.在3d游戏中,利用多个不同角色的不同部位组成一个新的角色是一种常见的游戏
形式,例如:对于利用游戏角色a的头部、身体、尾巴,另外的游戏角色b也可以由游戏角色a的头部、身体、尾巴中的一种或多种组成。因而,不同游戏部位组合成新游戏角色的形式会有很多种。
55.在这种情况下,在3d建模过程中,如果每个游戏部位都单独设计一个3d模型,头部、身体、尾巴就需要设计三个分块模型,这样则会增加渲染时的drawcall(即cpu调用gpu的次数)数量。如果每种分块组合都做一个模型,则会有很多数据冗余。
56.有鉴于此,本发明实施例提供一种游戏数据处理,由于,顶点数据能够基于全部子顶点数据得到,且目标子索引数据表征对应的分块模型中各个渲染单元在第一游戏模型中的位置。因此,本方案只需要目标索引数据、全部目标子索引数据、顶点数据就能实现第一游戏模型或者任一分块模型的渲染,减少了渲染所需的资源文件中的数据冗余,进而减少了资源文件占据的存储空间的大小。以下通过实施例,并配合所附附图,进行详细说明。
57.请参考图1,图1为本发明实施例提供的一种游戏数据处理方法的流程示意图,该方法包括以下步骤:
58.s110、获取多个分块模型、以及每个分块模型的子顶点数据和子索引数据。
59.在本实施例中,多个分块模型属于第一游戏模型的不同部位。可以理解,分块模型是一种包括若干个渲染单元的3d模型,并且可以基于全部分块模型,进行模型合并得到完整的第一游戏模型,也就是,第一游戏模型属于一个合并得到的整体模型。
60.可以理解,子顶点数据可以表征对应的分块模型中每个顶点的渲染属性,渲染属性包括坐标、纹理坐标、法线、切线等。子索引数据可以表征对应的分块模型中各个渲染单元的位置。
61.s120、基于子顶点数据中的顶点数量,分别对每个子索引数据进行调整,得到每个目标子索引数据。
62.可以理解,在调整之后,目标子索引数据可以表征对应的分块模型中各个渲染单元在第一游戏模型中的位置。
63.s130、基于全部目标子索引数据,获得第一游戏模型的目标索引数据。
64.可以理解,可以将全部子顶点数据进行组合,即可得到第一游戏模型整体的顶点数据,然后就可以将全部子顶点数据删除。
65.可以将所有分块模型、第一游戏模型、目标索引数据、顶点数据以及全部目标子索引数据保存下来,并且为每个分块模型指定了第一游戏模型对应的资源路径,以保证复用某一分块模型进行渲染时:加载该分块模型的时候,也加载第一游戏模型来获得第一游戏模型中的顶点数据,进而渲染完成得到另一游戏角色。
66.在本实施例中,目标索引数据和顶点数据可以共同用于渲染第一游戏模型得到第一游戏角色。顶点数据和任一目标子索引数据可以共同用于渲染该目标子索引数据对应的分块模型。
67.也就是,本方案要实现第一游戏模型或者任一分块模型的渲染,仅需要目标索引数据、顶点数据以及全部目标子索引数据,避免了数据冗余。
68.本发明实施例提供的一种游戏数据处理方法,首先获取第一游戏模型对应的多个分块模型、以及每个分块模型的子顶点数据和子索引数据,此处的子索引数据表征对应的分块模型中各个渲染单元的位置。再基于子顶点数据中的顶点数量,分别对每个子索引数
据进行调整得到每个目标子索引数据。最后基于全部目标子索引数据,获得第一游戏模型的目标索引数据。并且,正是由于目标子索引数据表征对应的分块模型中各个渲染单元在第一游戏模型中的位置,因此本方案能够基于目标索引数据、所有的目标子索引数据、顶点数据就能实现第一游戏模型或者任一分块模型的渲染,减少了渲染所需的资源文件中的数据冗余,进而减少了资源文件占据的存储空间的大小,并且,由于降低了数据冗余,也能提高后续的渲染效率。
69.在可选的实施方式中,可以先给每个分块模型设置排列序号,使得多个分块模型按照设定顺序排列,以便于得到对子索引数据进行调整得到对应的目标子索引数据。在图1的基础上,请参见图2,对应地,上述步骤s120的子步骤可以包括:
70.s121、针对任一子索引数据,确定所有前序分块模型中的顶点数量和。
71.在本实施例中,前序分块模型可以代表位于子索引数据所对应分块模型之前的任一分块模型。每个子顶点数据均包括了若干顶点,不同子顶点数据中的顶点数量可能不同。
72.因此,针对某个子索引数据,可以利用其对应的每个前序分块模型对应的子顶点数据,计算每个前序分块模型中的顶点数量,进而得到所有前序分块模型的顶点数量和。
73.s122、将子索引数据中的每个索引值均增加顶点数量和,得到目标子索引数据。
74.在本实施例中,子索引数据可以包括若干索引值,也就是上述所说的顶点的序号。当渲染单元为三角形时,每三个索引值可以确定一个渲染单元的位置;同样地,当渲染单元为四边形时,每四个索引值可以确定一个渲染单元的位置。
75.s123、遍历每个子索引数据,得到每个目标子索引数据。
76.由于子索引数据只能表示对应的分块模型中各个渲染单元在该分块模型中的位置,因此,将子索引数据中的每个索引值均增加顶点数量和,才能使得得到的目标子索引数据能够表示对应的分块模型中各个渲染单元在第一游戏模型中的位置。
77.以下以一个简单地示例,对获得目标子索引数据的过程进行说明。
78.假设分块模型的数量的3个,按照顺序排列后分别是分块模型m1、分块模型m2、分块模型m3。对应地,子顶点数据为:子顶点数据v1、子顶点数据v2、子顶点数据v3;子索引数据为:子索引数据i1、子索引数据i2、子索引数据i3。
79.假设根据确定出子顶点数据v1、子顶点数据v2、子顶点数据v3各自对应的顶点数量为150、300、100。由于索引数据中索引值是从0开始的,对应地,子索引数据i1包括的索引值为0~149、子索引数据i2包括的索引值为0~299、子索引数据i3包括的索引值为0~99。
80.(1)对于子索引数据i1:
81.其不存在前序分块模型,因此,其对应的目标子索引数据i1

包括的索引值也为0~149。
82.(2)对于子索引数据i2:
83.其存在1个前序分块模型,即分块模型m1,对应地,子索引数据i2对应的所有前序分块模型的顶点数量和为150。也就是将子索引数据i2中的每个索引值均增加150,得到的目标子索引数据i2

包括的索引值也为150~449。
84.(3)对于子索引数据i3:
85.其存在2个前序分块模型,即分块模型m1、分块模型m2,对应地,子索引数据i3对应的所有前序分块模型的顶点数量和为150+300=450。也就是将子索引数据i3中的每个索引
值均增加450,得到的目标子索引数据i3

包括的索引值也为450~549。
86.如此,就得到了目标子索引数据i1

、目标子索引数据i2

、目标子索引数据i3

,各自对应的索引值为0~149、150~449、450~549。
87.因此,分块模型m1、分块模型m2、分块模型m3组合即为第一游戏模型m,第一游戏模型m中包括的所有顶点数量即为550,因此,目标子索引数据i1

、i2

、i3

能够分别体现分块模型m1、m2、m3各自包括的渲染单元在第一游戏模型m中的位置。
88.需要说明的是,上述举例仅为示例,在实际应用中,分块模型的数量、及其包含的顶点数量等以实际应用情况为准,在此不做限定。
89.在可选的实施方式中,当需要实现第一游戏模型或者某个分块模型的渲染时,上述方法还可以包括:
90.s140、利用目标索引数据和顶点数据,渲染第一游戏模型。
91.s150、当第二游戏角色复用任一分块模型时,利用顶点数据和分块模型对应的目标子索引数据,渲染分块模型。
92.当第二游戏角色复用第一游戏模型中的任一分块模型(假设分块模型a)时,也就是第二游戏角色对应的第二游戏模型是由其他游戏模型的分块模型组合而来的,此时第二游戏模型的渲染可以是分块进行的,那么对于分块模型a来讲,渲染就需要用到第一游戏模型的顶点数据和分块模型a对应的目标子索引数据来渲染该分块模型。
93.需要说明的是,上述方法实施例中各个步骤的执行顺序不以附图所示为限制,各步骤的执行顺序以实际应用情况为准。
94.为了执行上述方法实施例及各个可能的实施方式中的相应步骤,下面分别给出一种游戏数据处理装置的实现方式。
95.请参见图4,图4示出了本发明实施例提供的游戏数据处理装置200的结构示意图。该装置包括:获取模块210、处理模块220、渲染模块230。
96.获取模块210,用于获取多个分块模型、以及每个分块模型的子顶点数据和子索引数据;其中,多个分块模型属于第一游戏模型的不同部位,子索引数据表征对应的分块模型中各个渲染单元的位置;
97.处理模块220,用于:基于子顶点数据中的顶点数量,分别对每个子索引数据进行调整,得到每个目标子索引数据;目标子索引数据表征对应的分块模型中各个渲染单元在第一游戏模型中的位置;基于全部目标子索引数据,获得第一游戏模型的目标索引数据;其中,目标索引数据和第一游戏模型的顶点数据共同用于渲染第一游戏模型以得到第一游戏角色;顶点数据和任一目标子索引数据共同用于渲染目标子索引数据对应的分块模型;顶点数据是基于全部子顶点数据得到的。
98.在可选的实施方式中,处理模块220还可以用于通过以下方式得到顶点数据:基于全部分块模型,进行模型合并得到第一游戏模型;将全部子顶点数据进行组合,得到第一游戏模型的顶点数据。
99.在可选的实施方式中,多个分块模型按照设定顺序排列,子顶点数据包括若干顶点;子索引数据包括若干索引值。处理模块220,具体可以用于:针对任一子索引数据,确定所有前序分块模型中的顶点数量和;前序分块模型为位于子索引数据所对应分块模型之前的任一分块模型;将子索引数据中的每个索引值均增加顶点数量和,得到目标子索引数据;
遍历每个子索引数据,得到每个目标子索引数据。
100.在可选的实施方式中,游戏数据处理装置200还可以包括渲染模块230,用于:利用目标索引数据和顶点数据,渲染第一游戏模型;当第二游戏角色复用任一分块模型时,利用顶点数据和分块模型对应的目标子索引数据,渲染分块模型以得到第二游戏角色。
101.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的游戏数据处理装置200的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
102.请参见图5,图5为本发明实施例提供的一种电子设备的结构示意图。该电子设备300包括处理器310、存储器320和总线330,处理器310通过总线330与存储器320连接。
103.存储器320可用于存储软件程序,例如,图4所示的游戏数据处理装置200。其中,存储器320可以是但不限于,随机存取存储器(random access memory,ram),只读存储器(read only memory,rom),闪存存储器(flash),可编程只读存储器(programmable read-only memory,prom),可擦除只读存储器(erasable programmable read-only memory,eprom),电可擦除只读存储器(electric erasable programmable read-only memory,eeprom)等。
104.处理器310可以是一种集成电路芯片,具有信号处理能力。该处理器310可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
105.该电子设备300可以是但不限于个人电脑、服务器、虚拟机等。存储器320存储有处理器310可执行的机器可读指令。处理器310执行机器可读指令时,实现上述实施例揭示的游戏数据处理方法。
106.可以理解,图5所示的结构仅为示意,电子设备300还可以包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。图5中所示的各组件可以采用硬件、软件或其组合实现。
107.本发明实施例还提供一种可读存储介质,该可读存储介质上存储有计算机程序,该计算机程序被处理器运行时实现上述实施例揭示的游戏数据处理方法。该可读存储介质可以是但不限于:u盘、移动硬盘、rom、ram、prom、eprom、eeprom、flash磁碟或者光盘等各种可以存储程序代码的介质。
108.综上,本发明实施例提供了一种游戏数据处理方法、装置、电子设备及可读存储介质,首先,获取第一游戏模型对应的多个分块模型、以及每个分块模型的子顶点数据和子索引数据;子索引数据表征对应的分块模型中各个渲染单元的位置。再基于子顶点数据中的顶点数量,分别对每个子索引数据进行调整得到每个目标子索引数据;目标子索引数据表征对应的分块模型中各个渲染单元在第一游戏模型中的位置。最后基于全部目标子索引数据,获得第一游戏模型的目标索引数据。并且,顶点数据能够基于全部子顶点数据得到,如此,就能够利用目标索引数据和顶点数据来渲染第一游戏模型,同时也能利用顶点数据和任一目标子索引数据来渲染该目标子索引数据对应的分块模型。相较于现有技术,本方案
只需要目标索引数据、所有的目标子索引数据、顶点数据就能实现第一游戏模型或者任一分块模型的渲染,减少了渲染所需的资源文件中的数据冗余,进而减少了资源文件占据的存储空间的大小,并且,由于降低了数据冗余,也能提高后续的渲染效率。
109.以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1