CN112669419A - 用于渲染的方法、中央处理器、图像处理器、***和存储介质 - Google Patents
用于渲染的方法、中央处理器、图像处理器、***和存储介质 Download PDFInfo
- Publication number
- CN112669419A CN112669419A CN202011532554.8A CN202011532554A CN112669419A CN 112669419 A CN112669419 A CN 112669419A CN 202011532554 A CN202011532554 A CN 202011532554A CN 112669419 A CN112669419 A CN 112669419A
- Authority
- CN
- China
- Prior art keywords
- data
- skeleton
- bone
- rendered
- world
- 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.)
- Pending
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 106
- 238000000034 method Methods 0.000 title claims abstract description 67
- 239000011159 matrix material Substances 0.000 claims abstract description 211
- 210000000988 bone and bone Anatomy 0.000 claims abstract description 107
- 210000002805 bone matrix Anatomy 0.000 claims abstract description 67
- 238000011176 pooling Methods 0.000 claims abstract description 17
- 238000004590 computer program Methods 0.000 claims description 7
- 238000003491 array Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本申请实施例提供用于渲染的方法、中央处理器、图像处理器、***和存储介质,该方法包括获取待渲染的多个相同的骨骼动画模型的顶点数据以及与顶点数据关联的索引数据;获取待渲染的多个相同的骨骼动画模型中每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据,并将每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据存储到对应的数组中;向图像处理器发送合批渲染指令,其中,合批渲染指令包括所述顶点数据、索引数据、世界矩阵数组、骨骼矩阵数组以及每个骨骼动画模型的索引号。本申请实施例通过将多个相同的骨骼动画模型的数据存储到对应的数组中,能够有效减少渲染指令的数量,从而提高渲染效率。
Description
技术领域
本申请涉及图像处理领域,具体而言,涉及用于渲染的方法、中央处理器、图像处理器、***和存储介质。
背景技术
在三维游戏中,运动的角色是必不可少的一个模块,每个角色由多个模型组成,每个模型有自己的骨骼动画,在对角色进行渲染时,每个模型至少需要提交一次渲染,如果待渲染的角色数量较多,提交渲染的次数也会很大,从而影响游戏运行帧率。
为了提高游戏运行帧率,较少DrawCall(渲染指令)数量,现有的方案主要采用创建贴图的方式来记录骨骼动画模型的世界坐标、骨骼矩阵数据,当渲染骨骼动画模型时,将该贴图传入GPU(图形处理器,Graphics Processing Unit),在GPU中,通过采样贴图数据,获取模型的骨骼矩阵、世界坐标数据,从而达到合批渲染骨骼动画模型的目的,减少DrawCall数量。
而生成贴图耗时较长,模型渲染时需要额外读取一种贴图,虽然减少了DrawCall数量,但是增加了CPU端的运行时间,以及增加了GPU端的贴图采样消耗,不一定能达到提高游戏帧率的目的,因此,在对骨骼动画模型进行渲染的过程中,如何有效地减少DrawCall数量,提高游戏运行帧率成为亟待解决的问题。
发明内容
本申请实施例的目的在于提供用于渲染的方法、中央处理器、图像处理器、***和存储介质,能够有效地减少DrawCall数量。
第一方面,本申请实施例提供一种用于渲染的方法,应用于中央处理器,包括:获取待渲染的多个相同的骨骼动画模型的顶点数据以及与所述顶点数据关联的索引数据;获取所述待渲染的多个相同的骨骼动画模型中每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据,并将所述每个骨骼动画模型的世界矩阵数据存储到世界矩阵数组中,将所述每个骨骼动画模型的骨骼矩阵数据存储到骨骼矩阵数组中;向图像处理器发送合批渲染指令,其中,所述合批渲染指令包括所述顶点数据、所述索引数据、所述世界矩阵数组、所述骨骼矩阵数组以及每个骨骼动画模型的索引号,所述每个骨骼动画模型的索引号用于所述图像处理器从所述世界矩阵数组和所述骨骼矩阵数组中分别获取所述每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据。
在上述实现过程中,通过将待渲染的多个相同的骨骼动画模型中每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据存入世界矩阵数组和骨骼矩阵数组中,图像处理器并利用每个骨骼动画模型的索引号从世界矩阵数组和骨骼矩阵数组中分别获取所述每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据,从而减少了DrawCall数量,实现了多个相同的骨骼动画模型的合批渲染,进一步提高游戏运行帧率。
结合第一方面,在一种实施方式中,所述待渲染的多个相同的骨骼动画模型的索引号分别为0至n-1,其中,n表示所述待渲染的多个相同的骨骼动画模型的模型数量。
在上述实现过程中,通过每个骨骼动画模型的索引号从世界矩阵数组和骨骼矩阵数组中分别获取所述每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据,从而可以使图像处理器从世界矩阵数组和骨骼矩阵数组中获取每个待渲染模型的世界矩阵数据和骨骼矩阵数据,进一步实现每个模型的渲染。
结合第一方面,在另一种实施方式中,所述待渲染的多个相同的骨骼动画模型的数量最大值是由所述图像处理器的处理性能确定的。
在上述实现过程中,图像处理器的处理性能决定了待渲染模型的合批数量。
第二方面,本申请实施例提供了一种用于渲染的方法,应用于图像处理器,包括:接收中央处理器发送的合批渲染指令,其中,所述合批渲染指令包括待渲染的多个相同的骨骼动画模型的顶点数据、与所述顶点数据关联的索引数据、存储着所述待渲染的多个相同的骨骼动画模型中每个骨骼动画模型的世界矩阵数据的世界矩阵数组、存储着所述待渲染的多个相同的骨骼动画模型中每个骨骼动画模型的骨骼矩阵数据的骨骼矩阵数组以及所述待渲染的多个相同的骨骼动画模型中每个骨骼动画模型的索引号;根据所述每个骨骼动画模型的索引号从所述世界矩阵数组和所述骨骼矩阵数组中分别获取所述每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据;根据所述顶点数据、与所述顶点数据关联的索引数据以及所述每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据对所述每个骨骼动画模型进行渲染。
在上述实现过程中,图像处理器能够对中央处理器一次提交的数据对多个相同的骨骼动画模型进行渲染,从而减少了DrawCall数量,实现了模型的合批渲染,提高了渲染效率。
结合第二方面,在一种实施方式中,所述待渲染的多个相同的骨骼动画模型索引号分别为0至n-1,其中,n表示所述待渲染的多个相同的骨骼动画模型的模型数量。
在上述实现过程中,图像处理器能够从世界矩阵数组和骨骼矩阵数组中获取每个待渲染模型的世界矩阵数据和骨骼矩阵数据,进一步实现每个模型的渲染。
结合第二方面,在另一种实施方式中,所述待渲染的多个相同的骨骼动画模型的数量最大值是由所述图像处理器的处理性能确定的。
第三方面,本申请实施例提供了一种中央处理器,包括:获取单元和处理单元;所述获取单元用于获取待渲染的多个相同的骨骼动画模型的顶点数据以及与所述顶点数据关联的索引数据;所述获取单元还用于获取所述待渲染的多个相同的骨骼动画模型中每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据,并将所述每个骨骼动画模型的世界矩阵数据存储到世界矩阵数组中,将所述每个骨骼动画模型的骨骼矩阵数据存储到骨骼矩阵数组中;所述处理单元用于向图像处理器发送合批渲染指令,其中,所述合批渲染指令包括所述顶点数据、所述索引数据、所述世界矩阵数组、所述骨骼矩阵数组以及每个骨骼动画模型的索引号,所述每个骨骼动画模型的索引号用于所述图像处理器从所述世界矩阵数组和所述骨骼矩阵数组中分别获取所述每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据。
结合第三方面,在一种实施方式中,所述待渲染的多个相同的骨骼动画模型索引号分别为0至n-1,其中,n表示所述待渲染的多个相同的骨骼动画模型的模型数量。
结合第三方面,在另一种实施方式中,所述待渲染的多个相同的骨骼动画模型的数量最大值是由所述图像处理器的处理性能确定的。
第四方面,本申请实施例提供了一种图像处理器,包括:指令获取单元和图像处理单元;所述指令获取单元用于接收中央处理器发送的合批渲染指令,其中,所述合批渲染指令包括待渲染的多个相同的骨骼动画模型的顶点数据、与所述顶点数据关联的索引数据、存储着所述待渲染的多个相同的骨骼动画模型中每个骨骼动画模型的世界矩阵数据的世界矩阵数组、存储着所述待渲染的多个相同的骨骼动画模型中每个骨骼动画模型的骨骼矩阵数据的骨骼矩阵数组以及所述待渲染的多个相同的骨骼动画模型中每个骨骼动画模型的索引号;所述指令获取单元还用于根据所述每个骨骼动画模型的索引号从所述世界矩阵数组和所述骨骼矩阵数组中分别获取所述每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据;所述图像处理单元用于根据所述顶点数据、与所述顶点数据关联的索引数据以及所述每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据对所述每个骨骼动画模型进行渲染。
结合第四方面,在一种实施方式中,所述待渲染的多个相同的骨骼动画模型索引号分别为0至n-1,其中,n表示所述待渲染的多个相同的骨骼动画模型的模型数量。
结合第四方面,在另一种实施方式中,所述待渲染的多个相同的骨骼动画模型的数量最大值是由所述图像处理器的处理性能确定的。
第五方面,本申请实施例提供了一种中央处理器包括:处理模块、存储模块和总线,所述处理模块通过所述总线与所述储模块相连,所述储模块存储有计算机可读取指令,当所述计算机可读取指令由所述处理模块执行时,用于实现如上述第一方面提供的所述方法中的步骤。
第六方面,本申请实施例提供了一种图像处理器,包括:处理模块、存储模块和总线,所述处理模块通过所述总线与所述储模块相连,所述储模块存储有计算机可读取指令,当所述计算机可读取指令由所述处理模块执行时,用于实现如上述第二方面提供的所述方法中的步骤。
第七方面,本申请实施例提供了一种用于渲染的***,包括:中央处理器、图像处理器;所述图像处理器包括世界矩阵数组寄存器和骨骼矩阵信息数组寄存器,其中,所述世界矩阵数组寄存器用于存储待渲染的每个骨骼动画模型的世界矩阵数据,所述骨骼矩阵数组寄存器用于存储待渲染的每个骨骼动画模型的骨骼矩阵数据;所述中央处理器用于实现如上述第一方面提供的所述方法中的步骤,所述图像处理器用于实现如上述第二方面提供的所述方法中的步骤。
第八方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被服务器执行时实现如上述第一方面以及第二方面提供的所述方法中的步骤。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种用于中央处理器的渲染方法流程图;
图2为本申请实施例提供的一种用于图像处理器的渲染方法流程图;
图3为本申请实施例提供的一种用于渲染的中央处理器结构示意图;
图4为本申请实施例提供的一种用于渲染的图像处理器结构示意图;
图5为本申请实施例提供的一种中央处理器结构示意图;
图6为本申请实施例提供的一种图像处理器结构示意图;
图7为本申请实施例提供的一种用于渲染的***结构示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
下面结合图1和图2描述本申请实施例的用于渲染的方法。
在创建具体合批功能的shader(着色器)程序时,在该shader程序中,在图像处理器中添加模型世界矩阵数组寄存器和模型骨骼矩阵数组寄存器,模型世界矩阵数组寄存器用于存储每个模型的世界矩阵数据,模型骨骼矩阵数组寄存器用于存储每个模型的骨骼矩阵数据。
需要说明的是,shader程序就是专门用来渲染3D图形的一种技术,通过shader程序,程序设计人员可以自己编写显卡渲染画面的算法,使画面更漂亮、更逼真。
请参照图1,图1为本申请实施例提供的一种用于中央处理器的渲染方法流程图,该方法可以应用于图3所示的用于渲染的中央处理器300,具体的,如图1所示的方法包括:
110,获取待渲染的多个相同的骨骼动画模型的顶点数据以及与所述顶点数据关联的索引数据。
获取待渲染的多个相同的骨骼动画模型的顶点数据以及与顶点数据关联的索引数据;
需要说明的是,骨骼动画是模型动画中的一种,在骨骼动画中,模型具有互相连接的“骨骼”组成的骨架结构,通过改变骨骼的朝向和位置来为模型生成动画。
需要说明的是,顶点数据包括组成模型的每个顶点的位置、纹理坐标等信息,每个索引数据对应一个顶点,每3个索引数据对应的顶点可以构成一个三角面,每个模型由至少一个三角面组成。
假设有多个相同类型的骨骼动画模型需要渲染,这几个模型称为待渲染的多个相同的骨骼动画模型,其中每个骨骼动画模型的顶点数据相同,每个骨骼动画模型的与顶点数据关联的索引数据也相同。
作为一种实施例,假设有五个相同的模型A1-A5需要渲染,获取A1-A5中任意一个模型的顶点数据以及与顶点数据关联的索引数据。
120,获取所述待渲染的多个相同的骨骼动画模型中每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据,并将数据存入对应的数组中。
获取待渲染的多个相同的骨骼动画模型中每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据,并将所述每个骨骼动画模型的世界矩阵数据存储到世界矩阵数组中,将所述每个骨骼动画模型的骨骼矩阵数据存储到骨骼矩阵数组中;
待渲染的多个相同的骨骼动画模型的索引号分别为0至n-1,其中,n表示待渲染的多个相同的骨骼动画模型的模型数量,n为大于等于2的正整数。
待渲染的多个相同的骨骼动画模型的数量最大值是由图像处理器的处理性能确定的。
需要说明的是,世界矩阵数据表示模型的空间位置的矩阵数据,骨骼矩阵数据表示“骨骼”的朝向、位置和放缩的矩阵数据。
在对多个模型设置合批渲染状态时,设置合批模型的数量,并且根据合批模型的数量对每个模型设置一个合批索引号,每次设置的合批模型数量的最大值跟图像处理器的处理性能相关。
作为一种实施例,假设待渲染的多个相同的骨骼动画模型的模型数量为5,则5个相同的骨骼动画模型的索引号分别为0至4;假设待渲染的多个相同的骨骼动画模型的模型数量为6,则6个相同的骨骼动画模型的索引号分别为0至5,但本申请实施例并不限于此。
作为一种实施例,将模型A1-A5设置合批渲染时,合批模型的数量是5,模型A1-A5的合批索引号分别是0-4。
在本申请实施例中,通过每个骨骼动画模型的索引号从世界矩阵数组和骨骼矩阵数组中分别获取所述每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据,从而可以使图像处理器从世界矩阵数组和骨骼矩阵数组中获取每个待渲染模型的世界矩阵数据和骨骼矩阵数据,进一步实现每个模型的渲染。
作为一种实施例,假设每一次提交渲染时传入的骨骼矩阵总数据量最大值是64,模型的骨骼数是8,则每次渲染最多可以合批渲染8个模型;假设每一次提交渲染时传入的骨骼矩阵总数据量最大值是64,模型的骨骼数是6,则每次渲染最多可以合批渲染10个模型,但本申请实施例并不限于此。
作为一种实施例,骨骼矩阵数组的数组大小是64,世界矩阵数组的数组大小是8,获取A1-A5模型中每个模型每一帧的世界矩阵数据以及每个模型每一帧的骨骼矩阵数据,并将每个模型每一帧的世界矩阵数据以及每个模型的合批索引号存储到世界矩阵数组中,每个模型每一帧的骨骼矩阵数据以及每个模型的合批索引号存储到骨骼矩阵数组中。
130,向图像处理器发送合批渲染指令。
向图像处理器发送合批渲染指令,其中,合批渲染指令包括顶点数据、索引数据、世界矩阵数组、骨骼矩阵数组以及每个骨骼动画模型的索引号,每个骨骼动画模型的索引号用于图像处理器从世界矩阵数组和骨骼矩阵数组中分别获取每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据。
作为一种实施例,中央处理器向图像处理器发送合批渲染指令,其中,合批渲染指令包括A1-A5中任意一个模型的顶点数据、与顶点数据关联的索引数据、存储着A1-A5的每一帧的世界矩阵数据的世界矩阵数组、存储着A1-A5的每一帧的骨骼矩阵数据的骨骼矩阵数组以及A1-A5的索引号(0-4),A1-A5的索引号用于图像处理器从世界矩阵数组和骨骼矩阵数组中分别获取A1-A5的世界矩阵数据和骨骼矩阵数据。
在上述实现过程中,通过将待渲染的多个相同的骨骼动画模型中每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据存入世界矩阵数组和骨骼矩阵数组中,图像处理器并利用每个骨骼动画模型的索引号从世界矩阵数组和骨骼矩阵数组中分别获取所述每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据,从而减少了DrawCall数量,实现了多个相同的骨骼动画模型的合批渲染。
请参照图2,图2为本申请实施例提供的一种用于图像处理器的渲染方法流程图,该方法可以应用于图4所示的用于渲染的图像处理器400,具体的,如图2所示的方法包括:
210,接收中央处理器发送的合批渲染指令。
接收中央处理器发送的合批渲染指令,其中,合批渲染指令包括待渲染的多个相同的骨骼动画模型的顶点数据、与顶点数据关联的索引数据、存储着待渲染的多个相同的骨骼动画模型中每个骨骼动画模型的世界矩阵数据的世界矩阵数组、存储着待渲染的多个相同的骨骼动画模型中每个骨骼动画模型的骨骼矩阵数据的骨骼矩阵数组以及待渲染的多个相同的骨骼动画模型中每个骨骼动画模型的索引号;
待渲染的多个相同的骨骼动画模型索引号分别为0至n-1,其中,n表示待渲染的多个相同的骨骼动画模型的模型数量,n为大于等于2的正整数。
待渲染的多个相同的骨骼动画模型的数量最大值是由图像处理器的处理性能确定的。
作为一种实施例,图像处理器接收中央处理器发送的合批渲染指令,其中,合批渲染指令包括A1-A5中任意一个模型的顶点数据、与顶点数据关联的索引数据、存储着A1-A5的每一帧的世界矩阵数据的世界矩阵数组、存储着A1-A5的每一帧的骨骼矩阵数据的骨骼矩阵数组以及A1-A5的索引号(0-4),A1-A5的索引号用于图像处理器从世界矩阵数组和骨骼矩阵数组中分别获取A1-A5的世界矩阵数据和骨骼矩阵数据。
220,根据每个骨骼动画模型的索引号从世界矩阵数组和骨骼矩阵数组中分别获取对应的数据。
根据每个骨骼动画模型的索引号从世界矩阵数组和骨骼矩阵数组中分别获取每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据;
230,对每个骨骼动画模型进行渲染。
根据顶点数据、与顶点数据关联的索引数据以及每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据对每个骨骼动画模型进行渲染。
作为一种实施例,图像处理器根据A1的索引号(0)从世界矩阵数组中获取A1的世界矩阵数据,根据A1的索引号(0)从骨骼矩阵数组中获取A1的骨骼矩阵数据,并根据上述顶点数据、与顶点数据关联的索引数据、A1的世界矩阵数据以及A1的骨骼矩阵数据,对A1进行渲染;图像处理器根据A2的索引号(1)从世界矩阵数组中获取A2的世界矩阵数据,根据A2的索引号(1)从骨骼矩阵数组中获取A2的骨骼矩阵数据,并根据上述顶点数据、与顶点数据关联的索引数据、A2的世界矩阵数据以及A2的骨骼矩阵数据,对A2进行渲染;图像处理器根据A3的索引号(2)从世界矩阵数组中获取A3的世界矩阵数据,根据A3的索引号(2)从骨骼矩阵数组中获取A3的骨骼矩阵数据,并根据上述顶点数据、与顶点数据关联的索引数据、A3的世界矩阵数据以及A3的骨骼矩阵数据,对A3进行渲染;图像处理器根据A4的索引号(3)从世界矩阵数组中获取A4的世界矩阵数据,根据A4的索引号(3)从骨骼矩阵数组中获取A4的骨骼矩阵数据,并根据上述顶点数据、与顶点数据关联的索引数据、A4的世界矩阵数据以及A4的骨骼矩阵数据,对A4进行渲染;图像处理器根据A5的索引号(4)从世界矩阵数组中获取A5的世界矩阵数据,根据A5的索引号(4)从骨骼矩阵数组中获取A5的骨骼矩阵数据,并根据上述顶点数据、与顶点数据关联的索引数据、A5的世界矩阵数据以及A5的骨骼矩阵数据,对A5进行渲染。
在本申请实施例中,中央处理器只需要向图像处理器提交一次渲染数据,图像处理器就能分别对多个相同的骨骼动画模型进行渲染,即提交一次数据就能渲染多次,从而实现了多个相同的骨骼动画模型的合批渲染,有效地减少了DrawCall数量,提高游戏的运行效率,提高帧率。
作为一种实施例,假设有五个相同类型的模型A1-A5需要渲染,在中央处理器中创建一个合并模型B,B模型的顶点数据与索引数据跟A1-A5中任意一个模型的顶点数据与索引数据相同。
设置合批渲染状态,设置合批数量为5,模型A1-A5的合批索引号分别是0-4;创建一个骨骼矩阵数组(BoneArray),数组大小是64,存放A1-A5的骨骼矩阵数据,创建一个世界矩阵数组(WorldArray),数组大小是8,存放A1-A5的世界矩阵数据。
获取每一帧更新完的A1-A5模型的世界矩阵数据和骨骼矩阵数据,并将A1-A5模型的世界矩阵数据和骨骼矩阵数据存入世界矩阵数组和骨骼矩阵数组中。
中央处理器向图像处理器提交数据渲染时,将合并模型B的顶点数据、索引数据、世界矩阵数组、骨骼矩阵数组以及模型A1-A5的合批索引号,根据模型A1-A5的合批索引号从世界矩阵数组和骨骼矩阵数组分别获取每个模型的世界矩阵数据和骨骼矩阵数据,并根据合并模型B的顶点数据、索引数据以及每个模型的世界矩阵数据和骨骼矩阵数据分别对每个模型进行渲染,从而实现多个相同类型角色模型的合批渲染。
上文结合图1和图2描述了本申请实施例的用于渲染的方法,下面结合图3和图4描述本申请实施例用于渲染的处理器。
请参照图3,图3为本申请实施例提供一种用于渲染的中央处理器结构示意图,图3所提供的用于渲染的中央处理器300与图1的方法对应,包括能够实现图1方法的各个功能模块。
在一种实施方式中,图3所提供的用于渲染的中央处理器300包括:
获取单元310和处理单元320;
获取单元用于获取待渲染的多个相同的骨骼动画模型的顶点数据以及与顶点数据关联的索引数据;
获取单元还用于获取待渲染的多个相同的骨骼动画模型中每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据,并将每个骨骼动画模型的世界矩阵数据号存储到世界矩阵数组中,将每个骨骼动画模型的骨骼矩阵数据存储到中央处理器中的骨骼矩阵数组中;
处理单元用于向图像处理器发送合批渲染指令,其中,合批渲染指令包括所述顶点数据、所述索引数据、所述世界矩阵数组、所述骨骼矩阵数组以及每个骨骼动画模型的索引号,所述每个骨骼动画模型的索引号用于所述图像处理器从所述世界矩阵数组和所述骨骼矩阵数组中分别获取所述每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据。
在一种实施方式中,待渲染的多个相同的骨骼动画模型索引号分别为0至n-1,其中,n表示待渲染的多个相同的骨骼动画模型的模型数量,n为大于等于2的正整数。
在另一种实施方式中,待渲染的多个相同的骨骼动画模型的数量最大值是由图像处理器的处理性能确定的。
需要说明的是,图3所提供的用于渲染的中央处理器300,能够实现图1方法实施例中涉及渲染的各个过程。用于渲染的中央处理器300中的各个模块的操作和/或功能,分别为了实现图1中的方法实施例中的相应流程。具体可参见上述方法实施例中的描述,为避免重复,此处适当省略详细描述。
请参照图4,图4为本申请实施例提供一种用于渲染的图像处理器结构示意图,图4所提供的用于渲染的图像处理器400与图2的方法对应,包括能够实现图2方法的各个功能模块。
在一种实施方式中,图4所提供的用于渲染的图像处理器400包括:
指令获取单元410和图像处理单元420;
指令获取单元用于接收中央处理器发送的合批渲染指令,其中,合批渲染指令包括待渲染的多个相同的骨骼动画模型的顶点数据、与顶点数据关联的索引数据、存储着待渲染的多个相同的骨骼动画模型中每个骨骼动画模型的世界矩阵数据的世界矩阵数组、存储着待渲染的多个相同的骨骼动画模型中每个骨骼动画模型的骨骼矩阵数据的骨骼矩阵数组以及待渲染的多个相同的骨骼动画模型中每个骨骼动画模型的索引号;
指令获取单元还用于根据每个骨骼动画模型的索引号从世界矩阵数组和骨骼矩阵数组中分别获取每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据;
图像处理单元用于根据顶点数据、与顶点数据关联的索引数据以及每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据对每个骨骼动画模型进行渲染。
在一种实施方式中,待渲染的多个相同的骨骼动画模型索引号分别为0至n-1,其中,n表示待渲染的多个相同的骨骼动画模型的模型数量,n为大于等于2的正整数。
在另一种实施方式中,待渲染的多个相同的骨骼动画模型的数量最大值是由图像处理器的处理性能确定的。
需要说明的是,图4所提供的用于渲染的图像处理器400,能够实现图2方法实施例中涉及渲染的各个过程。用于渲染的图像处理器400中的各个模块的操作和/或功能,分别为了实现图2中的方法实施例中的相应流程。具体可参见上述方法实施例中的描述,为避免重复,此处适当省略详细描述。
请参照图5,图5为本申请实施例提供一种中央处理器结构示意图,如图5所示的中央处理器500可以包括:处理模块510,至少一个存储模块520和至少一个总线530,其中,处理模块510可以包括控制单元和运算单元,本申请实施例不限于此。总线530是中央处理器内部总线,用于实现中央处理器内部组件的连接通信。本申请实施例中存储模块520可以是高速RAM(随机存取存储器,random access memory)存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储模块520还可以是至少一个位于远离前述处理器的存储装置。存储模块520中存储有计算机可读取指令,当所述计算机可读取指令由所述处理模块510执行时,实现图1所示方法过程。
请参照图6,图6为本申请实施例提供一种图像处理器结构示意图,如图6所示的图像处理器600可以包括:处理模块610,至少一个存储模块620和至少一个总线630。总线530是图像处理器内部总线,用于实现图像处理器内部组件的连接通信。本申请实施例中存储模块620可以是高速RAM(随机存取存储器,random access memory)存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储模块620还可以是至少一个位于远离前述处理器的存储装置。存储模块620可以存储中央处理器发送的指令、存储用于如图2所示渲染方法的数据以及代码,本申请实施例不限于此,存储模块620也可以存储计算机可读取指令,当所述计算机可读取指令由所述处理模块610执行时,实现图2所示方法过程。
请参照图7,图7为本申请实施例提供一种用于渲染的***结构示意图,图7所提供的用于渲染的***700与图1以及图2的方法对应,包括能够实现图1以及图2方法的各个功能模块。如图7所示的用于渲染的***700包括:
中央处理器500、图像处理器600;
图像处理器600包括世界矩阵数组寄存器710和骨骼矩阵数组寄存器720,其中,世界矩阵数组寄存器用于存储待渲染的每个骨骼动画模型的世界矩阵数据,骨骼矩阵数组寄存器用于存储待渲染的每个骨骼动画模型的骨骼矩阵数据;
中央处理器用于执行图1所示方法过程,图像处理器执行图2所示方法过程。
本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被服务器执行时实现图1或图2所示的方法过程。
在本申请所提供的几个实施例中,应该理解到,所揭露的***和方法,也可以通过其它的方式实现。以上所描述的***实施例仅仅是示意性的,例如,所述***装置的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个装置或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种用于渲染的方法,其特征在于,应用于中央处理器,包括:
获取待渲染的多个相同的骨骼动画模型的顶点数据以及与所述顶点数据关联的索引数据;
获取所述待渲染的多个相同的骨骼动画模型中每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据,并将所述每个骨骼动画模型的世界矩阵数据存储到世界矩阵数组中,将所述每个骨骼动画模型的骨骼矩阵数据存储到骨骼矩阵数组中;
向图像处理器发送合批渲染指令,其中,所述合批渲染指令包括所述顶点数据、所述索引数据、所述世界矩阵数组、所述骨骼矩阵数组以及每个骨骼动画模型的索引号,所述每个骨骼动画模型的索引号用于所述图像处理器从所述世界矩阵数组和所述骨骼矩阵数组中分别获取所述每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据。
2.根据权利要求1所述的方法,其特征在于,所述待渲染的多个相同的骨骼动画模型的索引号分别为0至n-1,其中,n表示所述待渲染的多个相同的骨骼动画模型的模型数量。
3.一种用于渲染的方法,其特征在于,应用于图像处理器,包括:
接收中央处理器发送的合批渲染指令,其中,所述合批渲染指令包括待渲染的多个相同的骨骼动画模型的顶点数据、与所述顶点数据关联的索引数据、存储着所述待渲染的多个相同的骨骼动画模型中每个骨骼动画模型的世界矩阵数据的世界矩阵数组、存储着所述待渲染的多个相同的骨骼动画模型中每个骨骼动画模型的骨骼矩阵数据的骨骼矩阵数组以及所述待渲染的多个相同的骨骼动画模型中每个骨骼动画模型的索引号;
根据所述每个骨骼动画模型的索引号从所述世界矩阵数组和所述骨骼矩阵数组中分别获取所述每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据;
根据所述顶点数据、与所述顶点数据关联的索引数据以及所述每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据对所述每个骨骼动画模型进行渲染。
4.根据权利要求3所述的方法,其特征在于,所述待渲染的多个相同的骨骼动画模型索引号分别为0至n-1,其中,n表示所述待渲染的多个相同的骨骼动画模型的模型数量。
5.一种中央处理器,其特征在于,包括:
获取单元和处理单元;
所述获取单元用于获取待渲染的多个相同的骨骼动画模型的顶点数据以及与所述顶点数据关联的索引数据;
所述获取单元还用于获取所述待渲染的多个相同的骨骼动画模型中每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据,并将所述每个骨骼动画模型的世界矩阵数据存储到世界矩阵数组中,将所述每个骨骼动画模型的骨骼矩阵数据存储到骨骼矩阵数组中;
所述处理单元用于向图像处理器发送合批渲染指令,其中,所述合批渲染指令包括所述顶点数据、所述索引数据、所述世界矩阵数组、所述骨骼矩阵数组以及每个骨骼动画模型的索引号,所述每个骨骼动画模型的索引号用于所述图像处理器从所述世界矩阵数组和所述骨骼矩阵数组中分别获取所述每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据。
6.一种图像处理器,其特征在于,包括:
指令获取单元和图像处理单元;
所述指令获取单元用于接收中央处理器发送的合批渲染指令,其中,所述合批渲染指令包括待渲染的多个相同的骨骼动画模型的顶点数据、与所述顶点数据关联的索引数据、存储着所述待渲染的多个相同的骨骼动画模型中每个骨骼动画模型的世界矩阵数据的世界矩阵数组、存储着所述待渲染的多个相同的骨骼动画模型中每个骨骼动画模型的骨骼矩阵数据的骨骼矩阵数组以及所述待渲染的多个相同的骨骼动画模型中每个骨骼动画模型的索引号;
所述指令获取单元还用于根据所述每个骨骼动画模型的索引号从所述世界矩阵数组和所述骨骼矩阵数组中分别获取所述每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据;
所述图像处理单元用于根据所述顶点数据、与所述顶点数据关联的索引数据以及所述每个骨骼动画模型的世界矩阵数据和骨骼矩阵数据对所述每个骨骼动画模型进行渲染。
7.一种中央处理器,其特征在于,包括:处理模块、存储模块和总线,所述处理模块通过所述总线与所述存储模块相连,所述存储模块存储有计算机可读取指令,当所述计算机可读取指令由所述处理模块执行时,用于实现如权利要求1-2中任一项所述的方法。
8.一种图像处理器,其特征在于,包括:处理模块、存储模块和总线,所述处理模块通过所述总线与所述存储模块相连,所述存储模块存储有计算机可读取指令,当所述计算机可读取指令由所述处理模块执行时,用于实现如权利要求3-4中任一项所述的方法。
9.一种用于渲染的***,其特征在于,包括:
中央处理器、图像处理器;
所述图像处理器包括世界矩阵数组寄存器和骨骼矩阵数组寄存器,其中,所述世界矩阵数组寄存器用于存储待渲染的每个骨骼动画模型的世界矩阵数据,所述骨骼矩阵数组寄存器用于存储待渲染的每个骨骼动画模型的骨骼矩阵数据;
所述中央处理器用于执行权利要求1-2任一项所述的用于渲染的方法,所述图像处理器用于执行3-4中任一项所述的用于渲染的方法。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被服务器执行时实现如权利要求1-4任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011532554.8A CN112669419A (zh) | 2020-12-22 | 2020-12-22 | 用于渲染的方法、中央处理器、图像处理器、***和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011532554.8A CN112669419A (zh) | 2020-12-22 | 2020-12-22 | 用于渲染的方法、中央处理器、图像处理器、***和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112669419A true CN112669419A (zh) | 2021-04-16 |
Family
ID=75407835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011532554.8A Pending CN112669419A (zh) | 2020-12-22 | 2020-12-22 | 用于渲染的方法、中央处理器、图像处理器、***和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112669419A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115908678A (zh) * | 2023-02-25 | 2023-04-04 | 深圳市益玩网络科技有限公司 | 骨骼模型渲染方法、装置、电子设备及存储介质 |
WO2024082695A1 (zh) * | 2022-10-21 | 2024-04-25 | 华为技术有限公司 | 一种渲染指令的合批方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030078098A1 (en) * | 2001-10-24 | 2003-04-24 | Konami Computer Entertainment Osaka, Inc. | Recording medium storing 3D model deformation program, 3D model deformation program, 3D model deformation method and video game device |
CN104021584A (zh) * | 2014-06-25 | 2014-09-03 | 无锡梵天信息技术股份有限公司 | 一种骨骼蒙皮动画的实现方法 |
CN108711182A (zh) * | 2018-05-03 | 2018-10-26 | 广州爱九游信息技术有限公司 | 渲染处理方法、装置及移动终端设备 |
CN109840931A (zh) * | 2019-01-21 | 2019-06-04 | 网易(杭州)网络有限公司 | 骨骼动画的合批渲染方法、装置、***及存储介质 |
CN111462283A (zh) * | 2020-03-27 | 2020-07-28 | 厦门梦加网络科技股份有限公司 | 大量相同角色动画播放方法、介质、设备及装置 |
-
2020
- 2020-12-22 CN CN202011532554.8A patent/CN112669419A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030078098A1 (en) * | 2001-10-24 | 2003-04-24 | Konami Computer Entertainment Osaka, Inc. | Recording medium storing 3D model deformation program, 3D model deformation program, 3D model deformation method and video game device |
CN104021584A (zh) * | 2014-06-25 | 2014-09-03 | 无锡梵天信息技术股份有限公司 | 一种骨骼蒙皮动画的实现方法 |
CN108711182A (zh) * | 2018-05-03 | 2018-10-26 | 广州爱九游信息技术有限公司 | 渲染处理方法、装置及移动终端设备 |
CN109840931A (zh) * | 2019-01-21 | 2019-06-04 | 网易(杭州)网络有限公司 | 骨骼动画的合批渲染方法、装置、***及存储介质 |
CN111462283A (zh) * | 2020-03-27 | 2020-07-28 | 厦门梦加网络科技股份有限公司 | 大量相同角色动画播放方法、介质、设备及装置 |
Non-Patent Citations (1)
Title |
---|
季卓尔;张景峤;: "基于可编程GPU的骨骼动画", 计算机工程与应用, no. 22, 1 August 2008 (2008-08-01), pages 81 - 84 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024082695A1 (zh) * | 2022-10-21 | 2024-04-25 | 华为技术有限公司 | 一种渲染指令的合批方法及装置 |
CN115908678A (zh) * | 2023-02-25 | 2023-04-04 | 深圳市益玩网络科技有限公司 | 骨骼模型渲染方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112652044B (zh) | 粒子特效渲染方法、装置、设备及存储介质 | |
CN109840931B (zh) | 骨骼动画的合批渲染方法、装置、***及存储介质 | |
KR100328421B1 (ko) | 고성능3차원그래픽가속기의아키텍쳐 | |
US9916674B2 (en) | Baking path rendering objects into compact and efficient memory representations | |
CN105556571B (zh) | 使用计算着色器作为顶点着色器的前端 | |
US20160203635A1 (en) | Frustum tests for sub-pixel shadows | |
JPH08171645A (ja) | 画像演出方法及び装置 | |
US8941669B1 (en) | Split push buffer rendering for scalability | |
CN112669419A (zh) | 用于渲染的方法、中央处理器、图像处理器、***和存储介质 | |
CN103886538A (zh) | 用于存储共享顶点的技术 | |
CN103885893A (zh) | 用于访问内容寻址存储器的技术 | |
CN103810743A (zh) | 在上游着色器中设置下游渲染状态 | |
CN111127590B (zh) | 一种二阶贝塞尔曲线绘制方法及装置 | |
JP5318290B2 (ja) | 地図シンボル描画装置 | |
Fernando et al. | Programming graphics hardware | |
EP1255227A1 (en) | Vertices index processor | |
CN111773688B (zh) | 柔性对象的渲染方法和装置、存储介质、电子装置 | |
CN111514587A (zh) | 信息处理方法、装置、设备及存储介质 | |
CN114529647A (zh) | 对象渲染方法、设备、装置、电子设备及存储介质 | |
CN104050719A (zh) | 生成抗锯齿体素数据 | |
US6308237B1 (en) | Method and system for improved data transmission in accelerated graphics port systems | |
US20220066819A1 (en) | Methods and apparatuses for coalescing function calls for ray-tracing | |
CN112669418A (zh) | 一种模型渲染的方法及装置 | |
Mosegaard et al. | Real-time Deformation of Detailed Geometry Based on Mappings to a Less Detailed Physical Simulation on the GPU. | |
US8947444B1 (en) | Distributed vertex attribute fetch |
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 |