首页> 中国专利> 一种基于自动批次渲染等技术的计算机制图方法

一种基于自动批次渲染等技术的计算机制图方法

摘要

本发明公开了一种基于自动批次渲染等技术的计算机制图方法,属于计算机动画绘制领域,包括以下步骤:S1.载入资源,包括至少一套动画数据和绑定的帧骨骼数据;S2.将至少一套动画数据进行自动最少批次渲染处理;S3.将S2处理后的数据进行最小信息计算并自动删除冗余信息;S4.将S3处理后的数据与绑定的帧骨骼数据进行渲染并绘制。本发明的有益效果如下:1.加入大量功能:如骨骼连接、支持任意多套动画同时播放、支持多套皮肤同时载入、支持预加载等;2.提高了算法效率:如最小批次渲染计数、自动删除无用骨骼、不显示图片冗余信息等其他优化。

著录项

  • 公开/公告号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帧以上的帧率,保证了画面的流畅;

功能测试:所有的功能均能正常运行。

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理 解本发明的实施方法,应被理解为本发明的保护范围并不局限于这样的特别陈 述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出 各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本 发明的保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号