公开/公告号CN104408761A
专利类型发明专利
公开/公告日2015-03-11
原文格式PDF
申请/专利权人 成都卓杭信息技术有限公司;
申请/专利号CN201410637441.2
发明设计人 游彬;
申请日2014-11-12
分类号G06T13/40(20110101);
代理机构
代理人
地址 610041 四川省成都市高新区天府大道北段1480号软件孵化园5号楼405
入库时间 2023-12-17 04:36:06
法律状态公告日
法律状态信息
法律状态
2018-03-09
授权
授权
2015-09-23
著录事项变更 IPC(主分类):G06T13/40 变更前: 变更后: 申请日:20141112
著录事项变更
2015-07-29
实质审查的生效 IPC(主分类):G06T13/40 申请日:20141112
实质审查的生效
2015-03-11
公开
公开
技术领域
本发明属于计算机动画绘制领域,具体涉及一种基于自动批次渲染等技术 的计算机制图方法。
背景技术
Spine(2D骨骼编辑器)官方提供的Runtime,其框架结构示意图如图1 所示,从图中可知现有技术的缺陷如下:
1.缺少大量常用功能,现有技术方案只支持一套动画,而不支持多套动画 同时生效;
2.效率不高,纹理信息和附件信息强耦合,导致绘制部分很难进行优化;
3.图片集格式不符合cocos2d-x(开源的移动2D游戏框架)引擎的风格;
4.代码生涩难懂,可扩展性低;
5.从架构上看,信息层和纹理层耦合度太高,需要分离。
因此,市场上急需一种能解决功能缺乏、效率低下、不符合引擎风格等问 题的新的技术方案。
发明内容
本发明针对现有技术的不足,提供了一种基于自动批次渲染等技术的计算 机制图方法,能够有效的解决功能缺乏、效率低下、不符合引擎风格等问题。
为解决以上问题,本发明采用的技术方案如下:一种基于自动批次渲染等 技术的计算机制图方法,包括以下步骤:
S1.载入资源,包括至少一套动画数据和绑定的帧骨骼数据;
S2.将至少一套动画数据进行自动最少批次渲染处理;
S3.将S2处理后的数据进行最小信息计算并自动删除冗余信息;
S4.将S3处理后的数据与绑定的帧骨骼数据进行渲染并绘制。
作为优选:绑定帧骨骼数据的步骤如下:
1.1.将骨骼和插槽的状态重置为绑定帧;
1.2.遍历所有激活动画,将所有骨骼以及插槽的状态改变的增量叠加到 对应的信息状态机中;
1.3.遍历所有的骨骼,根据信息状态机更新自己的状态矩阵,并且需要 从父节点的矩阵状态计算出自己的当前矩阵;
1.4.遍历所有的插槽,根据信息状态机更新自己绑定的附件信息以及颜 色信息集合。
作为优选:S1所述的至少一套动画数据包括纹理ID、附件信息和骨骼信 息,如果纹理ID是一致的话,则进行自动最少批次渲染处理。
作为优选:所述的纹理ID包含它的纹理,所用的着色器,还有它的混合 函数。
作为优选:所述的自动最少批次渲染步骤如下:
2.1.所有的渲染请求放入渲染队列中,延迟渲染而非立即执行;
2.2.遍历渲染队列,把符合同批次渲染的动画数据进行一次性渲染,同 时从队列中清空这些请求;
2.3.如果队列非空,继续执行2.2,否则执行2.4;
2.4.遍历完毕后清空所有渲染状态,渲染结束。
作为优选:S3所述的最小信息计算并自动删除冗余信息包括以下步骤:
3.1.从骨骼动画的配置文件中读入原始数据;
3.2.遍历所有的插槽,判断插槽的纹理是否至少显示一次,如果插槽的 所有绑定纹理都没有被显示过,执行删除插槽的操作;
3.3.遍历所有的骨骼,判断骨骼上是否至少绑定了一个插槽,如果没有 绑定任何插槽,执行删除骨骼的操作;
3.4.检查所有皮肤信息和动画信息,递归删除已经被销毁骨骼和插槽的 所有相关信息;
3.5.遍历所有动画的所有关键帧,对于关键帧A与关键帧B,如果删除其 中任意一个,动画不会受到影响,即A与B完全相同,并且B的过渡方式是跳 跃式的,则执行删除关键帧B的操作;
3.6将经过冗余裁剪后的数据自动导出,替换原始数据文件。
作为优选:S4所述的具体方法如下:在渲染时,遍历所有的插槽,根据骨 骼的信息矩阵,将位置、旋转、缩放信息绑定至顶点数组;再根据颜色信息, 绑定顶点颜色;根据附件信息绑定对应的纹理ID,最后执行渲染命令。
本发明的有益效果如下:
1.加入大量功能:如骨骼连接、支持任意多套动画同时播放、支持多套皮 肤同时载入、支持预加载等;
2.提高了算法效率:如最小批次渲染计数、自动删除无用骨骼、不显示图 片冗余信息等其他优化;
3.让代码和游戏引擎的进一步衔接、一律使用符合引擎风格的图片集等实 现方式。
附图说明
图1是现有技术的架构示意图;
图2是本发明的架构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实 施例,对本发明做进一步详细说明。
一种基于自动批次渲染等技术的计算机制图方法,包括以下步骤:
S1.载入资源,包括至少一套动画数据和绑定的帧骨骼数据;
S2.将至少一套动画数据进行自动最少批次渲染处理;
S3.将S2处理后的数据进行最小信息计算并自动删除冗余信息;
S4.将S3处理后的数据与绑定的帧骨骼数据进行渲染并绘制。
绑定帧骨骼数据的步骤如下:
1.1.将骨骼和插槽的状态重置为绑定帧;
1.2.遍历所有激活动画,将所有骨骼以及插槽的状态改变的增量叠加到 对应的信息状态机中;
1.3.遍历所有的骨骼,根据信息状态机更新自己的状态矩阵,并且需要 从父节点的矩阵状态计算出自己的当前矩阵;
[m_m00,m_m01,m_worldX]/*a b x*/;
[m_m10,m_m11,m_worldY]/*c d y*/;
1.4.遍历所有的插槽,根据信息状态机更新自己绑定的attachment附件 信息以及颜色信息集合:{m_attachment,m_r,m_g,m_b,m_a}。
S1所述的至少一套动画数据包括纹理ID、附件信息和骨骼信息,如果纹 理ID是一致的话,则进行自动最少批次渲染处理。
所述的纹理ID包含它的纹理,所用的着色器,还有它的混合函数。
所述的自动最少批次渲染步骤如下:
2.1.所有的渲染请求放入渲染队列中,延迟渲染而非立即执行;
2.2.遍历渲染队列,把符合同批次渲染的动画数据进行一次性渲染,同 时从队列中清空这些请求;
2.3.如果队列非空,继续执行2.2,否则执行2.4;
2.4.遍历完毕后清空所有渲染状态,渲染结束。
S3所述的最小信息计算并自动删除冗余信息包括以下步骤:
3.1.从骨骼动画的配置文件中读入原始数据;
3.2.遍历所有的插槽,判断插槽的纹理是否至少显示一次,如果插槽的 所有绑定纹理都没有被显示过,执行删除插槽的操作;
3.3.遍历所有的骨骼,判断骨骼上是否至少绑定了一个插槽,如果没有 绑定任何插槽,执行删除骨骼的操作;
3.4.检查所有皮肤信息和动画信息,递归删除已经被销毁骨骼和插槽的 所有相关信息;
3.5.遍历所有动画的所有关键帧,对于关键帧A与关键帧B,如果删除其 中任意一个,动画不会受到影响,即A与B完全相同,并且B的过渡方式是跳 跃式的,则执行删除关键帧B的操作;
3.6将经过冗余裁剪后的数据自动导出,替换原始数据文件。
S4所述的具体方法如下:在渲染时,遍历所有的插槽,根据骨骼的信息矩 阵,将位置、旋转、缩放信息绑定至顶点数组;再根据颜色信息,绑定顶点颜 色;根据附件信息绑定对应的纹理ID,最后执行渲染命令。
优化算法核心技术:
1.自动批次渲染技术:所有的渲染请求会有一个纹理ID,一个纹理ID包 含它的纹理,所用的着色器,还有它的混合函数,如果这三个是一样的话,这 说明显卡不需要做状态切换就可以渲染它,如果纹理ID是一致的话,就会自 动进行批量渲染,此技术属于现有技术。
2.动画融合与多套动画绑定技术:所有的信息量都采用增量形式描述,这 样一来,每个动画请求都是一系列的增量请求,无论是融合还是多套动画的播 放,都可以根据增量和对应的alpha值来改变骨骼的当前状态。
3.最小信息量:算法会自动删除冗余信息,不管是从时间效率还是空间效 率都能达到最小信息量,从而大大改善时空效率。
算法步骤:
3.1从骨骼动画的配置文件中读入原始数据。
3.2遍历所有的插槽,判断插槽的纹理是否至少显示一次,如果插槽的所 有绑定纹理都没有被显示过,说明该插槽是冗余的,执行删除插槽的操作。
3.3遍历所有的骨骼,判断骨骼上是否至少绑定了一个插槽,如果没有绑 定任何插槽,说明该骨骼是冗余的,执行删除骨骼的操作。
3.4检查所有皮肤信息和动画信息,递归删除已经被销毁骨骼和插槽的所 有相关信息。
3.5遍历所有动画的所有关键帧(包括位移,缩放,旋转,附件变换,颜 色),对于关键帧A与关键帧B,如果删除其中任意一个,动画不会受到影响 (即A与B完全相同,并且B的过渡方式是跳跃式的),则说明关键帧B是冗 余的,执行删除关键帧B的操作。
3.6将经过冗余裁剪后的数据自动导出,替换原始数据文件。
具体实施例:
本发明的最大优势在于算法的优化,优化算法则是采用了上述的三个核心 技术。
优化算法的架构如图2所示:
在效率方面:
1.1优化算法会智能识别每个图像的信息(纹理,混合函数,着色器等), 对于能在同一批次渲染的图像进行统一渲染,达到最少渲染次数的目的。
1.2优化算法可以预加载所有依赖信息,这样大大的降低了骨骼动画创建 的时间消耗。
1.3优化算法自动删掉无用信息:例如不影响运动的骨骼,不影响画面的 插槽,没有被使用过的附件attachment等冗余信息都会被智能删除。这个优 化不仅仅使得骨骼动画计算量大大减少,同时也减少了json文件的大小,减 少了文件体积。
在扩展方面:
2.1优化算法可以同时播放任意多个动画:例如上半身是攻击动作,下半 身是跳跃动作,两个动作可以同时播放,同时对动画体产生影响。利用这个特 点,程序可以合成许许多多的新动画。
2.2优化算法可以同时使用多套皮肤:例如头像是A皮肤,身体是B皮肤, 武器是C皮肤,同时使用三套皮肤,可以轻松完成换装显示的目的。
2.3优化算法可以使用骨骼连接系统,一个骨骼动画上可以预留空位,用 来放置其他骨骼动画(或者任意其他节点),子骨骼系统会成为父系统的一部 分,包括绘制顺序,位置,缩放,旋转等信息都是在父系统中可控:例如,一 个角色的武器,角色本身有动画,武器也带有动画,那么利用骨骼连接系统就 可以轻松达到角色携带有动画武器的这种特殊需求。利用这个系统,也可以轻 松的引入粒子系统等其他动画特效系统。
效用测试结果:
空间优化测试:缩小了40到50%左右的空间占用;
效率优化测试:在大部分测试机上都能保持最高帧率,在大量渲染的情况 下,在大部分机器上都能保持30帧以上的帧率,保证了画面的流畅;
功能测试:所有的功能均能正常运行。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理 解本发明的实施方法,应被理解为本发明的保护范围并不局限于这样的特别陈 述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出 各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本 发明的保护范围内。
机译: 在个人计算机或基于个人计算机技术的单元上播放的方法,包括获取基于自动售货机上基于个人计算机技术运行的播放元素,以便在个人计算机上进行演示播放
机译: “财产识别方法”(“ PIM”)是一种新颖的算法,通过该算法,可以通过对文件(如市议会/房屋价格通知)进行图像处理来创建房地产管理局和/或产权转让数据。本发明建立了一种独特的算法,该算法结合了诸如深度学习分段和计算机视觉之类的技术来解码属性信息。该应用程序利用以某种方式配置的计算机实现的技术,以使运输商和房地产经纪人能够自动创建客户端文件。
机译: 为一种或多种技术应用程序配置的基于计算机的系统和方法,以自动协助电话代理服务