制作骨骼动画的方法、系统、电子装置和存储介质与流程

    专利2022-07-08  120


    本申请涉及计算机动画技术领域,特别是涉及制作骨骼动画的方法、电子装置和存储介质。



    背景技术:

    动画角色广泛应用于游戏、影视中,在生产制作游戏中的动画角色或影视中的动画角色时,主要通过动画角色的骨骼姿态,确定动画角色的外形模型。每一个动画角色都有对应的骨骼姿态,动画角色越多,骨骼姿态越多,则drawcall(绘制指令)也越多。手机游戏中同屏动画角色过多时,中央处理器(centralprocessingunit,简称cpu)计算负载重,且因drawcall过多导致cpu等待图像处理器(graphicsprocessingunit,简称gpu)完成工作的时间长,不能有效的利用cpu。

    目前针对相关技术手机游戏中同屏动画角色过多时,drawcall过多,导致不流畅的问题,尚未提出有效的解决方案。



    技术实现要素:

    本申请实施例提供了一种制作骨骼动画的方法、系统、电子装置和存储介质,以至少解决相关技术手机游戏中同屏动画角色过多时,drawcall过多,导致不流畅的问题。

    第一方面,本申请实施例提供了一种制作骨骼动画的方法,所述方法包括:

    创建骨骼动画对象,导出所述骨骼动画对象的lod骨骼模型为第一lod骨骼模型和第二lod骨骼模型,所述第一lod骨骼模型与所述第二lod骨骼模型的骨骼数都为x;

    所述第一lod骨骼模型的第一骨骼索引为0至x-1,所述第二lod骨骼模型的第二骨骼索引为x至2x-1,将所述第一lod骨骼模型与所述第二lod骨骼模型进行合并,得到第三骨骼索引0至2x-1;

    对合并模型生成一次绘制指令,其中,所述第三骨骼索引对应一个所述合并模型。

    在其中一些实施例中,对所述合并模型生成一次绘制指令之前,所述方法包括:将第一lod骨骼模型和第二lod骨骼模型的骨骼相对矩阵信息分别保存到文件中,根据所述文件构建树状数据结构。

    在其中一些实施例中,将所述骨骼相对矩阵信息保存到文件中,根据所述文件构建树状数据结构之后,所述方法包括:

    根据动画时间获取所述树状数据结构中骨骼节点的骨骼相对矩阵索引,遍历所述树状数据结构,用max导出时默认的矩阵、当前骨骼节点的骨骼相对矩阵索引和当前骨骼节点的父骨骼节点的骨骼相对矩阵索引相乘,得到所述骨骼节点的骨骼世界矩阵,将所述骨骼世界矩阵传到所述顶点着色器中。

    在其中一些实施例中,将所述骨骼世界矩阵传到所述顶点着色器之后,所述方法还包括:

    获取顶点蒙皮矩阵索引和骨骼权重矩阵,根据所述顶点蒙皮矩阵索引获取所述骨骼世界矩阵;

    所述骨骼权重矩阵、所述骨骼世界矩阵和模型空间顶点位置矩阵相乘得出动画后模型空间顶点位置矩阵,所述动画后模型空间顶点位置矩阵和所述骨骼世界矩阵相乘得出动画后世界空间顶点位置矩阵。

    在其中一些实施例中,得出所述动画后世界空间顶点位置矩阵后,所述方法包括:根据所述动画后世界空间顶点位置矩阵和所述骨骼世界矩阵,对所述合并模型进行渲染。

    第二方面,本申请实施例提供了一种制作骨骼动画的系统,所述系统包括导出模块、合并模块和绘制指令模块:

    所述导出模块,用于导出lod骨骼模型为第一lod骨骼模型和第二lod骨骼模型,所述第一lod骨骼模型与所述第二lod骨骼模型的骨骼数都为x;

    所述合并模块,用于将所述第一lod骨骼模型与所述第二lod骨骼模型进行合并,得到第三骨骼索引0至2x-1,其中,所述第一lod骨骼模型的第一骨骼索引为0至x-1,所述第二lod骨骼模型的第二骨骼索引为x至2x-1;

    所述绘制指令模块,用于对合并模型生成一次绘制指令,其中,所述第三骨骼索引对应一个所述合并模型。

    在其中一些实施例中,所述系统还包括构建模块;用于对所述合并模型生成一次绘制指令之前,将第一lod骨骼模型和第二lod骨骼模型的骨骼相对矩阵信息分别保存到文件中,根据所述文件构建树状数据结构。

    在其中一些实施例中,所述系统还包括计算模块;所述计算模块,用于将所述骨骼相对矩阵的信息保存到文件中,根据所述文件构建树状数据结构之后,根据动画时间获取所述树状数据结构中骨骼节点的骨骼相对矩阵索引,遍历所述树状数据结构,用max导出时默认的矩阵、当前骨骼节点的骨骼相对矩阵索引和当前骨骼节点的父骨骼节点的骨骼相对矩阵索引相乘,得到所述骨骼节点的骨骼世界矩阵,将所述骨骼世界矩阵传到顶点着色器中。

    第三方面,本申请实施例提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的制作骨骼动画的方法。

    第四方面,本申请实施例提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的制作骨骼动画的方法。

    相比于相关技术,本申请实施例提供的制作骨骼动画的方法,通过创建骨骼动画对象,导出骨骼动画对象的lod骨骼模型为第一lod骨骼模型和第二lod骨骼模型,第一lod骨骼模型与第二lod骨骼模型的骨骼数都为x;该第一lod骨骼模型的第一骨骼索引为0至x-1,第二lod骨骼模型的第二骨骼索引为x至2x-1,将第一lod骨骼模型与第二lod骨骼模型进行合并,得到第三骨骼索引为0至2x-1;对合并模型生成一次绘制指令,其中,第三骨骼索引对应一个合并模型,使一个drawcall画多个lod骨骼模型,解决了opengles2.0版本的设备不支持实例化技术,在渲染模型时只能一个模型、一个模型的渲染,导致画面不流畅,渲染效率低的问题,提高了渲染效率。

    附图说明

    此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

    图1是根据本申请实施例的制作骨骼动画的方法的流程图;

    图2是根据本申请实施例的文件保存格式的示意图;

    图3是根据本申请实施例的树状数据结构的示意图;

    图4是根据本申请实施例的制作骨骼动画的系统的结构框图;

    图5是根据本申请实施例的电子设备的内部结构示意图。

    具体实施方式

    为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。

    在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。

    除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指大于或者等于两个。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。

    本实施例提供了一种制作骨骼动画的方法,图1是根据本申请实施例的制作骨骼动画的方法的流程图,如图1所示,该流程包括如下步骤:

    步骤s101,创建骨骼动画对象,导出该骨骼动画对象的lod骨骼模型为第一lod骨骼模型和第二lod骨骼模型,该第一lod骨骼模型与该第二lod骨骼模型的骨骼数都为x;本实施例中,lod骨骼蒙皮的模型是采用lod技术导出的模型,其中,lod技术(levelsofdetail,多细节层次)指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算,可根据需要设置lod骨骼模型的骨骼数;

    步骤s102,该第一lod骨骼模型的第一骨骼索引为0至x-1,该第二lod骨骼模型的第二骨骼索引为x至2x-1,将该第一lod骨骼模型与该第二lod骨骼模型进行合并,得到第三骨骼索引为0至2x-1;本实施例中,根据当前设备最多支持的骨骼数量和lod骨骼模型的骨骼数确定模型合并的数量,例如,大多数opengles2.0的设备只支持256个常量寄存器,除去引擎默认用掉的寄存器后,最多支持35根骨胳的动画角色,若导出的lod骨骼模型的骨骼数为15根,则可以对两个模型进行合并,若导出的lod骨骼模型的骨骼数为10根,则可以对三个模型进行合并,导出lod模型的骨骼数的多少由模型距离相机的远近决定,距离相机近,则骨骼数量多,距离相机远,则骨骼数量可以相对少一些;

    步骤s103,对合并模型生成一次绘制指令,其中,第三骨骼索引对应一个合并模型。其中,绘制指令(drawcall)是中央处理器(centralprocessingunit,简称cpu)向图像处理器(graphicsprocessingunit,简称gpu)提交的一次渲染指令,drawcall的数量是影响游戏性能的重要指标,过多的drawcall会导致cpu占用率过高,帧时长变长,从而导致游戏卡顿等问题,一个动画模型至少一个drawcall,将两个模型进行合并后,就可以一个drawcall画两个模型,将三个模型进行合并,则可以一个drawcall画三个模型。

    通过上述步骤s101至步骤s103,相对于现有技术中opengles2.0版本的设备不支持实例化技术,在渲染模型时只能一个模型、一个模型的渲染,导致渲染效率低,且opengles2.0版本的设备最多支持35根骨胳的动画角色,该系统通过导出lod骨骼模型,减少动画角色的骨骼数量,再将多个lod骨骼模型的骨骼索引进行合并,使多个lod骨骼模型合成一个模型,使一个drawcall画多个lod骨骼模型,解决了手机游戏中同屏动画角色过多时,drawcall过多,导致画面不流畅的问题,提高了渲染效率。

    在其中一些实施例中,对合并模型生成一次绘制指令之前,将第一lod骨骼模型和第二lod骨骼模型的骨骼相对矩阵信息分别保存到文件中,根据所述文件构建树状数据结构。本实施例中,因为opengles2.0不支持实例化(instance),instance是指操作系统中一系列的进程以及为这些进程所分配的内存块,且不支持vertexshader采样贴图,所以要把骨胳相对矩阵信息保存到文件中,图2是根据本申请实施例的文件保存格式的示意图,如图2所示,保存的信息包括骨骼名字、父骨骼名字、子骨骼个数、0个或多个子骨骼名字和骨骼相对矩阵,再根据文件格式构建树状数据结构,图3是根据本申请实施例的树状数据结构的示意图,如图3所示,上一级骨骼是下一级骨骼的父骨骼,下一级骨骼是上一级骨骼的父骨骼,一个父骨骼可以有0个或多个子骨骼,父骨骼运动会带动子骨骼一起运动、比如一个人物举起大臂,那小臂作为大臂的子骨骼,也会随之被抬起。

    在其中一些实施例中,将骨骼相对矩信息保存到文件中,根据该文件构建树状数据结构之后,根据动画时间获取树状数据结构中骨骼节点的骨骼相对矩阵索引,遍历该树状数据结构,用max导出时默认的矩阵、当前骨骼节点的骨骼相对矩阵索引和当前骨骼节点的父骨骼节点的骨骼相对矩阵索引相乘,得到每一个骨骼节点的骨骼世界矩阵,将该骨骼世界矩阵传到顶点着色器(vertexshader)中。

    本实施例中,根据当前动画时间计算出每个骨骼结点的骨胳相对矩阵索引赋给cbone后,遍历创建的树状数据结构,让每个骨骼节点的骨骼世界矩阵=tpos(max导出时默认的矩阵)*当前骨骼结点的cbone*当前骨骼节点的父骨骼节点的cbone,将计算出的所有骨骼结点的骨骼世界矩阵传到vertexshader中,该骨骼世界矩阵包括第一lod骨骼模型的第一骨骼世界矩阵和第二lod骨骼模型的第二骨骼世界矩阵,将骨骼世界矩阵传到vertexshader后,在渲染时,显卡会执行vertexshader,在vertexshader算出动画后世界空间顶点位置矩阵。

    在其中一些实施例中,将骨骼世界矩阵传到顶点着色器之后,获取顶点蒙皮矩阵索引和骨骼权重矩阵,根据该顶点蒙皮矩阵索引获取该骨骼世界矩阵;

    骨骼权重矩阵、骨骼世界矩阵和模型空间顶点位置矩阵相乘得出动画后模型空间顶点位置矩阵,该动画后模型空间顶点位置矩阵和骨骼世界矩阵相乘得出动画后世界空间顶点位置矩阵。

    本实施例中,顶点蒙皮矩阵索引为i1,i2,i3,i4,骨骼权重矩阵为w1,w2,w3,w4,根据i1,i2,i3,i4获取保存在vertexshader中的骨骼世界矩阵t1,t2,t3,t4,则动画后模型空间顶点位置矩阵vt=v(模型空间顶点位置)*t1*w1 v*t2*w2 v*t3*w3 v*t4*w4,动画后世界空间顶点位置矩阵vo=vt*mat(mat为骨骼世界矩阵),该动画后世界空间顶点位置矩阵包括第一lod骨骼模型的第一动画后世界空间顶点位置矩阵和第二lod骨骼模型的第二动画后世界空间顶点位置矩阵。

    在其中一些实施例中,得出动画后世界空间顶点位置矩阵后,根据该动画后世界空间顶点位置矩阵和骨骼世界矩阵,对合并模型进行渲染。本实施例中,对合并模型进行渲染时,根据该合并模型的第三骨骼索引找到第一lod骨骼模型的第一骨骼世界矩阵和第一动画后世界空间顶点位置矩阵,第二lod骨骼模型的第二骨骼世界矩阵和第二动画后世界空间顶点位置矩阵,然后同时对第一lod骨骼模型和第二lod骨骼模型进行渲染。

    需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

    本实施例还提供了一种制作骨骼动画的系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

    图4是根据本申请实施例的制作骨骼动画的系统的结构框图,如图4所示,该系统包括导出模块41、合并模块42和绘制指令模块43:

    导出模块41,用于导出lod骨骼模型为第一lod骨骼模型和第二lod骨骼模型,该第一lod骨骼模型与该第二lod骨骼模型的骨骼数都为x;合并模块42,用于将该第一lod骨骼模型与该第二lod骨骼模型进行合并,得到第三骨骼索引0至2x-1,其中,该第一lod骨骼模型的第一骨骼索引为0至x-1,该第二lod骨骼模型的第二骨骼索引为x至2x-1;绘制指令模块43,用于对合并模型生成一次绘制指令,其中,该第三骨骼索引对应一个该合并模型。本实施例通过导出模块41导出lod骨骼模型,合并模块42再将多个lod骨骼模型进行合并,绘制指令模块43再对合并模型进行渲染,使一个drawcall画多个lod骨骼模型,解决了opengles2.0版本的设备不支持实例化技术,在渲染模型时只能一个模型、一个模型的渲染,导致画面不流畅,渲染效率低的问题,提高了渲染效率。

    需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。

    本实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

    另外,结合上述实施例中的制作骨骼动画的方法,本申请实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种制作骨骼动画的方法。

    在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种制作骨骼动画的方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

    在一个实施例中,图5是根据本申请实施例的电子设备的内部结构示意图,如图5所示,提供了一种电子设备,该电子设备可以是服务器,其内部结构图可以如图5所示。该电子设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的数据库用于存储数据。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种制作骨骼动画的方法。

    本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

    本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

    本领域的技术人员应该明白,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

    以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。


    技术特征:

    1.一种制作骨骼动画的方法,其特征在于,所述方法包括:

    创建骨骼动画对象,导出所述骨骼动画对象的lod骨骼模型为第一lod骨骼模型和第二lod骨骼模型,所述第一lod骨骼模型与所述第二lod骨骼模型的骨骼数都为x;

    所述第一lod骨骼模型的第一骨骼索引为0至x-1,所述第二lod骨骼模型的第二骨骼索引为x至2x-1,将所述第一lod骨骼模型与所述第二lod骨骼模型进行合并,得到第三骨骼索引为0至2x-1;

    对合并模型生成一次绘制指令,其中,所述第三骨骼索引对应一个所述合并模型。

    2.根据权利要求1所述的方法,其特征在于,对所述合并模型生成一次绘制指令之前,所述方法包括:将第一lod骨骼模型和第二lod骨骼模型的骨骼相对矩阵信息分别保存到文件中,根据所述文件构建树状数据结构。

    3.根据权利要求2所述的方法,其特征在于,将所述骨骼相对矩阵信息保存到文件中,根据所述文件构建树状数据结构之后,所述方法包括:

    根据动画时间获取所述树状数据结构中骨骼节点的骨骼相对矩阵索引,遍历所述树状数据结构,用max导出时默认的矩阵、当前骨骼节点的骨骼相对矩阵索引和当前骨骼节点的父骨骼节点的骨骼相对矩阵索引相乘,得到所述骨骼节点的骨骼世界矩阵,将所述骨骼世界矩阵传到顶点着色器中。

    4.根据权利要求3所述的方法,其特征在于,将所述骨骼世界矩阵传到所述顶点着色器之后,所述方法还包括:

    获取顶点蒙皮矩阵索引和骨骼权重矩阵,根据所述顶点蒙皮矩阵索引获取所述骨骼世界矩阵;

    所述骨骼权重矩阵、所述骨骼世界矩阵和模型空间顶点位置矩阵相乘得出动画后模型空间顶点位置矩阵,所述动画后模型空间顶点位置矩阵和所述骨骼世界矩阵相乘得出动画后世界空间顶点位置矩阵。

    5.根据权利要求4所述的方法,其特征在于,得出所述动画后世界空间顶点位置矩阵后,所述方法包括:根据所述动画后世界空间顶点位置矩阵和所述骨骼世界矩阵,对所述合并模型进行渲染。

    6.一种制作骨骼动画的系统,其特征在于,所述系统包括导出模块、合并模块和绘制指令模块:

    所述导出模块,用于导出lod骨骼模型为第一lod骨骼模型和第二lod骨骼模型,所述第一lod骨骼模型与所述第二lod骨骼模型的骨骼数都为x;

    所述合并模块,用于将所述第一lod骨骼模型与所述第二lod骨骼模型进行合并,得到第三骨骼索引0至2x-1,其中,所述第一lod骨骼模型的第一骨骼索引为0至x-1,所述第二lod骨骼模型的第二骨骼索引为x至2x-1;

    所述绘制指令模块,用于对合并模型生成一次绘制指令,其中,所述第三骨骼索引对应一个所述合并模型。

    7.根据权利要求6所述的系统,其特征在于,所述系统还包括构建模块;所述构建模块,用于对所述合并模型生成一次绘制指令之前,将第一lod骨骼模型和第二lod骨骼模型的骨骼相对矩阵信息分别保存到文件中,根据所述文件构建树状数据结构。

    8.根据权利要求7所述的系统,其特征在于,所述系统还包括计算模块;所述计算模块,用于将所述骨骼相对矩阵的信息保存到文件中,根据所述文件构建树状数据结构之后,根据动画时间获取所述树状数据结构中骨骼节点的骨骼相对矩阵索引,遍历所述树状数据结构,用max导出时默认的矩阵、当前骨骼节点的骨骼相对矩阵索引和当前骨骼节点的父骨骼节点的骨骼相对矩阵索引相乘,得到所述骨骼节点的骨骼世界矩阵,将所述骨骼世界矩阵传到顶点着色器中。

    9.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至5中任一项所述的制作骨骼动画的方法。

    10.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至5中任一项所述的制作骨骼动画的方法。

    技术总结
    本申请涉及一种制作骨骼动画的方法、系统、电子装置和存储介质,通过创建骨骼动画对象,导出骨骼动画对象的LOD骨骼模型为第一LOD骨骼模型和第二LOD骨骼模型,第一LOD骨骼模型与第二LOD骨骼模型的骨骼数都为X;该第一LOD骨骼模型的第一骨骼索引为0至X‑1,第二LOD骨骼模型的第二骨骼索引为X至2X‑1,将第一LOD骨骼模型与第二LOD骨骼模型进行合并,得到第三骨骼索引为0至2X‑1;对合并模型生成一次绘制指令,其中,第三骨骼索引对应一个合并模型,使一个DrawCall画多个LOD骨骼模型,解决了OPENGLES2.0版本的设备不支持实例化技术,在渲染模型时只能一个模型、一个模型的渲染,导致画面不流畅,渲染效率低的问题,提高了渲染效率。

    技术研发人员:李林肪
    受保护的技术使用者:杭州电魂网络科技股份有限公司
    技术研发日:2020.11.12
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-16022.html

    最新回复(0)